]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
mmc: renesas_sdhi: Fix error handling in renesas_sdhi_probe
authorRuslan Piasetskyi <ruslan.piasetskyi@gmail.com>
Wed, 26 Mar 2025 22:06:38 +0000 (23:06 +0100)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 7 Apr 2025 15:49:16 +0000 (17:49 +0200)
After moving tmio_mmc_host_probe down, error handling has to be
adjusted.

Fixes: 74f45de394d9 ("mmc: renesas_sdhi: register irqs before registering controller")
Reviewed-by: Ihar Salauyou <salauyou.ihar@gmail.com>
Signed-off-by: Ruslan Piasetskyi <ruslan.piasetskyi@gmail.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20250326220638.460083-1-ruslan.piasetskyi@gmail.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/renesas_sdhi_core.c

index fa6526be36381dea7077280e1c27d552a09254bb..cea6af5daf99329760ab047006130121999d0cf9 100644 (file)
@@ -1243,26 +1243,26 @@ int renesas_sdhi_probe(struct platform_device *pdev,
        num_irqs = platform_irq_count(pdev);
        if (num_irqs < 0) {
                ret = num_irqs;
-               goto eirq;
+               goto edisclk;
        }
 
        /* There must be at least one IRQ source */
        if (!num_irqs) {
                ret = -ENXIO;
-               goto eirq;
+               goto edisclk;
        }
 
        for (i = 0; i < num_irqs; i++) {
                irq = platform_get_irq(pdev, i);
                if (irq < 0) {
                        ret = irq;
-                       goto eirq;
+                       goto edisclk;
                }
 
                ret = devm_request_irq(&pdev->dev, irq, tmio_mmc_irq, 0,
                                       dev_name(&pdev->dev), host);
                if (ret)
-                       goto eirq;
+                       goto edisclk;
        }
 
        ret = tmio_mmc_host_probe(host);
@@ -1274,8 +1274,6 @@ int renesas_sdhi_probe(struct platform_device *pdev,
 
        return ret;
 
-eirq:
-       tmio_mmc_host_remove(host);
 edisclk:
        renesas_sdhi_clk_disable(host);
 efree: