| From e937440f7fc444a3e3f1fb75ea65292d6f433a44 Mon Sep 17 00:00:00 2001 |
| From: Miaoqian Lin <linmq006@gmail.com> |
| Date: Wed, 26 Jan 2022 11:04:47 +0000 |
| Subject: spi: meson-spicc: add IRQ check in meson_spicc_probe |
| |
| From: Miaoqian Lin <linmq006@gmail.com> |
| |
| commit e937440f7fc444a3e3f1fb75ea65292d6f433a44 upstream. |
| |
| This check misses checking for platform_get_irq()'s call and may passes |
| the negative error codes to devm_request_irq(), which takes unsigned IRQ #, |
| causing it to fail with -EINVAL, overriding an original error code. |
| Stop calling devm_request_irq() with invalid IRQ #s. |
| |
| Fixes: 454fa271bc4e ("spi: Add Meson SPICC driver") |
| Signed-off-by: Miaoqian Lin <linmq006@gmail.com> |
| Link: https://lore.kernel.org/r/20220126110447.24549-1-linmq006@gmail.com |
| Signed-off-by: Mark Brown <broonie@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/spi/spi-meson-spicc.c | 5 +++++ |
| 1 file changed, 5 insertions(+) |
| |
| --- a/drivers/spi/spi-meson-spicc.c |
| +++ b/drivers/spi/spi-meson-spicc.c |
| @@ -693,6 +693,11 @@ static int meson_spicc_probe(struct plat |
| writel_relaxed(0, spicc->base + SPICC_INTREG); |
| |
| irq = platform_get_irq(pdev, 0); |
| + if (irq < 0) { |
| + ret = irq; |
| + goto out_master; |
| + } |
| + |
| ret = devm_request_irq(&pdev->dev, irq, meson_spicc_irq, |
| 0, NULL, spicc); |
| if (ret) { |