mmc: meson-mx-sdio: add IRQ check
authorSergey Shtylyov <s.shtylyov@omp.ru>
Fri, 17 Dec 2021 20:27:17 +0000 (23:27 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Jan 2022 10:03:43 +0000 (11:03 +0100)
[ Upstream commit 8fc9a77bc64e1f23d07953439817d8402ac9706f ]

The driver neglects to check the result of platform_get_irq()'s call and
blithely passes the negative error codes to devm_request_threaded_irq()
(which takes *unsigned* IRQ #), causing it to fail with -EINVAL, overriding
an original error code. Stop calling devm_request_threaded_irq() with the
invalid IRQ #s.

Fixes: ed80a13bb4c4 ("mmc: meson-mx-sdio: Add a driver for the Amlogic Meson8 and Meson8b SoC")
Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Link: https://lore.kernel.org/r/20211217202717.10041-3-s.shtylyov@omp.ru
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/mmc/host/meson-mx-sdio.c

index d4a4891..3a19a05 100644 (file)
@@ -662,6 +662,11 @@ static int meson_mx_mmc_probe(struct platform_device *pdev)
        }
 
        irq = platform_get_irq(pdev, 0);
+       if (irq < 0) {
+               ret = irq;
+               goto error_free_mmc;
+       }
+
        ret = devm_request_threaded_irq(host->controller_dev, irq,
                                        meson_mx_mmc_irq,
                                        meson_mx_mmc_irq_thread, IRQF_ONESHOT,