diff options
Diffstat (limited to 'drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c')
-rw-r--r-- | drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c | 46 |
1 files changed, 4 insertions, 42 deletions
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c index da6d53e7af99..0422e356b6fc 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c | |||
@@ -118,49 +118,11 @@ static u8 ixgbe_dcbnl_set_state(struct net_device *netdev, u8 state) | |||
118 | if (!!state != !(adapter->flags & IXGBE_FLAG_DCB_ENABLED)) | 118 | if (!!state != !(adapter->flags & IXGBE_FLAG_DCB_ENABLED)) |
119 | return err; | 119 | return err; |
120 | 120 | ||
121 | if (state > 0) { | 121 | if (state > 0) |
122 | /* Turn on DCB */ | 122 | err = ixgbe_setup_tc(netdev, MAX_TRAFFIC_CLASS); |
123 | if (!(adapter->flags & IXGBE_FLAG_MSIX_ENABLED)) { | 123 | else |
124 | e_err(drv, "Enable failed, needs MSI-X\n"); | 124 | err = ixgbe_setup_tc(netdev, 0); |
125 | err = 1; | ||
126 | goto out; | ||
127 | } | ||
128 | |||
129 | adapter->flags |= IXGBE_FLAG_DCB_ENABLED; | ||
130 | |||
131 | switch (adapter->hw.mac.type) { | ||
132 | case ixgbe_mac_82598EB: | ||
133 | adapter->last_lfc_mode = adapter->hw.fc.current_mode; | ||
134 | adapter->hw.fc.requested_mode = ixgbe_fc_none; | ||
135 | break; | ||
136 | case ixgbe_mac_82599EB: | ||
137 | case ixgbe_mac_X540: | ||
138 | adapter->flags &= ~IXGBE_FLAG_FDIR_HASH_CAPABLE; | ||
139 | break; | ||
140 | default: | ||
141 | break; | ||
142 | } | ||
143 | |||
144 | ixgbe_setup_tc(netdev, MAX_TRAFFIC_CLASS); | ||
145 | } else { | ||
146 | /* Turn off DCB */ | ||
147 | adapter->hw.fc.requested_mode = adapter->last_lfc_mode; | ||
148 | adapter->temp_dcb_cfg.pfc_mode_enable = false; | ||
149 | adapter->dcb_cfg.pfc_mode_enable = false; | ||
150 | adapter->flags &= ~IXGBE_FLAG_DCB_ENABLED; | ||
151 | switch (adapter->hw.mac.type) { | ||
152 | case ixgbe_mac_82599EB: | ||
153 | case ixgbe_mac_X540: | ||
154 | if (!(adapter->flags & IXGBE_FLAG_FDIR_PERFECT_CAPABLE)) | ||
155 | adapter->flags |= IXGBE_FLAG_FDIR_HASH_CAPABLE; | ||
156 | break; | ||
157 | default: | ||
158 | break; | ||
159 | } | ||
160 | ixgbe_setup_tc(netdev, 0); | ||
161 | } | ||
162 | 125 | ||
163 | out: | ||
164 | return err; | 126 | return err; |
165 | } | 127 | } |
166 | 128 | ||