mmc: meson-mx-sdhc: add IRQ check
authorSergey Shtylyov <s.shtylyov@omp.ru>
Fri, 17 Dec 2021 20:27:16 +0000 (23:27 +0300)
committerUlf Hansson <ulf.hansson@linaro.org>
Tue, 21 Dec 2021 12:22:34 +0000 (13:22 +0100)
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>
drivers/mmc/host/meson-mx-sdhc-mmc.c

index 8fdd0bbbfa21fb0ee77a769446f0769f04749ec4..28aa78aa08f3f2752d3da3b2db2a51e98ab80e6a 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);