aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c')
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c46
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
163out:
164 return err; 126 return err;
165} 127}
166 128