On 1/14/22 12:18 AM, Miaoqian Lin wrote: > platform_get_irq() returns negative error number instead 0 on failure. the 'instead of' wording is a bit misleading: platform_get_irq() returns non-zero IRQ number on success, negative error number on failure. Zero is not a valid return valid. > And the doc of platform_get_irq() provides a usage example: > > int irq = platform_get_irq(pdev, 0); > if (irq < 0) > return irq; > > Fix the check of return value to catch errors correctly. > > Fixes: ad7fcbc308b0 ("slimbus: qcom: Add Qualcomm Slimbus controller driver") > Signed-off-by: Miaoqian Lin <linmq006@xxxxxxxxx> > --- > drivers/slimbus/qcom-ctrl.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/slimbus/qcom-ctrl.c b/drivers/slimbus/qcom-ctrl.c > index f04b961b96cd..ec58091fc948 100644 > --- a/drivers/slimbus/qcom-ctrl.c > +++ b/drivers/slimbus/qcom-ctrl.c > @@ -510,9 +510,9 @@ static int qcom_slim_probe(struct platform_device *pdev) > } > > ctrl->irq = platform_get_irq(pdev, 0); > - if (!ctrl->irq) { > + if (ctrl->irq < 0) { > dev_err(&pdev->dev, "no slimbus IRQ\n"); > - return -ENODEV; > + return ctrl->irq; > } > > sctrl = &ctrl->ctrl; >