diff options
| author | Aditya Pakki <pakki001@umn.edu> | 2018-12-24 12:41:54 -0500 |
|---|---|---|
| committer | Vinod Koul <vkoul@kernel.org> | 2019-01-06 23:20:29 -0500 |
| commit | 7c97381e7a9a5ec359007c0d491a143e3d9f787c (patch) | |
| tree | d53a0efb6f3693bf8d8168dcfc706f822caeb8ae | |
| parent | bfeffd155283772bbe78c6a05dec7c0128ee500c (diff) | |
dmaengine: mv_xor: Fix a missing check in mv_xor_channel_add
dma_async_device_register() may fail and return an error. The capabilities
checked in mv_xor_channel_add() are not complete. The fix handles the
error by freeing the resources.
Signed-off-by: Aditya Pakki <pakki001@umn.edu>
Signed-off-by: Vinod Koul <vkoul@kernel.org>
| -rw-r--r-- | drivers/dma/mv_xor.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/dma/mv_xor.c b/drivers/dma/mv_xor.c index 7f595355fb79..e733c5eeaabc 100644 --- a/drivers/dma/mv_xor.c +++ b/drivers/dma/mv_xor.c | |||
| @@ -1153,7 +1153,10 @@ mv_xor_channel_add(struct mv_xor_device *xordev, | |||
| 1153 | dma_has_cap(DMA_MEMCPY, dma_dev->cap_mask) ? "cpy " : "", | 1153 | dma_has_cap(DMA_MEMCPY, dma_dev->cap_mask) ? "cpy " : "", |
| 1154 | dma_has_cap(DMA_INTERRUPT, dma_dev->cap_mask) ? "intr " : ""); | 1154 | dma_has_cap(DMA_INTERRUPT, dma_dev->cap_mask) ? "intr " : ""); |
| 1155 | 1155 | ||
| 1156 | dma_async_device_register(dma_dev); | 1156 | ret = dma_async_device_register(dma_dev); |
| 1157 | if (ret) | ||
| 1158 | goto err_free_irq; | ||
| 1159 | |||
| 1157 | return mv_chan; | 1160 | return mv_chan; |
| 1158 | 1161 | ||
| 1159 | err_free_irq: | 1162 | err_free_irq: |
