On 2021/12/09 23:59, Andy Shevchenko wrote: > platform_get_irq() will print a message when it fails. > No need to repeat this. > > While at it, drop redundant check for 0 as platform_get_irq() spills > out a big WARN() in such case. The reason you should be able to remove the "if (!irq)" test is that platform_get_irq() never returns 0. At least, that is what the function kdoc says. But looking at platform_get_irq_optional(), which is called by platform_get_irq(), the out label is: WARN(ret == 0, "0 is an invalid IRQ number\n"); return ret; So 0 will be returned as-is. That is rather weird. That should be fixed to return -ENXIO: if (WARN(ret == 0, "0 is an invalid IRQ number\n")) return -ENXIO; return ret; Otherwise, I do not think that removing the "if (!irq)" hunk is safe. no ? > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> > --- > drivers/ata/libahci_platform.c | 7 +------ > 1 file changed, 1 insertion(+), 6 deletions(-) > > diff --git a/drivers/ata/libahci_platform.c b/drivers/ata/libahci_platform.c > index 0910441321f7..1af642c84e7b 100644 > --- a/drivers/ata/libahci_platform.c > +++ b/drivers/ata/libahci_platform.c > @@ -579,13 +579,8 @@ int ahci_platform_init_host(struct platform_device *pdev, > int i, irq, n_ports, rc; > > irq = platform_get_irq(pdev, 0); > - if (irq < 0) { > - if (irq != -EPROBE_DEFER) > - dev_err(dev, "no irq\n"); > + if (irq < 0) > return irq; > - } > - if (!irq) > - return -EINVAL; > > hpriv->irq = irq; > -- Damien Le Moal Western Digital Research