Message ID | 20090702225051.22746.79159.stgit@localhost.localdomain |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Date: Thu, 02 Jul 2009 15:50:52 -0700 > From: Don Skidmore <donald.c.skidmore@intel.com> > > Currently if we loaded the driver, insert an unsupported module, and then > attempt to "ifconfig up" the device it will be brought down but the netdev > would not be unregistered. This behavior is different than all other > code paths. This patch corrects that by down'ing the device and then > scheduling the sfp_config_module_task tasklet. The tasklet will detect > this condition (like it does with other code paths) and do the > unregister_netdev(). > > I also removed the log message as this condition (an unsupported SFP+ > module) will be logged in sfp_config_module_task. > > Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com> > Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Applied. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c index cf39f5a..a3061aa 100644 --- a/drivers/net/ixgbe/ixgbe_main.c +++ b/drivers/net/ixgbe/ixgbe_main.c @@ -2706,12 +2706,12 @@ static int ixgbe_up_complete(struct ixgbe_adapter *adapter) if (hw->phy.type == ixgbe_phy_unknown) { err = hw->phy.ops.identify(hw); if (err == IXGBE_ERR_SFP_NOT_SUPPORTED) { - dev_err(&adapter->pdev->dev, "failed to initialize " - "because an unsupported SFP+ module type " - "was detected.\n" - "Reload the driver after installing a " - "supported module.\n"); + /* + * Take the device down and schedule the sfp tasklet + * which will unregister_netdev and log it. + */ ixgbe_down(adapter); + schedule_work(&adapter->sfp_config_module_task); return err; } }