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: f54aab6ebcec ("usb: ohci-sm501 driver") Signed-off-by: Sergey Shtylyov <s.shtylyov@xxxxxx> --- drivers/usb/host/ohci-sm501.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/usb/host/ohci-sm501.c b/drivers/usb/host/ohci-sm501.c index b91d50da6127..ffb7b6645d2c 100644 --- a/drivers/usb/host/ohci-sm501.c +++ b/drivers/usb/host/ohci-sm501.c @@ -96,6 +96,10 @@ static int ohci_hcd_sm501_drv_probe(struct platform_device *pdev) irq = retval = platform_get_irq(pdev, 0); if (retval < 0) goto err0; + if (!retval) { + retval = -EINVAL; + goto err0; + } mem = platform_get_resource(pdev, IORESOURCE_MEM, 1); if (mem == NULL) { -- 2.26.3