diff mbox series

igc: change default return of igc_read_phy_reg()

Message ID 20210521195019.2078661-1-trix@redhat.com
State New
Headers show
Series igc: change default return of igc_read_phy_reg() | expand

Commit Message

Tom Rix May 21, 2021, 7:50 p.m. UTC
From: Tom Rix <trix@redhat.com>

Static analysis reports this problem

igc_main.c:4944:20: warning: The left operand of '&'
  is a garbage value
    if (!(phy_data & SR_1000T_REMOTE_RX_STATUS) &&
          ~~~~~~~~ ^

pyy_data is set by the call to igc_read_phy_reg() only if
there is a read_reg() op, else it is unset and a 0 is
returned.  Change the return to -EOPNOTSUPP.

Fixes: 208983f099d9 ("igc: Add watchdog")
Signed-off-by: Tom Rix <trix@redhat.com>
---
 drivers/net/ethernet/intel/igc/igc.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Sasha Neftin May 23, 2021, 5:47 a.m. UTC | #1
On 5/21/2021 22:50, trix@redhat.com wrote:
> From: Tom Rix <trix@redhat.com>

> 

> Static analysis reports this problem

> 

> igc_main.c:4944:20: warning: The left operand of '&'

>    is a garbage value

>      if (!(phy_data & SR_1000T_REMOTE_RX_STATUS) &&

>            ~~~~~~~~ ^

Tom, thanks for this patch. I believe the same static analysis problem 
should be with the 'igb_read_phy_reg' method:
https://elixir.bootlin.com/linux/v5.13-rc1/source/drivers/net/ethernet/intel/igb/igb.h#L769
> 

> pyy_data is set by the call to igc_read_phy_reg() only if

%s/pyy_data/phy_data/gc (typo)
> there is a read_reg() op, else it is unset and a 0 is

> returned.  Change the return to -EOPNOTSUPP.

> 

> Fixes: 208983f099d9 ("igc: Add watchdog")

> Signed-off-by: Tom Rix <trix@redhat.com>

> ---

>   drivers/net/ethernet/intel/igc/igc.h | 2 +-

>   1 file changed, 1 insertion(+), 1 deletion(-)

> 

> diff --git a/drivers/net/ethernet/intel/igc/igc.h b/drivers/net/ethernet/intel/igc/igc.h

> index b6d3277c6f520..71100ee7afbee 100644

> --- a/drivers/net/ethernet/intel/igc/igc.h

> +++ b/drivers/net/ethernet/intel/igc/igc.h

> @@ -577,7 +577,7 @@ static inline s32 igc_read_phy_reg(struct igc_hw *hw, u32 offset, u16 *data)

>   	if (hw->phy.ops.read_reg)

>   		return hw->phy.ops.read_reg(hw, offset, data);

>   

> -	return 0;

> +	return -EOPNOTSUPP;

>   }

>   

>   void igc_reinit_locked(struct igc_adapter *);

> 

Thanks,
Sasha
Fuxbrumer, Dvora June 24, 2021, 7:58 p.m. UTC | #2
On 5/21/2021 22:50, trix@redhat.com wrote:
> From: Tom Rix <trix@redhat.com>

> 

> Static analysis reports this problem

> 

> igc_main.c:4944:20: warning: The left operand of '&'

>    is a garbage value

>      if (!(phy_data & SR_1000T_REMOTE_RX_STATUS) &&

>            ~~~~~~~~ ^

> 

> pyy_data is set by the call to igc_read_phy_reg() only if

> there is a read_reg() op, else it is unset and a 0 is

> returned.  Change the return to -EOPNOTSUPP.

> 

> Fixes: 208983f099d9 ("igc: Add watchdog")

> Signed-off-by: Tom Rix <trix@redhat.com>

> ---

>   drivers/net/ethernet/intel/igc/igc.h | 2 +-

>   1 file changed, 1 insertion(+), 1 deletion(-)

> 

Tested-by: Dvora Fuxbrumer <dvorax.fuxbrumer@linux.intel.com>
diff mbox series

Patch

diff --git a/drivers/net/ethernet/intel/igc/igc.h b/drivers/net/ethernet/intel/igc/igc.h
index b6d3277c6f520..71100ee7afbee 100644
--- a/drivers/net/ethernet/intel/igc/igc.h
+++ b/drivers/net/ethernet/intel/igc/igc.h
@@ -577,7 +577,7 @@  static inline s32 igc_read_phy_reg(struct igc_hw *hw, u32 offset, u16 *data)
 	if (hw->phy.ops.read_reg)
 		return hw->phy.ops.read_reg(hw, offset, data);
 
-	return 0;
+	return -EOPNOTSUPP;
 }
 
 void igc_reinit_locked(struct igc_adapter *);