> >From: Dongliang Mu <mudongliangabcd@xxxxxxxxx> > >Smatch reports the following error: > >drivers/usb/cdns3/cdns3-plat.c:113 cdns3_plat_probe() warn: >platform_get_irq() does not return zero > >From the document, platform_get_irq_byname_optional only returns >non-zero value, and negative value on failure. > >Fix this by removing the zero value checking. > >Signed-off-by: Dongliang Mu <mudongliangabcd@xxxxxxxxx> >--- > drivers/usb/cdns3/cdns3-plat.c | 2 -- > 1 file changed, 2 deletions(-) > >diff --git a/drivers/usb/cdns3/cdns3-plat.c b/drivers/usb/cdns3/cdns3-plat.c >index dc068e940ed5..2bc5d094548b 100644 >--- a/drivers/usb/cdns3/cdns3-plat.c >+++ b/drivers/usb/cdns3/cdns3-plat.c >@@ -110,8 +110,6 @@ static int cdns3_plat_probe(struct platform_device *pdev) > cdns->wakeup_irq = platform_get_irq_byname_optional(pdev, "wakeup"); > if (cdns->wakeup_irq == -EPROBE_DEFER) > return cdns->wakeup_irq; >- else if (cdns->wakeup_irq == 0) >- return -EINVAL; > I think that here we should have: else if (cdns->wakeup_irq == -ENXIO) return -EINVAL; because of function: platform_get_irq_byname_optional -> __platform_get_irq_byname returns irq number (>0), -EPROBE_DEFFER or -ENXIO thanks Pawel > if (cdns->wakeup_irq < 0) { > dev_dbg(dev, "couldn't get wakeup irq\n"); >-- >2.35.1