mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 22:51:42 +00:00
ixgbe: fix panic due to uninitialised pointer
Systems containing an 82599EB and running a backported driver from upstream were panicing on boot. It turns out hw->mac.ops.setup_sfp is only set for 82599, so one should check to be sure that pointer is set before continuing in ixgbe_sfp_config_module_task. I verified by inspection that the upstream driver has the same issue and also added a check before the call in ixgbe_sfp_link_config. Signed-off-by: Andy Gospodarek <andy@greyhouse.net> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
713b3c9e4c
commit
4c7e604bab
@ -3728,7 +3728,8 @@ static void ixgbe_sfp_link_config(struct ixgbe_adapter *adapter)
|
|||||||
* We need to try and force an autonegotiation
|
* We need to try and force an autonegotiation
|
||||||
* session, then bring up link.
|
* session, then bring up link.
|
||||||
*/
|
*/
|
||||||
hw->mac.ops.setup_sfp(hw);
|
if (hw->mac.ops.setup_sfp)
|
||||||
|
hw->mac.ops.setup_sfp(hw);
|
||||||
if (!(adapter->flags & IXGBE_FLAG_IN_SFP_LINK_TASK))
|
if (!(adapter->flags & IXGBE_FLAG_IN_SFP_LINK_TASK))
|
||||||
schedule_work(&adapter->multispeed_fiber_task);
|
schedule_work(&adapter->multispeed_fiber_task);
|
||||||
} else {
|
} else {
|
||||||
@ -5968,7 +5969,8 @@ static void ixgbe_sfp_config_module_task(struct work_struct *work)
|
|||||||
unregister_netdev(adapter->netdev);
|
unregister_netdev(adapter->netdev);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
hw->mac.ops.setup_sfp(hw);
|
if (hw->mac.ops.setup_sfp)
|
||||||
|
hw->mac.ops.setup_sfp(hw);
|
||||||
|
|
||||||
if (!(adapter->flags & IXGBE_FLAG_IN_SFP_LINK_TASK))
|
if (!(adapter->flags & IXGBE_FLAG_IN_SFP_LINK_TASK))
|
||||||
/* This will also work for DA Twinax connections */
|
/* This will also work for DA Twinax connections */
|
||||||
|
Loading…
Reference in New Issue
Block a user