mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-27 17:11:46 +00:00
ixgbe: fix regression on some 82598 adapters
The change to check the SFP+ module again on open() was causing the XFP (non-SFP+) adapters to be rejected. We only want to try and re-identify the SFP+ module if the original probe found that this device was an SFP+ device. So for this code path (driver loaded with SFP module, module inserted, ifconfig up of the device) the type will be ixgbe_phy_unknown for an unidentified SFP+ module. So we only check if that is the case. This problem also shows up on Copper devices. Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com> Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
63d6e1d80a
commit
19343de279
1 changed files with 14 additions and 10 deletions
|
@ -2697,20 +2697,24 @@ static int ixgbe_up_complete(struct ixgbe_adapter *adapter)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* For hot-pluggable SFP+ devices, a new SFP+ module may have
|
* For hot-pluggable SFP+ devices, a new SFP+ module may have
|
||||||
* arrived before interrupts were enabled. We need to kick off
|
* arrived before interrupts were enabled but after probe. Such
|
||||||
* the SFP+ module setup first, then try to bring up link.
|
* devices wouldn't have their type identified yet. We need to
|
||||||
|
* kick off the SFP+ module setup first, then try to bring up link.
|
||||||
* If we're not hot-pluggable SFP+, we just need to configure link
|
* If we're not hot-pluggable SFP+, we just need to configure link
|
||||||
* and bring it up.
|
* and bring it up.
|
||||||
*/
|
*/
|
||||||
|
if (hw->phy.type == ixgbe_phy_unknown) {
|
||||||
err = hw->phy.ops.identify(hw);
|
err = hw->phy.ops.identify(hw);
|
||||||
if (err == IXGBE_ERR_SFP_NOT_SUPPORTED) {
|
if (err == IXGBE_ERR_SFP_NOT_SUPPORTED) {
|
||||||
dev_err(&adapter->pdev->dev, "failed to initialize because "
|
dev_err(&adapter->pdev->dev, "failed to initialize "
|
||||||
"an unsupported SFP+ module type was detected.\n"
|
"because an unsupported SFP+ module type "
|
||||||
"Reload the driver after installing a supported "
|
"was detected.\n"
|
||||||
"module.\n");
|
"Reload the driver after installing a "
|
||||||
|
"supported module.\n");
|
||||||
ixgbe_down(adapter);
|
ixgbe_down(adapter);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (ixgbe_is_sfp(hw)) {
|
if (ixgbe_is_sfp(hw)) {
|
||||||
ixgbe_sfp_link_config(adapter);
|
ixgbe_sfp_link_config(adapter);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue