diff mbox series

EDAC/altera: add platform_get_irq error checking

Message ID 20220909053839.2293-1-yuzhe@nfschina.com (mailing list archive)
State New, archived
Headers show
Series EDAC/altera: add platform_get_irq error checking | expand

Commit Message

Yu Zhe Sept. 9, 2022, 5:38 a.m. UTC
The platform_get_irq() function returns negative error codes on error,
check it.

Signed-off-by: Yu Zhe <yuzhe@nfschina.com>
---
 drivers/edac/altera_edac.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Dan Carpenter Sept. 12, 2022, 11:26 a.m. UTC | #1
On Fri, Sep 09, 2022 at 01:38:38PM +0800, Yu Zhe wrote:
> The platform_get_irq() function returns negative error codes on error,
> check it.
> 
> Signed-off-by: Yu Zhe <yuzhe@nfschina.com>
> ---
>  drivers/edac/altera_edac.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/edac/altera_edac.c b/drivers/edac/altera_edac.c
> index e7e8e624a436..79c7c97c7a46 100644
> --- a/drivers/edac/altera_edac.c
> +++ b/drivers/edac/altera_edac.c
> @@ -355,6 +355,8 @@ static int altr_sdram_probe(struct platform_device *pdev)
>  
>  	/* Arria10 has a 2nd IRQ */
>  	irq2 = platform_get_irq(pdev, 1);
> +	if (irq2 < 0)
> +		return irq2;

This will break the driver.  Only certain hardware has the second IRQ.
(Read the comments later in the probe).  In fact, the code works fine
as-is because devm_request_irq() will fail later if this IRQ is
required.

This code is not beautiful.  It should only request the IRQ in cases
where it is present, but it used to work correctly and now it will be
broken.

regards,
dan carpenter
diff mbox series

Patch

diff --git a/drivers/edac/altera_edac.c b/drivers/edac/altera_edac.c
index e7e8e624a436..79c7c97c7a46 100644
--- a/drivers/edac/altera_edac.c
+++ b/drivers/edac/altera_edac.c
@@ -355,6 +355,8 @@  static int altr_sdram_probe(struct platform_device *pdev)
 
 	/* Arria10 has a 2nd IRQ */
 	irq2 = platform_get_irq(pdev, 1);
+	if (irq2 < 0)
+		return irq2;
 
 	layers[0].type = EDAC_MC_LAYER_CHIP_SELECT;
 	layers[0].size = 1;