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: c8c38de9d800 ("USB host: Adding USB ehci & ohci support for spear platform") Signed-off-by: Sergey Shtylyov <s.shtylyov@xxxxxx> --- drivers/usb/host/ehci-spear.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/usb/host/ehci-spear.c b/drivers/usb/host/ehci-spear.c index 3694e450a11a..f4a5896900dc 100644 --- a/drivers/usb/host/ehci-spear.c +++ b/drivers/usb/host/ehci-spear.c @@ -70,6 +70,10 @@ static int spear_ehci_hcd_drv_probe(struct platform_device *pdev) retval = irq; goto fail; } + if (!irq) { + retval = -EINVAL; + goto fail; + } /* * Right now device-tree probed devices don't get dma_mask set. -- 2.26.3