diff mbox series

[1/1] EDAC, mpc85xx: Fix error return code in two functions

Message ID 20210528032637.9231-1-thunder.leizhen@huawei.com (mailing list archive)
State New, archived
Headers show
Series [1/1] EDAC, mpc85xx: Fix error return code in two functions | expand

Commit Message

Leizhen (ThunderTown) May 28, 2021, 3:26 a.m. UTC
Fix to return -EFAULT from the error handling case instead of 0, as done
elsewhere in its function.

Fixes: a9a753d53204 ("drivers-edac: add freescale mpc85xx driver")
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
---
 drivers/edac/mpc85xx_edac.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Borislav Petkov May 31, 2021, 8:40 a.m. UTC | #1
On Fri, May 28, 2021 at 11:26:37AM +0800, Zhen Lei wrote:
> Fix to return -EFAULT from the error handling case instead of 0, as done
> elsewhere in its function.
> 
> Fixes: a9a753d53204 ("drivers-edac: add freescale mpc85xx driver")
> Reported-by: Hulk Robot <hulkci@huawei.com>
> Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
> ---
>  drivers/edac/mpc85xx_edac.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/edac/mpc85xx_edac.c b/drivers/edac/mpc85xx_edac.c
> index 67f7bc3fe5b3..b2eaa62c9412 100644
> --- a/drivers/edac/mpc85xx_edac.c
> +++ b/drivers/edac/mpc85xx_edac.c
> @@ -248,6 +248,7 @@ static int mpc85xx_pci_err_probe(struct platform_device *op)
>  
>  	if (edac_pci_add_device(pci, pdata->edac_idx) > 0) {
>  		edac_dbg(3, "failed edac_pci_add_device()\n");
> +		res = -EFAULT;

>  		goto err;
>  	}
>  
> @@ -552,6 +553,7 @@ static int mpc85xx_l2_err_probe(struct platform_device *op)
>  
>  	if (edac_device_add_device(edac_dev) > 0) {
>  		edac_dbg(3, "failed edac_device_add_device()\n");
> +		res = -EFAULT;
>  		goto err;
>  	}
>  
> -- 

EFAULT means

#define EFAULT          14      /* Bad address */

Does it make sense to you when the probe function returns a "bad
address" upon failure to add a device?

hint 1: you might wanna audit how the other drivers are calling this for
better ideas.

hint 2: while doing hint 1, you might find some more broken cases which
you could fix too.

Thx.
Leizhen (ThunderTown) May 31, 2021, 9:15 a.m. UTC | #2
On 2021/5/31 16:40, Borislav Petkov wrote:
> On Fri, May 28, 2021 at 11:26:37AM +0800, Zhen Lei wrote:
>> Fix to return -EFAULT from the error handling case instead of 0, as done
>> elsewhere in its function.
>>
>> Fixes: a9a753d53204 ("drivers-edac: add freescale mpc85xx driver")
>> Reported-by: Hulk Robot <hulkci@huawei.com>
>> Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
>> ---
>>  drivers/edac/mpc85xx_edac.c | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/edac/mpc85xx_edac.c b/drivers/edac/mpc85xx_edac.c
>> index 67f7bc3fe5b3..b2eaa62c9412 100644
>> --- a/drivers/edac/mpc85xx_edac.c
>> +++ b/drivers/edac/mpc85xx_edac.c
>> @@ -248,6 +248,7 @@ static int mpc85xx_pci_err_probe(struct platform_device *op)
>>  
>>  	if (edac_pci_add_device(pci, pdata->edac_idx) > 0) {
>>  		edac_dbg(3, "failed edac_pci_add_device()\n");
>> +		res = -EFAULT;
> 
>>  		goto err;
>>  	}
>>  
>> @@ -552,6 +553,7 @@ static int mpc85xx_l2_err_probe(struct platform_device *op)
>>  
>>  	if (edac_device_add_device(edac_dev) > 0) {
>>  		edac_dbg(3, "failed edac_device_add_device()\n");
>> +		res = -EFAULT;
>>  		goto err;
>>  	}
>>  
>> -- 
> 
> EFAULT means
> 
> #define EFAULT          14      /* Bad address */
> 
> Does it make sense to you when the probe function returns a "bad
> address" upon failure to add a device?
> 
> hint 1: you might wanna audit how the other drivers are calling this for
> better ideas.

So how about change to -ENODEV?

> 
> hint 2: while doing hint 1, you might find some more broken cases which
> you could fix too.

OK, I will find and fix all of them. Thanks for your hint.

> 
> Thx.
>
Borislav Petkov May 31, 2021, 9:23 a.m. UTC | #3
On Mon, May 31, 2021 at 05:15:54PM +0800, Leizhen (ThunderTown) wrote:
> So how about change to -ENODEV?

Yah, better.
diff mbox series

Patch

diff --git a/drivers/edac/mpc85xx_edac.c b/drivers/edac/mpc85xx_edac.c
index 67f7bc3fe5b3..b2eaa62c9412 100644
--- a/drivers/edac/mpc85xx_edac.c
+++ b/drivers/edac/mpc85xx_edac.c
@@ -248,6 +248,7 @@  static int mpc85xx_pci_err_probe(struct platform_device *op)
 
 	if (edac_pci_add_device(pci, pdata->edac_idx) > 0) {
 		edac_dbg(3, "failed edac_pci_add_device()\n");
+		res = -EFAULT;
 		goto err;
 	}
 
@@ -552,6 +553,7 @@  static int mpc85xx_l2_err_probe(struct platform_device *op)
 
 	if (edac_device_add_device(edac_dev) > 0) {
 		edac_dbg(3, "failed edac_device_add_device()\n");
+		res = -EFAULT;
 		goto err;
 	}