ソースを参照

dmaengine: dw: check return code of dma_async_device_register()

dma_async_device_register() may return non-zero error code. In such case we
have to follow error path.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Andy Shevchenko 11 年 前
コミット
1222934e54
1 ファイル変更6 行追加2 行削除
  1. 6 2
      drivers/dma/dw/core.c

+ 6 - 2
drivers/dma/dw/core.c

@@ -1659,13 +1659,17 @@ int dw_dma_probe(struct dw_dma_chip *chip, struct dw_dma_platform_data *pdata)
 
 	dma_writel(dw, CFG, DW_CFG_DMA_EN);
 
+	err = dma_async_device_register(&dw->dma);
+	if (err)
+		goto err_dma_register;
+
 	dev_info(chip->dev, "DesignWare DMA Controller, %d channels\n",
 		 nr_channels);
 
-	dma_async_device_register(&dw->dma);
-
 	return 0;
 
+err_dma_register:
+	free_irq(chip->irq, dw);
 err_pdata:
 	clk_disable_unprepare(dw->clk);
 	return err;