If platform_get_irq() returns IRQ0 (considered invalid according to Linus) the driver blithely passes it to usb_add_hcd() that treats IRQ0 as no IRQ at all. Deny IRQ0 right away, returning -EINVAL from the probe() method... Fixes: a7f40c233a6b ("USB: EHCI: ehci-mv: fix less than zero comparison of an unsigned int") Signed-off-by: Sergey Shtylyov <s.shtylyov@xxxxxx> Acked-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> --- Changes in version 2: - added Alan's ACK. drivers/usb/host/ehci-mv.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/usb/host/ehci-mv.c b/drivers/usb/host/ehci-mv.c index 8fd27249ad25..f54ce1eeccf3 100644 --- a/drivers/usb/host/ehci-mv.c +++ b/drivers/usb/host/ehci-mv.c @@ -168,6 +168,10 @@ static int mv_ehci_probe(struct platform_device *pdev) retval = platform_get_irq(pdev, 0); if (retval < 0) goto err_disable_clk; + if (!retval) { + retval = -EINVAL; + goto err_disable_clk; + } hcd->irq = retval; ehci = hcd_to_ehci(hcd); -- 2.26.3