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: 28502848f52f ("ide: Add tx4938ide driver (v2)") Signed-off-by: Sergey Shtylyov <s.shtylyov@xxxxxxxxxxxx> --- drivers/ide/tx4938ide.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: ide/drivers/ide/tx4938ide.c =================================================================== --- ide.orig/drivers/ide/tx4938ide.c +++ ide/drivers/ide/tx4938ide.c @@ -139,7 +139,7 @@ static int __init tx4938ide_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;