diff mbox series

[v2,9/9] usb: phy: twl6030: add IRQ checks

Message ID 9507f50b-50f1-6dc4-f57c-3ed4e53a1c25@omp.ru (mailing list archive)
State New, archived
Headers show
Series Stop calling request_irq(), etc. with invalid IRQs in the USB drivers | expand

Commit Message

Sergey Shtylyov Aug. 9, 2021, 8:53 p.m. UTC
The driver neglects to check the result of platform_get_irq()'s calls and
blithely passes the negative error codes to request_threaded_irq() (which
takes *unsigned* IRQ #), causing them both to fail with -EINVAL, overriding
an original error code.  Stop calling request_threaded_irq() with the
invalid IRQ #s.

Fixes: c33fad0c3748 ("usb: otg: Adding twl6030-usb transceiver driver for OMAP4430")
Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>

---
 drivers/usb/phy/phy-twl6030-usb.c |    5 +++++
 1 file changed, 5 insertions(+)

Comments

Felipe Balbi Aug. 12, 2021, 5:39 a.m. UTC | #1
Sergey Shtylyov <s.shtylyov@omp.ru> writes:

> The driver neglects to check the result of platform_get_irq()'s calls and
> blithely passes the negative error codes to request_threaded_irq() (which
> takes *unsigned* IRQ #), causing them both to fail with -EINVAL, overriding
> an original error code.  Stop calling request_threaded_irq() with the
> invalid IRQ #s.
>
> Fixes: c33fad0c3748 ("usb: otg: Adding twl6030-usb transceiver driver for OMAP4430")
> Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>

Acked-by: Felipe Balbi <balbi@kernel.org>
diff mbox series

Patch

Index: usb/drivers/usb/phy/phy-twl6030-usb.c
===================================================================
--- usb.orig/drivers/usb/phy/phy-twl6030-usb.c
+++ usb/drivers/usb/phy/phy-twl6030-usb.c
@@ -348,6 +348,11 @@  static int twl6030_usb_probe(struct plat
 	twl->irq2		= platform_get_irq(pdev, 1);
 	twl->linkstat		= MUSB_UNKNOWN;
 
+	if (twl->irq1 < 0)
+		return twl->irq1;
+	if (twl->irq2 < 0)
+		return twl->irq2;
+
 	twl->comparator.set_vbus	= twl6030_set_vbus;
 	twl->comparator.start_srp	= twl6030_start_srp;