igb: do not allow phy sw reset code to make calls to null pointers
authorAlexander Duyck <alexander.h.duyck@intel.com>
Mon, 14 Sep 2009 08:23:13 +0000 (08:23 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 15 Sep 2009 00:03:54 +0000 (17:03 -0700)
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>
drivers/net/igb/e1000_phy.c

index c1f4da6..ee46060 100644 (file)
@@ -1565,9 +1565,12 @@ out:
  **/
 s32 igb_phy_sw_reset(struct e1000_hw *hw)
 {
-       s32 ret_val;
+       s32 ret_val = 0;
        u16 phy_ctrl;
 
+       if (!(hw->phy.ops.read_reg))
+               goto out;
+
        ret_val = hw->phy.ops.read_reg(hw, PHY_CONTROL, &phy_ctrl);
        if (ret_val)
                goto out;