dmaengine: tegra210-adma: Fix an error handling path in 'tegra_adma_probe()'
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sat, 16 May 2020 21:42:05 +0000 (23:42 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 27 May 2020 14:41:59 +0000 (16:41 +0200)
commit 3a5fd0dbd87853f8bd2ea275a5b3b41d6686e761 upstream.

Commit b53611fb1ce9 ("dmaengine: tegra210-adma: Fix crash during probe")
has moved some code in the probe function and reordered the error handling
path accordingly.
However, a goto has been missed.

Fix it and goto the right label if 'dma_async_device_register()' fails, so
that all resources are released.

Fixes: b53611fb1ce9 ("dmaengine: tegra210-adma: Fix crash during probe")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Acked-by: Thierry Reding <treding@nvidia.com>
Link: https://lore.kernel.org/r/20200516214205.276266-1-christophe.jaillet@wanadoo.fr
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/dma/tegra210-adma.c

index 2d4aeba579f7530d7df5e1571ecfc95006b4a792..c16c06b3dd2f4a12e847dc5967c0a897c610071c 100644 (file)
@@ -793,7 +793,7 @@ static int tegra_adma_probe(struct platform_device *pdev)
        ret = dma_async_device_register(&tdma->dma_dev);
        if (ret < 0) {
                dev_err(&pdev->dev, "ADMA registration failed: %d\n", ret);
-               goto irq_dispose;
+               goto rpm_put;
        }
 
        ret = of_dma_controller_register(pdev->dev.of_node,