The platform_get_irq() function returns negative error codes on error so "gic_irq" needs to be signed to handle this correctly. Also change the "<= 0" check to "< 0" and preserve the error code as the documentation for platform_get_irq() shows. Fixes: 893ae515ff8d ("irqchip: imx mu worked as msi controller") Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> --- drivers/irqchip/irq-imx-mu-msi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/irqchip/irq-imx-mu-msi.c b/drivers/irqchip/irq-imx-mu-msi.c index f7193a6c1245..97f3cdab8f58 100644 --- a/drivers/irqchip/irq-imx-mu-msi.c +++ b/drivers/irqchip/irq-imx-mu-msi.c @@ -80,7 +80,7 @@ struct imx_mu_msi { struct imx_mu_msir *msir; u32 irqs_num; unsigned long used; - u32 gic_irq; + int gic_irq; struct clk *clk; struct device *pd_a; struct device *pd_b; @@ -355,8 +355,8 @@ static int imx_mu_msi_probe(struct platform_device *pdev) msi_data->irqs_num = IMX_MU_CHANS; msi_data->gic_irq = platform_get_irq(msi_data->pdev, 0); - if (msi_data->gic_irq <= 0) - return -ENODEV; + if (msi_data->gic_irq < 0) + return msi_data->gic_irq; platform_set_drvdata(pdev, msi_data); -- 2.35.1