dmaengine: axi-dmac: add a check for devm_regmap_init_mmio
authorChuhong Yuan <hslester96@gmail.com>
Mon, 9 Dec 2019 08:57:11 +0000 (16:57 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 14 Feb 2020 21:34:19 +0000 (16:34 -0500)
commit a5b982af953bcc838cd198b0434834cc1dff14ec upstream.

The driver misses checking the result of devm_regmap_init_mmio().
Add a check to fix it.

Fixes: fc15be39a827 ("dmaengine: axi-dmac: add regmap support")
Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
Reviewed-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Link: https://lore.kernel.org/r/20191209085711.16001-1-hslester96@gmail.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/dma/dma-axi-dmac.c

index a0ee404..f1d149e 100644 (file)
@@ -830,6 +830,7 @@ static int axi_dmac_probe(struct platform_device *pdev)
        struct dma_device *dma_dev;
        struct axi_dmac *dmac;
        struct resource *res;
+       struct regmap *regmap;
        int ret;
 
        dmac = devm_kzalloc(&pdev->dev, sizeof(*dmac), GFP_KERNEL);
@@ -921,10 +922,17 @@ static int axi_dmac_probe(struct platform_device *pdev)
 
        platform_set_drvdata(pdev, dmac);
 
-       devm_regmap_init_mmio(&pdev->dev, dmac->base, &axi_dmac_regmap_config);
+       regmap = devm_regmap_init_mmio(&pdev->dev, dmac->base,
+                &axi_dmac_regmap_config);
+       if (IS_ERR(regmap)) {
+               ret = PTR_ERR(regmap);
+               goto err_free_irq;
+       }
 
        return 0;
 
+err_free_irq:
+       free_irq(dmac->irq, dmac);
 err_unregister_of:
        of_dma_controller_free(pdev->dev.of_node);
 err_unregister_device: