When platform_get_irq_byname() failed, it may return -EPROBE_DEFER, -EINVAL or -ENXIO, it is important to propagate the detail upstream, we cannot override it. And platform_get_irq_byname() used to return 0 (as both IRQ0 and error indication), there are several patches fixing the inconsistencies. Commit ce753ad1549c ("platform: finally disallow IRQ0 in platform_get_irq() and its ilk") makes sure IRQ0 is not returned. Signed-off-by: Zhu Wang <wangzhu9@xxxxxxxxxx> --- Changes in v2: - Update the commit message, present the reason of replacing the return value of the probe. --- Changes in v3: - Update the commit message, explain in detail why the return value of platform_get_irq_byname() cannot be override. --- drivers/usb/musb/musb_core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c index ecbd3784bec3..b24adb5b399f 100644 --- a/drivers/usb/musb/musb_core.c +++ b/drivers/usb/musb/musb_core.c @@ -2610,8 +2610,8 @@ static int musb_probe(struct platform_device *pdev) int irq = platform_get_irq_byname(pdev, "mc"); void __iomem *base; - if (irq <= 0) - return -ENODEV; + if (irq < 0) + return irq; base = devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(base)) -- 2.17.1