The driver overrides the error codes returned by platform_get_irq() to -ENODEV, so if it returns -EPROBE_DEFER, the driver will fail the probe permanently instead of the deferred probing. Switch to propagating the error code upstream. Fixes: 37897989232e ("ide: Add tx4939ide driver (v6)") Signed-off-by: Sergey Shtylyov <s.shtylyov@xxxxxxxxxxxx> --- drivers/ide/tx4939ide.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: ide/drivers/ide/tx4939ide.c =================================================================== --- ide.orig/drivers/ide/tx4939ide.c +++ ide/drivers/ide/tx4939ide.c @@ -543,7 +543,7 @@ static int __init tx4939ide_probe(struct irq = platform_get_irq(pdev, 0); if (irq < 0) - return -ENODEV; + return irq; res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) return -ENODEV;