RE: [EXT] [PATCH] irqchip: imx-mu-msi: fix platform_get_irq() error checking

From: Frank Li
Date: Fri Aug 12 2022 - 12:01:14 EST




> -----Original Message-----
> From: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
> Sent: Friday, August 12, 2022 1:23 AM
> To: Thomas Gleixner <tglx@xxxxxxxxxxxxx>; Frank Li <frank.li@xxxxxxx>
> Cc: Marc Zyngier <maz@xxxxxxxxxx>; Shawn Guo <shawnguo@xxxxxxxxxx>;
> Sascha Hauer <s.hauer@xxxxxxxxxxxxxx>; Pengutronix Kernel Team
> <kernel@xxxxxxxxxxxxxx>; Fabio Estevam <festevam@xxxxxxxxx>; dl-linux-
> imx <linux-imx@xxxxxxx>; Jon Mason <jdmason@xxxxxxxx>; linux-
> kernel@xxxxxxxxxxxxxxx; kernel-janitors@xxxxxxxxxxxxxxx
> Subject: [EXT] [PATCH] irqchip: imx-mu-msi: fix platform_get_irq() error
> checking
>
> Caution: EXT Email
>
> 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>
> ---
[Frank Li] Thanks, 893ae515ff8d should be under review. There are still some issue, which need be fixed.
I am working on these. I will squash your patch into my next version.

> 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