diff options
author | Alexander Duyck <alexander.h.duyck@intel.com> | 2009-09-14 04:23:13 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-09-14 20:03:54 -0400 |
commit | d314737ad3bad6b4603b243fd6db572385259690 (patch) | |
tree | aeb1403dff45df771e0c83bad4e7d8c6b8164e50 | |
parent | 2fb02a26bda1cbc3553164a8358c303d936255c5 (diff) |
igb: do not allow phy sw reset code to make calls to null pointers
In the case of fiber and serdes adapters we were seeing issues with ethtool
-t causing kernel panics due to null function pointers. To prevent this we
need to exit out of the phy reset code in the event that we do not have a
valid phy.
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/igb/e1000_phy.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/igb/e1000_phy.c b/drivers/net/igb/e1000_phy.c index c1f4da630420..ee460600e74b 100644 --- a/drivers/net/igb/e1000_phy.c +++ b/drivers/net/igb/e1000_phy.c | |||
@@ -1565,9 +1565,12 @@ out: | |||
1565 | **/ | 1565 | **/ |
1566 | s32 igb_phy_sw_reset(struct e1000_hw *hw) | 1566 | s32 igb_phy_sw_reset(struct e1000_hw *hw) |
1567 | { | 1567 | { |
1568 | s32 ret_val; | 1568 | s32 ret_val = 0; |
1569 | u16 phy_ctrl; | 1569 | u16 phy_ctrl; |
1570 | 1570 | ||
1571 | if (!(hw->phy.ops.read_reg)) | ||
1572 | goto out; | ||
1573 | |||
1571 | ret_val = hw->phy.ops.read_reg(hw, PHY_CONTROL, &phy_ctrl); | 1574 | ret_val = hw->phy.ops.read_reg(hw, PHY_CONTROL, &phy_ctrl); |
1572 | if (ret_val) | 1575 | if (ret_val) |
1573 | goto out; | 1576 | goto out; |