|
@@ -6791,7 +6791,7 @@ static int __ixgbe_shutdown(struct pci_dev *pdev, bool *enable_wake)
|
|
|
struct ixgbe_adapter *adapter = pci_get_drvdata(pdev);
|
|
|
struct net_device *netdev = adapter->netdev;
|
|
|
struct ixgbe_hw *hw = &adapter->hw;
|
|
|
- u32 ctrl, fctrl;
|
|
|
+ u32 ctrl;
|
|
|
u32 wufc = adapter->wol;
|
|
|
#ifdef CONFIG_PM
|
|
|
int retval = 0;
|
|
@@ -6816,18 +6816,18 @@ static int __ixgbe_shutdown(struct pci_dev *pdev, bool *enable_wake)
|
|
|
hw->mac.ops.stop_link_on_d3(hw);
|
|
|
|
|
|
if (wufc) {
|
|
|
+ u32 fctrl;
|
|
|
+
|
|
|
ixgbe_set_rx_mode(netdev);
|
|
|
|
|
|
/* enable the optics for 82599 SFP+ fiber as we can WoL */
|
|
|
if (hw->mac.ops.enable_tx_laser)
|
|
|
hw->mac.ops.enable_tx_laser(hw);
|
|
|
|
|
|
- /* turn on all-multi mode if wake on multicast is enabled */
|
|
|
- if (wufc & IXGBE_WUFC_MC) {
|
|
|
- fctrl = IXGBE_READ_REG(hw, IXGBE_FCTRL);
|
|
|
- fctrl |= IXGBE_FCTRL_MPE;
|
|
|
- IXGBE_WRITE_REG(hw, IXGBE_FCTRL, fctrl);
|
|
|
- }
|
|
|
+ /* enable the reception of multicast packets */
|
|
|
+ fctrl = IXGBE_READ_REG(hw, IXGBE_FCTRL);
|
|
|
+ fctrl |= IXGBE_FCTRL_MPE;
|
|
|
+ IXGBE_WRITE_REG(hw, IXGBE_FCTRL, fctrl);
|
|
|
|
|
|
ctrl = IXGBE_READ_REG(hw, IXGBE_CTRL);
|
|
|
ctrl |= IXGBE_CTRL_GIO_DIS;
|