diff mbox series

net: 80003es2lan: fix a missing check of read failure

Message ID 20181220212359.564-1-kjlu@umn.edu
State Rejected
Headers show
Series net: 80003es2lan: fix a missing check of read failure | expand

Commit Message

Kangjie Lu Dec. 20, 2018, 9:23 p.m. UTC
When e1000_read_kmrn_reg_80003es2lan() fails, "kum_reg_data" is
uninitialized and may contain random value. However, it is further
used in the following execution, which will lead to undefined
behaviors.
The fix checks the failure of e1000_read_kmrn_reg_80003es2lan() and
returns with its error code if it fails.

Signed-off-by: Kangjie Lu <kjlu@umn.edu>
---
 drivers/net/ethernet/intel/e1000e/80003es2lan.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

Comments

Kirsher, Jeffrey T Dec. 21, 2018, 7:18 p.m. UTC | #1
On Thu, 2018-12-20 at 15:23 -0600, Kangjie Lu wrote:
> When e1000_read_kmrn_reg_80003es2lan() fails, "kum_reg_data" is
> uninitialized and may contain random value. However, it is further
> used in the following execution, which will lead to undefined
> behaviors.
> The fix checks the failure of e1000_read_kmrn_reg_80003es2lan() and
> returns with its error code if it fails.
> 
> Signed-off-by: Kangjie Lu <kjlu@umn.edu>
> ---
>  drivers/net/ethernet/intel/e1000e/80003es2lan.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)

This is a good catch, although we do not want to exit out on failure.  I
have an alternative patch to resolve both issues, which I will submit later
today.  Just need to finish holiday shopping for my wife... :-)
Kangjie Lu Dec. 21, 2018, 7:21 p.m. UTC | #2
Sounds good. Look forward to your alternative patch. Enjoy your shopping.

On Fri, Dec 21, 2018 at 1:19 PM Jeff Kirsher <jeffrey.t.kirsher@intel.com>
wrote:

> On Thu, 2018-12-20 at 15:23 -0600, Kangjie Lu wrote:
> > When e1000_read_kmrn_reg_80003es2lan() fails, "kum_reg_data" is
> > uninitialized and may contain random value. However, it is further
> > used in the following execution, which will lead to undefined
> > behaviors.
> > The fix checks the failure of e1000_read_kmrn_reg_80003es2lan() and
> > returns with its error code if it fails.
> >
> > Signed-off-by: Kangjie Lu <kjlu@umn.edu>
> > ---
> >  drivers/net/ethernet/intel/e1000e/80003es2lan.c | 7 +++++--
> >  1 file changed, 5 insertions(+), 2 deletions(-)
>
> This is a good catch, although we do not want to exit out on failure.  I
> have an alternative patch to resolve both issues, which I will submit later
> today.  Just need to finish holiday shopping for my wife... :-)
>
diff mbox series

Patch

diff --git a/drivers/net/ethernet/intel/e1000e/80003es2lan.c b/drivers/net/ethernet/intel/e1000e/80003es2lan.c
index 257bd59bc9c6..8a6f8e80e062 100644
--- a/drivers/net/ethernet/intel/e1000e/80003es2lan.c
+++ b/drivers/net/ethernet/intel/e1000e/80003es2lan.c
@@ -754,8 +754,11 @@  static s32 e1000_init_hw_80003es2lan(struct e1000_hw *hw)
 		return ret_val;
 
 	/* Disable IBIST slave mode (far-end loopback) */
-	e1000_read_kmrn_reg_80003es2lan(hw, E1000_KMRNCTRLSTA_INBAND_PARAM,
-					&kum_reg_data);
+	ret_val = 
+	    e1000_read_kmrn_reg_80003es2lan(hw, E1000_KMRNCTRLSTA_INBAND_PARAM,
+					    &kum_reg_data);
+	if (ret_val)
+		return ret_val;
 	kum_reg_data |= E1000_KMRNCTRLSTA_IBIST_DISABLE;
 	e1000_write_kmrn_reg_80003es2lan(hw, E1000_KMRNCTRLSTA_INBAND_PARAM,
 					 kum_reg_data);