[PATCH] net: e1000: Fix Unchecked return value coverity

From: Hou Zhiqiang Zhiqiang.Hou@nxp.com
Added check for return value of e1000_read_phy_reg().
Signed-off-by: Hou Zhiqiang Zhiqiang.Hou@nxp.com --- drivers/net/e1000.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c index 694114eca7..1f0d559415 100644 --- a/drivers/net/e1000.c +++ b/drivers/net/e1000.c @@ -4738,12 +4738,16 @@ e1000_phy_init_script(struct e1000_hw *hw) uint16_t fused, fine, coarse;
/* Move to analog registers page */ - e1000_read_phy_reg(hw, - IGP01E1000_ANALOG_SPARE_FUSE_STATUS, &fused); + if (e1000_read_phy_reg(hw, + IGP01E1000_ANALOG_SPARE_FUSE_STATUS, + &fused)) + return;
if (!(fused & IGP01E1000_ANALOG_SPARE_FUSE_ENABLED)) { - e1000_read_phy_reg(hw, - IGP01E1000_ANALOG_FUSE_STATUS, &fused); + if (e1000_read_phy_reg(hw, + IGP01E1000_ANALOG_FUSE_STATUS, + &fused)) + return;
fine = fused & IGP01E1000_ANALOG_FUSE_FINE_MASK; coarse = fused

On Mon, May 31, 2021 at 6:12 PM Zhiqiang Hou Zhiqiang.Hou@nxp.com wrote:
From: Hou Zhiqiang Zhiqiang.Hou@nxp.com
Added check for return value of e1000_read_phy_reg().
Signed-off-by: Hou Zhiqiang Zhiqiang.Hou@nxp.com
drivers/net/e1000.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c index 694114eca7..1f0d559415 100644 --- a/drivers/net/e1000.c +++ b/drivers/net/e1000.c @@ -4738,12 +4738,16 @@ e1000_phy_init_script(struct e1000_hw *hw) uint16_t fused, fine, coarse;
/* Move to analog registers page */
e1000_read_phy_reg(hw,
IGP01E1000_ANALOG_SPARE_FUSE_STATUS, &fused);
if (e1000_read_phy_reg(hw,
IGP01E1000_ANALOG_SPARE_FUSE_STATUS,
&fused))
return; if (!(fused & IGP01E1000_ANALOG_SPARE_FUSE_ENABLED)) {
e1000_read_phy_reg(hw,
IGP01E1000_ANALOG_FUSE_STATUS, &fused);
if (e1000_read_phy_reg(hw,
IGP01E1000_ANALOG_FUSE_STATUS,
&fused))
return; fine = fused & IGP01E1000_ANALOG_FUSE_FINE_MASK; coarse = fused
-- 2.17.1
What about some error messages ?

-----Original Message----- From: Ramon Fried rfried.dev@gmail.com Sent: 2021年6月10日 13:49 To: Z.Q. Hou zhiqiang.hou@nxp.com Cc: Joe Hershberger joe.hershberger@ni.com; U-Boot Mailing List u-boot@lists.denx.de Subject: Re: [PATCH] net: e1000: Fix Unchecked return value coverity
On Mon, May 31, 2021 at 6:12 PM Zhiqiang Hou Zhiqiang.Hou@nxp.com wrote:
From: Hou Zhiqiang Zhiqiang.Hou@nxp.com
Added check for return value of e1000_read_phy_reg().
Signed-off-by: Hou Zhiqiang Zhiqiang.Hou@nxp.com
drivers/net/e1000.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c index 694114eca7..1f0d559415 100644 --- a/drivers/net/e1000.c +++ b/drivers/net/e1000.c @@ -4738,12 +4738,16 @@ e1000_phy_init_script(struct e1000_hw *hw) uint16_t fused, fine, coarse;
/* Move to analog registers page */
e1000_read_phy_reg(hw,
IGP01E1000_ANALOG_SPARE_FUSE_STATUS, &fused);
if (e1000_read_phy_reg(hw,
IGP01E1000_ANALOG_SPARE_FUSE_STATUS,
&fused))
return; if (!(fused &
IGP01E1000_ANALOG_SPARE_FUSE_ENABLED)) {
e1000_read_phy_reg(hw,
IGP01E1000_ANALOG_FUSE_STATUS, &fused);
if (e1000_read_phy_reg(hw,
IGP01E1000_ANALOG_FUSE_STATUS,
&fused))
return; fine = fused &
IGP01E1000_ANALOG_FUSE_FINE_MASK;
coarse = fused
-- 2.17.1
What about some error messages ?
CID 43664 (#15 of 15): Unchecked return value (CHECKED_RETURN) 6. check_return: Calling e1000_read_phy_reg without checking return value (as is done elsewhere 44 out of 47 times).
- Zhiqiang

On Fri, Jun 11, 2021 at 5:56 AM Z.Q. Hou zhiqiang.hou@nxp.com wrote:
-----Original Message----- From: Ramon Fried rfried.dev@gmail.com Sent: 2021年6月10日 13:49 To: Z.Q. Hou zhiqiang.hou@nxp.com Cc: Joe Hershberger joe.hershberger@ni.com; U-Boot Mailing List u-boot@lists.denx.de Subject: Re: [PATCH] net: e1000: Fix Unchecked return value coverity
On Mon, May 31, 2021 at 6:12 PM Zhiqiang Hou Zhiqiang.Hou@nxp.com wrote:
From: Hou Zhiqiang Zhiqiang.Hou@nxp.com
Added check for return value of e1000_read_phy_reg().
Signed-off-by: Hou Zhiqiang Zhiqiang.Hou@nxp.com
drivers/net/e1000.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c index 694114eca7..1f0d559415 100644 --- a/drivers/net/e1000.c +++ b/drivers/net/e1000.c @@ -4738,12 +4738,16 @@ e1000_phy_init_script(struct e1000_hw *hw) uint16_t fused, fine, coarse;
/* Move to analog registers page */
e1000_read_phy_reg(hw,
IGP01E1000_ANALOG_SPARE_FUSE_STATUS, &fused);
if (e1000_read_phy_reg(hw,
IGP01E1000_ANALOG_SPARE_FUSE_STATUS,
&fused))
return; if (!(fused &
IGP01E1000_ANALOG_SPARE_FUSE_ENABLED)) {
e1000_read_phy_reg(hw,
IGP01E1000_ANALOG_FUSE_STATUS, &fused);
if (e1000_read_phy_reg(hw,
IGP01E1000_ANALOG_FUSE_STATUS,
&fused))
return; fine = fused &
IGP01E1000_ANALOG_FUSE_FINE_MASK;
coarse = fused
-- 2.17.1
What about some error messages ?
CID 43664 (#15 of 15): Unchecked return value (CHECKED_RETURN) 6. check_return: Calling e1000_read_phy_reg without checking return value (as is done elsewhere 44 out of 47 times).
- Zhiqiang
It's not clear enough why you're leaving the function early, better add some comments in the commit message and in the code.

-----Original Message----- From: Ramon Fried [mailto:rfried.dev@gmail.com] Sent: 2021年6月12日 7:47 To: Z.Q. Hou zhiqiang.hou@nxp.com Cc: Joe Hershberger joe.hershberger@ni.com; U-Boot Mailing List u-boot@lists.denx.de Subject: Re: [PATCH] net: e1000: Fix Unchecked return value coverity
On Fri, Jun 11, 2021 at 5:56 AM Z.Q. Hou zhiqiang.hou@nxp.com wrote:
-----Original Message----- From: Ramon Fried rfried.dev@gmail.com Sent: 2021年6月10日 13:49 To: Z.Q. Hou zhiqiang.hou@nxp.com Cc: Joe Hershberger joe.hershberger@ni.com; U-Boot Mailing List u-boot@lists.denx.de Subject: Re: [PATCH] net: e1000: Fix Unchecked return value coverity
On Mon, May 31, 2021 at 6:12 PM Zhiqiang Hou Zhiqiang.Hou@nxp.com wrote:
From: Hou Zhiqiang Zhiqiang.Hou@nxp.com
Added check for return value of e1000_read_phy_reg().
Signed-off-by: Hou Zhiqiang Zhiqiang.Hou@nxp.com
drivers/net/e1000.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c index 694114eca7..1f0d559415 100644 --- a/drivers/net/e1000.c +++ b/drivers/net/e1000.c @@ -4738,12 +4738,16 @@ e1000_phy_init_script(struct e1000_hw
*hw)
uint16_t fused, fine, coarse; /* Move to analog registers page */
e1000_read_phy_reg(hw,
IGP01E1000_ANALOG_SPARE_FUSE_STATUS, &fused);
if (e1000_read_phy_reg(hw,
IGP01E1000_ANALOG_SPARE_FUSE_STATUS,
&fused))
return; if (!(fused &
IGP01E1000_ANALOG_SPARE_FUSE_ENABLED)) {
e1000_read_phy_reg(hw,
IGP01E1000_ANALOG_FUSE_STATUS, &fused);
if (e1000_read_phy_reg(hw,
IGP01E1000_ANALOG_FUSE_STATUS,
&fused))
return; fine = fused &
IGP01E1000_ANALOG_FUSE_FINE_MASK;
coarse = fused
-- 2.17.1
What about some error messages ?
CID 43664 (#15 of 15): Unchecked return value (CHECKED_RETURN) 6. check_return: Calling e1000_read_phy_reg without checking return value
(as is done elsewhere 44 out of 47 times).
- Zhiqiang
It's not clear enough why you're leaving the function early, better add some comments in the commit message and in the code.
If it should continue to run while it failed to read the PHY registers? Anyone can comments on this?
Thanks, Zhiqiang
participants (3)
-
Ramon Fried
-
Z.Q. Hou
-
Zhiqiang Hou