| From 9bf8e37ac1727e3a3e636e2525da4e9460da8bbf Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 13 Aug 2021 23:32:38 +0300 |
| Subject: usb: phy: tahvo: add IRQ check |
| |
| From: Sergey Shtylyov <s.shtylyov@omp.ru> |
| |
| [ Upstream commit 0d45a1373e669880b8beaecc8765f44cb0241e47 ] |
| |
| The driver neglects to check the result of platform_get_irq()'s call and |
| blithely passes the negative error codes to request_threaded_irq() (which |
| takes *unsigned* IRQ #), causing it to fail with -EINVAL, overriding an |
| original error code. Stop calling request_threaded_irq() with the invalid |
| IRQ #s. |
| |
| Fixes: 9ba96ae5074c ("usb: omap1: Tahvo USB transceiver driver") |
| Acked-by: Felipe Balbi <balbi@kernel.org> |
| Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru> |
| Link: https://lore.kernel.org/r/8280d6a4-8e9a-7cfe-1aa9-db586dc9afdf@omp.ru |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/usb/phy/phy-tahvo.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/usb/phy/phy-tahvo.c b/drivers/usb/phy/phy-tahvo.c |
| index baebb1f5a973..a3e043e3e4aa 100644 |
| --- a/drivers/usb/phy/phy-tahvo.c |
| +++ b/drivers/usb/phy/phy-tahvo.c |
| @@ -393,7 +393,9 @@ static int tahvo_usb_probe(struct platform_device *pdev) |
| |
| dev_set_drvdata(&pdev->dev, tu); |
| |
| - tu->irq = platform_get_irq(pdev, 0); |
| + tu->irq = ret = platform_get_irq(pdev, 0); |
| + if (ret < 0) |
| + return ret; |
| ret = request_threaded_irq(tu->irq, NULL, tahvo_usb_vbus_interrupt, |
| IRQF_ONESHOT, |
| "tahvo-vbus", tu); |
| -- |
| 2.30.2 |
| |