diff options
author | PJ Waskiewicz <peter.p.waskiewicz.jr@intel.com> | 2009-03-25 18:10:42 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-03-26 04:13:51 -0400 |
commit | bb3daa4a5960cd9d39bad88679fcf587b456c05d (patch) | |
tree | 31cbdf87fed0af126ff0c3e0647dfa90aab8a7c7 /drivers/net/ixgbe/ixgbe_dcb_nl.c | |
parent | ede5ad0e29b641c3d3a644272a9127bfd98dfcc8 (diff) |
ixgbe: Allow Priority Flow Control settings to survive a device reset
When changing DCB parameters, ixgbe needs to have the MAC reset. The way
the flow control code is setup today, PFC will be disabled on a reset.
This patch adds a new flow control type for PFC, and then has the netlink
layer take care of toggling which type of flow control to enable.
Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ixgbe/ixgbe_dcb_nl.c')
-rw-r--r-- | drivers/net/ixgbe/ixgbe_dcb_nl.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ixgbe/ixgbe_dcb_nl.c b/drivers/net/ixgbe/ixgbe_dcb_nl.c index 8a9939ee2927..0a8731f1f237 100644 --- a/drivers/net/ixgbe/ixgbe_dcb_nl.c +++ b/drivers/net/ixgbe/ixgbe_dcb_nl.c | |||
@@ -130,6 +130,7 @@ static u8 ixgbe_dcbnl_set_state(struct net_device *netdev, u8 state) | |||
130 | adapter->tx_ring = NULL; | 130 | adapter->tx_ring = NULL; |
131 | adapter->rx_ring = NULL; | 131 | adapter->rx_ring = NULL; |
132 | 132 | ||
133 | adapter->hw.fc.requested_mode = ixgbe_fc_pfc; | ||
133 | adapter->flags &= ~IXGBE_FLAG_RSS_ENABLED; | 134 | adapter->flags &= ~IXGBE_FLAG_RSS_ENABLED; |
134 | adapter->flags |= IXGBE_FLAG_DCB_ENABLED; | 135 | adapter->flags |= IXGBE_FLAG_DCB_ENABLED; |
135 | ixgbe_init_interrupt_scheme(adapter); | 136 | ixgbe_init_interrupt_scheme(adapter); |
@@ -138,6 +139,7 @@ static u8 ixgbe_dcbnl_set_state(struct net_device *netdev, u8 state) | |||
138 | } else { | 139 | } else { |
139 | /* Turn off DCB */ | 140 | /* Turn off DCB */ |
140 | if (adapter->flags & IXGBE_FLAG_DCB_ENABLED) { | 141 | if (adapter->flags & IXGBE_FLAG_DCB_ENABLED) { |
142 | adapter->hw.fc.requested_mode = ixgbe_fc_default; | ||
141 | if (netif_running(netdev)) | 143 | if (netif_running(netdev)) |
142 | netdev->netdev_ops->ndo_stop(netdev); | 144 | netdev->netdev_ops->ndo_stop(netdev); |
143 | ixgbe_reset_interrupt_capability(adapter); | 145 | ixgbe_reset_interrupt_capability(adapter); |