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

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: e4bf1b0970ef ("mmc: host: meson-mx-sdhc: new driver for the Amlogic Meson SDHC host")
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-2-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-sdhc-mmc.c

index 8fdd0bb..28aa78a 100644 (file)
@@ -854,6 +854,11 @@ static int meson_mx_sdhc_probe(struct platform_device *pdev)
                goto err_disable_pclk;
 
        irq = platform_get_irq(pdev, 0);
+       if (irq < 0) {
+               ret = irq;
+               goto err_disable_pclk;
+       }
+
        ret = devm_request_threaded_irq(dev, irq, meson_mx_sdhc_irq,
                                        meson_mx_sdhc_irq_thread, IRQF_ONESHOT,
                                        NULL, host);