diff mbox

[U-Boot,PATCHv2] net: zynq_gem: Do not return -ENOSYS on success

Message ID 20170403141853.11574-1-oliver@schinagl.nl
State Accepted
Commit b233089787601d63e44d8d3ddb7d2731ef53cf4e
Delegated to: Joe Hershberger
Headers show

Commit Message

Olliver Schinagl April 3, 2017, 2:18 p.m. UTC
The .read_rom_hwaddr net_ops hook does not check the return value, which
is why it was never caught that we are currently returning 0 if the
read_rom_hwaddr function return -ENOSYS and -ENOSYS otherwise.

In this case we can simplify this by just returning the result of the
function.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
---
Changes since v1:
  Check pdata for NULL before dereferencing.

 drivers/net/zynq_gem.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

Comments

Joe Hershberger April 4, 2017, 5:53 p.m. UTC | #1
On Mon, Apr 3, 2017 at 9:18 AM, Olliver Schinagl <oliver@schinagl.nl> wrote:
>
> The .read_rom_hwaddr net_ops hook does not check the return value, which
> is why it was never caught that we are currently returning 0 if the
> read_rom_hwaddr function return -ENOSYS and -ENOSYS otherwise.
>
> In this case we can simplify this by just returning the result of the
> function.
>
> Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>

Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Michal Simek April 5, 2017, 6:29 a.m. UTC | #2
On 3.4.2017 16:18, Olliver Schinagl wrote:
> The .read_rom_hwaddr net_ops hook does not check the return value, which
> is why it was never caught that we are currently returning 0 if the
> read_rom_hwaddr function return -ENOSYS and -ENOSYS otherwise.
> 
> In this case we can simplify this by just returning the result of the
> function.
> 
> Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
> ---
> Changes since v1:
>   Check pdata for NULL before dereferencing.
> 
>  drivers/net/zynq_gem.c | 8 +++-----
>  1 file changed, 3 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/net/zynq_gem.c b/drivers/net/zynq_gem.c
> index 86dd03feda..52beedfad0 100644
> --- a/drivers/net/zynq_gem.c
> +++ b/drivers/net/zynq_gem.c
> @@ -589,14 +589,12 @@ __weak int zynq_board_read_rom_ethaddr(unsigned char *ethaddr)
>  
>  static int zynq_gem_read_rom_mac(struct udevice *dev)
>  {
> -	int retval;
>  	struct eth_pdata *pdata = dev_get_platdata(dev);
>  
> -	retval = zynq_board_read_rom_ethaddr(pdata->enetaddr);
> -	if (retval == -ENOSYS)
> -		retval = 0;
> +	if (!pdata)
> +		return -ENOSYS;
>  
> -	return retval;
> +	return zynq_board_read_rom_ethaddr(pdata->enetaddr);
>  }
>  
>  static int zynq_gem_miiphy_read(struct mii_dev *bus, int addr,
> 

I have seen one series about mac address which should just replace the
whole this function. Not sure if it was applied or not but worth to
check because if this is in tree the whole this function should go away.

M
Olliver Schinagl April 5, 2017, 9:14 a.m. UTC | #3
Not yet, i rebased against u-boot-net/master. As it is it is a bug however so we should just put the fix in for now.

On April 5, 2017 8:29:22 AM CEST, Michal Simek <michal.simek@xilinx.com> wrote:
>On 3.4.2017 16:18, Olliver Schinagl wrote:
>> The .read_rom_hwaddr net_ops hook does not check the return value,
>which
>> is why it was never caught that we are currently returning 0 if the
>> read_rom_hwaddr function return -ENOSYS and -ENOSYS otherwise.
>> 
>> In this case we can simplify this by just returning the result of the
>> function.
>> 
>> Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
>> ---
>> Changes since v1:
>>   Check pdata for NULL before dereferencing.
>> 
>>  drivers/net/zynq_gem.c | 8 +++-----
>>  1 file changed, 3 insertions(+), 5 deletions(-)
>> 
>> diff --git a/drivers/net/zynq_gem.c b/drivers/net/zynq_gem.c
>> index 86dd03feda..52beedfad0 100644
>> --- a/drivers/net/zynq_gem.c
>> +++ b/drivers/net/zynq_gem.c
>> @@ -589,14 +589,12 @@ __weak int zynq_board_read_rom_ethaddr(unsigned
>char *ethaddr)
>>  
>>  static int zynq_gem_read_rom_mac(struct udevice *dev)
>>  {
>> -	int retval;
>>  	struct eth_pdata *pdata = dev_get_platdata(dev);
>>  
>> -	retval = zynq_board_read_rom_ethaddr(pdata->enetaddr);
>> -	if (retval == -ENOSYS)
>> -		retval = 0;
>> +	if (!pdata)
>> +		return -ENOSYS;
>>  
>> -	return retval;
>> +	return zynq_board_read_rom_ethaddr(pdata->enetaddr);
>>  }
>>  
>>  static int zynq_gem_miiphy_read(struct mii_dev *bus, int addr,
>> 
>
>I have seen one series about mac address which should just replace the
>whole this function. Not sure if it was applied or not but worth to
>check because if this is in tree the whole this function should go
>away.
>
>M
Michal Simek April 5, 2017, 9:17 a.m. UTC | #4
On 4.4.2017 19:53, Joe Hershberger wrote:
> On Mon, Apr 3, 2017 at 9:18 AM, Olliver Schinagl <oliver@schinagl.nl> wrote:
>>
>> The .read_rom_hwaddr net_ops hook does not check the return value, which
>> is why it was never caught that we are currently returning 0 if the
>> read_rom_hwaddr function return -ENOSYS and -ENOSYS otherwise.
>>
>> In this case we can simplify this by just returning the result of the
>> function.
>>
>> Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
> 
> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
> 

Acked-by: Michal Simek <michal.simek@xilinx.com>

Joe: Can you please take this via your tree?

Thanks,
Michal
Joe Hershberger April 10, 2017, 10:17 p.m. UTC | #5
Hi Michal,

On Wed, Apr 5, 2017 at 4:17 AM, Michal Simek <michal.simek@xilinx.com> wrote:
> On 4.4.2017 19:53, Joe Hershberger wrote:
>> On Mon, Apr 3, 2017 at 9:18 AM, Olliver Schinagl <oliver@schinagl.nl> wrote:
>>>
>>> The .read_rom_hwaddr net_ops hook does not check the return value, which
>>> is why it was never caught that we are currently returning 0 if the
>>> read_rom_hwaddr function return -ENOSYS and -ENOSYS otherwise.
>>>
>>> In this case we can simplify this by just returning the result of the
>>> function.
>>>
>>> Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
>>
>> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
>>
>
> Acked-by: Michal Simek <michal.simek@xilinx.com>
>
> Joe: Can you please take this via your tree?

Will do.

-Joe
Joe Hershberger June 2, 2017, 7:48 p.m. UTC | #6
Hi Olliver,

https://patchwork.ozlabs.org/patch/746814/ was applied to u-boot-net.git.

Thanks!
-Joe
diff mbox

Patch

diff --git a/drivers/net/zynq_gem.c b/drivers/net/zynq_gem.c
index 86dd03feda..52beedfad0 100644
--- a/drivers/net/zynq_gem.c
+++ b/drivers/net/zynq_gem.c
@@ -589,14 +589,12 @@  __weak int zynq_board_read_rom_ethaddr(unsigned char *ethaddr)
 
 static int zynq_gem_read_rom_mac(struct udevice *dev)
 {
-	int retval;
 	struct eth_pdata *pdata = dev_get_platdata(dev);
 
-	retval = zynq_board_read_rom_ethaddr(pdata->enetaddr);
-	if (retval == -ENOSYS)
-		retval = 0;
+	if (!pdata)
+		return -ENOSYS;
 
-	return retval;
+	return zynq_board_read_rom_ethaddr(pdata->enetaddr);
 }
 
 static int zynq_gem_miiphy_read(struct mii_dev *bus, int addr,