diff options
author | Jiri Pirko <jpirko@redhat.com> | 2011-12-08 19:52:37 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-12-08 19:52:37 -0500 |
commit | 8e586137e6b63af1e881b328466ab5ffbe562510 (patch) | |
tree | da0767e1b1361aa24bd32f485453079e31854c0c /drivers/net/ethernet/intel | |
parent | 7da82c06ded105bf601bfa0eafc92e84eb0ceeed (diff) |
net: make vlan ndo_vlan_rx_[add/kill]_vid return error value
Let caller know the result of adding/removing vlan id to/from vlan
filter.
In some drivers I make those functions to just return 0. But in those
where there is able to see if hw setup went correctly, return value is
set appropriately.
Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/intel')
-rw-r--r-- | drivers/net/ethernet/intel/e1000/e1000_main.c | 14 | ||||
-rw-r--r-- | drivers/net/ethernet/intel/e1000e/netdev.c | 12 | ||||
-rw-r--r-- | drivers/net/ethernet/intel/igb/igb_main.c | 12 | ||||
-rw-r--r-- | drivers/net/ethernet/intel/igbvf/netdev.c | 20 | ||||
-rw-r--r-- | drivers/net/ethernet/intel/ixgb/ixgb_main.c | 12 | ||||
-rw-r--r-- | drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 8 | ||||
-rw-r--r-- | drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 8 |
7 files changed, 57 insertions, 29 deletions
diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c index 82f4ef142259..053f01289eff 100644 --- a/drivers/net/ethernet/intel/e1000/e1000_main.c +++ b/drivers/net/ethernet/intel/e1000/e1000_main.c | |||
@@ -169,8 +169,8 @@ static int e1000_82547_fifo_workaround(struct e1000_adapter *adapter, | |||
169 | static bool e1000_vlan_used(struct e1000_adapter *adapter); | 169 | static bool e1000_vlan_used(struct e1000_adapter *adapter); |
170 | static void e1000_vlan_mode(struct net_device *netdev, | 170 | static void e1000_vlan_mode(struct net_device *netdev, |
171 | netdev_features_t features); | 171 | netdev_features_t features); |
172 | static void e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid); | 172 | static int e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid); |
173 | static void e1000_vlan_rx_kill_vid(struct net_device *netdev, u16 vid); | 173 | static int e1000_vlan_rx_kill_vid(struct net_device *netdev, u16 vid); |
174 | static void e1000_restore_vlan(struct e1000_adapter *adapter); | 174 | static void e1000_restore_vlan(struct e1000_adapter *adapter); |
175 | 175 | ||
176 | #ifdef CONFIG_PM | 176 | #ifdef CONFIG_PM |
@@ -4604,7 +4604,7 @@ static void e1000_vlan_mode(struct net_device *netdev, | |||
4604 | e1000_irq_enable(adapter); | 4604 | e1000_irq_enable(adapter); |
4605 | } | 4605 | } |
4606 | 4606 | ||
4607 | static void e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid) | 4607 | static int e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid) |
4608 | { | 4608 | { |
4609 | struct e1000_adapter *adapter = netdev_priv(netdev); | 4609 | struct e1000_adapter *adapter = netdev_priv(netdev); |
4610 | struct e1000_hw *hw = &adapter->hw; | 4610 | struct e1000_hw *hw = &adapter->hw; |
@@ -4613,7 +4613,7 @@ static void e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid) | |||
4613 | if ((hw->mng_cookie.status & | 4613 | if ((hw->mng_cookie.status & |
4614 | E1000_MNG_DHCP_COOKIE_STATUS_VLAN_SUPPORT) && | 4614 | E1000_MNG_DHCP_COOKIE_STATUS_VLAN_SUPPORT) && |
4615 | (vid == adapter->mng_vlan_id)) | 4615 | (vid == adapter->mng_vlan_id)) |
4616 | return; | 4616 | return 0; |
4617 | 4617 | ||
4618 | if (!e1000_vlan_used(adapter)) | 4618 | if (!e1000_vlan_used(adapter)) |
4619 | e1000_vlan_filter_on_off(adapter, true); | 4619 | e1000_vlan_filter_on_off(adapter, true); |
@@ -4625,9 +4625,11 @@ static void e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid) | |||
4625 | e1000_write_vfta(hw, index, vfta); | 4625 | e1000_write_vfta(hw, index, vfta); |
4626 | 4626 | ||
4627 | set_bit(vid, adapter->active_vlans); | 4627 | set_bit(vid, adapter->active_vlans); |
4628 | |||
4629 | return 0; | ||
4628 | } | 4630 | } |
4629 | 4631 | ||
4630 | static void e1000_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) | 4632 | static int e1000_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) |
4631 | { | 4633 | { |
4632 | struct e1000_adapter *adapter = netdev_priv(netdev); | 4634 | struct e1000_adapter *adapter = netdev_priv(netdev); |
4633 | struct e1000_hw *hw = &adapter->hw; | 4635 | struct e1000_hw *hw = &adapter->hw; |
@@ -4648,6 +4650,8 @@ static void e1000_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) | |||
4648 | 4650 | ||
4649 | if (!e1000_vlan_used(adapter)) | 4651 | if (!e1000_vlan_used(adapter)) |
4650 | e1000_vlan_filter_on_off(adapter, false); | 4652 | e1000_vlan_filter_on_off(adapter, false); |
4653 | |||
4654 | return 0; | ||
4651 | } | 4655 | } |
4652 | 4656 | ||
4653 | static void e1000_restore_vlan(struct e1000_adapter *adapter) | 4657 | static void e1000_restore_vlan(struct e1000_adapter *adapter) |
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c index 93ae0c26d434..90953b4d6bfa 100644 --- a/drivers/net/ethernet/intel/e1000e/netdev.c +++ b/drivers/net/ethernet/intel/e1000e/netdev.c | |||
@@ -2522,7 +2522,7 @@ clean_rx: | |||
2522 | return work_done; | 2522 | return work_done; |
2523 | } | 2523 | } |
2524 | 2524 | ||
2525 | static void e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid) | 2525 | static int e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid) |
2526 | { | 2526 | { |
2527 | struct e1000_adapter *adapter = netdev_priv(netdev); | 2527 | struct e1000_adapter *adapter = netdev_priv(netdev); |
2528 | struct e1000_hw *hw = &adapter->hw; | 2528 | struct e1000_hw *hw = &adapter->hw; |
@@ -2532,7 +2532,7 @@ static void e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid) | |||
2532 | if ((adapter->hw.mng_cookie.status & | 2532 | if ((adapter->hw.mng_cookie.status & |
2533 | E1000_MNG_DHCP_COOKIE_STATUS_VLAN) && | 2533 | E1000_MNG_DHCP_COOKIE_STATUS_VLAN) && |
2534 | (vid == adapter->mng_vlan_id)) | 2534 | (vid == adapter->mng_vlan_id)) |
2535 | return; | 2535 | return 0; |
2536 | 2536 | ||
2537 | /* add VID to filter table */ | 2537 | /* add VID to filter table */ |
2538 | if (adapter->flags & FLAG_HAS_HW_VLAN_FILTER) { | 2538 | if (adapter->flags & FLAG_HAS_HW_VLAN_FILTER) { |
@@ -2543,9 +2543,11 @@ static void e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid) | |||
2543 | } | 2543 | } |
2544 | 2544 | ||
2545 | set_bit(vid, adapter->active_vlans); | 2545 | set_bit(vid, adapter->active_vlans); |
2546 | |||
2547 | return 0; | ||
2546 | } | 2548 | } |
2547 | 2549 | ||
2548 | static void e1000_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) | 2550 | static int e1000_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) |
2549 | { | 2551 | { |
2550 | struct e1000_adapter *adapter = netdev_priv(netdev); | 2552 | struct e1000_adapter *adapter = netdev_priv(netdev); |
2551 | struct e1000_hw *hw = &adapter->hw; | 2553 | struct e1000_hw *hw = &adapter->hw; |
@@ -2556,7 +2558,7 @@ static void e1000_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) | |||
2556 | (vid == adapter->mng_vlan_id)) { | 2558 | (vid == adapter->mng_vlan_id)) { |
2557 | /* release control to f/w */ | 2559 | /* release control to f/w */ |
2558 | e1000e_release_hw_control(adapter); | 2560 | e1000e_release_hw_control(adapter); |
2559 | return; | 2561 | return 0; |
2560 | } | 2562 | } |
2561 | 2563 | ||
2562 | /* remove VID from filter table */ | 2564 | /* remove VID from filter table */ |
@@ -2568,6 +2570,8 @@ static void e1000_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) | |||
2568 | } | 2570 | } |
2569 | 2571 | ||
2570 | clear_bit(vid, adapter->active_vlans); | 2572 | clear_bit(vid, adapter->active_vlans); |
2573 | |||
2574 | return 0; | ||
2571 | } | 2575 | } |
2572 | 2576 | ||
2573 | /** | 2577 | /** |
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index 143cfebe3182..89d576ce5776 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c | |||
@@ -148,8 +148,8 @@ static int igb_ioctl(struct net_device *, struct ifreq *, int cmd); | |||
148 | static void igb_tx_timeout(struct net_device *); | 148 | static void igb_tx_timeout(struct net_device *); |
149 | static void igb_reset_task(struct work_struct *); | 149 | static void igb_reset_task(struct work_struct *); |
150 | static void igb_vlan_mode(struct net_device *netdev, netdev_features_t features); | 150 | static void igb_vlan_mode(struct net_device *netdev, netdev_features_t features); |
151 | static void igb_vlan_rx_add_vid(struct net_device *, u16); | 151 | static int igb_vlan_rx_add_vid(struct net_device *, u16); |
152 | static void igb_vlan_rx_kill_vid(struct net_device *, u16); | 152 | static int igb_vlan_rx_kill_vid(struct net_device *, u16); |
153 | static void igb_restore_vlan(struct igb_adapter *); | 153 | static void igb_restore_vlan(struct igb_adapter *); |
154 | static void igb_rar_set_qsel(struct igb_adapter *, u8 *, u32 , u8); | 154 | static void igb_rar_set_qsel(struct igb_adapter *, u8 *, u32 , u8); |
155 | static void igb_ping_all_vfs(struct igb_adapter *); | 155 | static void igb_ping_all_vfs(struct igb_adapter *); |
@@ -6491,7 +6491,7 @@ static void igb_vlan_mode(struct net_device *netdev, netdev_features_t features) | |||
6491 | igb_rlpml_set(adapter); | 6491 | igb_rlpml_set(adapter); |
6492 | } | 6492 | } |
6493 | 6493 | ||
6494 | static void igb_vlan_rx_add_vid(struct net_device *netdev, u16 vid) | 6494 | static int igb_vlan_rx_add_vid(struct net_device *netdev, u16 vid) |
6495 | { | 6495 | { |
6496 | struct igb_adapter *adapter = netdev_priv(netdev); | 6496 | struct igb_adapter *adapter = netdev_priv(netdev); |
6497 | struct e1000_hw *hw = &adapter->hw; | 6497 | struct e1000_hw *hw = &adapter->hw; |
@@ -6504,9 +6504,11 @@ static void igb_vlan_rx_add_vid(struct net_device *netdev, u16 vid) | |||
6504 | igb_vfta_set(hw, vid, true); | 6504 | igb_vfta_set(hw, vid, true); |
6505 | 6505 | ||
6506 | set_bit(vid, adapter->active_vlans); | 6506 | set_bit(vid, adapter->active_vlans); |
6507 | |||
6508 | return 0; | ||
6507 | } | 6509 | } |
6508 | 6510 | ||
6509 | static void igb_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) | 6511 | static int igb_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) |
6510 | { | 6512 | { |
6511 | struct igb_adapter *adapter = netdev_priv(netdev); | 6513 | struct igb_adapter *adapter = netdev_priv(netdev); |
6512 | struct e1000_hw *hw = &adapter->hw; | 6514 | struct e1000_hw *hw = &adapter->hw; |
@@ -6521,6 +6523,8 @@ static void igb_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) | |||
6521 | igb_vfta_set(hw, vid, false); | 6523 | igb_vfta_set(hw, vid, false); |
6522 | 6524 | ||
6523 | clear_bit(vid, adapter->active_vlans); | 6525 | clear_bit(vid, adapter->active_vlans); |
6526 | |||
6527 | return 0; | ||
6524 | } | 6528 | } |
6525 | 6529 | ||
6526 | static void igb_restore_vlan(struct igb_adapter *adapter) | 6530 | static void igb_restore_vlan(struct igb_adapter *adapter) |
diff --git a/drivers/net/ethernet/intel/igbvf/netdev.c b/drivers/net/ethernet/intel/igbvf/netdev.c index c358973ce414..fd3da3076c2f 100644 --- a/drivers/net/ethernet/intel/igbvf/netdev.c +++ b/drivers/net/ethernet/intel/igbvf/netdev.c | |||
@@ -1176,18 +1176,20 @@ static void igbvf_set_rlpml(struct igbvf_adapter *adapter) | |||
1176 | e1000_rlpml_set_vf(hw, max_frame_size); | 1176 | e1000_rlpml_set_vf(hw, max_frame_size); |
1177 | } | 1177 | } |
1178 | 1178 | ||
1179 | static void igbvf_vlan_rx_add_vid(struct net_device *netdev, u16 vid) | 1179 | static int igbvf_vlan_rx_add_vid(struct net_device *netdev, u16 vid) |
1180 | { | 1180 | { |
1181 | struct igbvf_adapter *adapter = netdev_priv(netdev); | 1181 | struct igbvf_adapter *adapter = netdev_priv(netdev); |
1182 | struct e1000_hw *hw = &adapter->hw; | 1182 | struct e1000_hw *hw = &adapter->hw; |
1183 | 1183 | ||
1184 | if (hw->mac.ops.set_vfta(hw, vid, true)) | 1184 | if (hw->mac.ops.set_vfta(hw, vid, true)) { |
1185 | dev_err(&adapter->pdev->dev, "Failed to add vlan id %d\n", vid); | 1185 | dev_err(&adapter->pdev->dev, "Failed to add vlan id %d\n", vid); |
1186 | else | 1186 | return -EINVAL; |
1187 | set_bit(vid, adapter->active_vlans); | 1187 | } |
1188 | set_bit(vid, adapter->active_vlans); | ||
1189 | return 0; | ||
1188 | } | 1190 | } |
1189 | 1191 | ||
1190 | static void igbvf_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) | 1192 | static int igbvf_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) |
1191 | { | 1193 | { |
1192 | struct igbvf_adapter *adapter = netdev_priv(netdev); | 1194 | struct igbvf_adapter *adapter = netdev_priv(netdev); |
1193 | struct e1000_hw *hw = &adapter->hw; | 1195 | struct e1000_hw *hw = &adapter->hw; |
@@ -1197,11 +1199,13 @@ static void igbvf_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) | |||
1197 | if (!test_bit(__IGBVF_DOWN, &adapter->state)) | 1199 | if (!test_bit(__IGBVF_DOWN, &adapter->state)) |
1198 | igbvf_irq_enable(adapter); | 1200 | igbvf_irq_enable(adapter); |
1199 | 1201 | ||
1200 | if (hw->mac.ops.set_vfta(hw, vid, false)) | 1202 | if (hw->mac.ops.set_vfta(hw, vid, false)) { |
1201 | dev_err(&adapter->pdev->dev, | 1203 | dev_err(&adapter->pdev->dev, |
1202 | "Failed to remove vlan id %d\n", vid); | 1204 | "Failed to remove vlan id %d\n", vid); |
1203 | else | 1205 | return -EINVAL; |
1204 | clear_bit(vid, adapter->active_vlans); | 1206 | } |
1207 | clear_bit(vid, adapter->active_vlans); | ||
1208 | return 0; | ||
1205 | } | 1209 | } |
1206 | 1210 | ||
1207 | static void igbvf_restore_vlan(struct igbvf_adapter *adapter) | 1211 | static void igbvf_restore_vlan(struct igbvf_adapter *adapter) |
diff --git a/drivers/net/ethernet/intel/ixgb/ixgb_main.c b/drivers/net/ethernet/intel/ixgb/ixgb_main.c index 247cf9219e03..c573655f3307 100644 --- a/drivers/net/ethernet/intel/ixgb/ixgb_main.c +++ b/drivers/net/ethernet/intel/ixgb/ixgb_main.c | |||
@@ -101,8 +101,8 @@ static void ixgb_tx_timeout_task(struct work_struct *work); | |||
101 | 101 | ||
102 | static void ixgb_vlan_strip_enable(struct ixgb_adapter *adapter); | 102 | static void ixgb_vlan_strip_enable(struct ixgb_adapter *adapter); |
103 | static void ixgb_vlan_strip_disable(struct ixgb_adapter *adapter); | 103 | static void ixgb_vlan_strip_disable(struct ixgb_adapter *adapter); |
104 | static void ixgb_vlan_rx_add_vid(struct net_device *netdev, u16 vid); | 104 | static int ixgb_vlan_rx_add_vid(struct net_device *netdev, u16 vid); |
105 | static void ixgb_vlan_rx_kill_vid(struct net_device *netdev, u16 vid); | 105 | static int ixgb_vlan_rx_kill_vid(struct net_device *netdev, u16 vid); |
106 | static void ixgb_restore_vlan(struct ixgb_adapter *adapter); | 106 | static void ixgb_restore_vlan(struct ixgb_adapter *adapter); |
107 | 107 | ||
108 | #ifdef CONFIG_NET_POLL_CONTROLLER | 108 | #ifdef CONFIG_NET_POLL_CONTROLLER |
@@ -2217,7 +2217,7 @@ ixgb_vlan_strip_disable(struct ixgb_adapter *adapter) | |||
2217 | IXGB_WRITE_REG(&adapter->hw, CTRL0, ctrl); | 2217 | IXGB_WRITE_REG(&adapter->hw, CTRL0, ctrl); |
2218 | } | 2218 | } |
2219 | 2219 | ||
2220 | static void | 2220 | static int |
2221 | ixgb_vlan_rx_add_vid(struct net_device *netdev, u16 vid) | 2221 | ixgb_vlan_rx_add_vid(struct net_device *netdev, u16 vid) |
2222 | { | 2222 | { |
2223 | struct ixgb_adapter *adapter = netdev_priv(netdev); | 2223 | struct ixgb_adapter *adapter = netdev_priv(netdev); |
@@ -2230,9 +2230,11 @@ ixgb_vlan_rx_add_vid(struct net_device *netdev, u16 vid) | |||
2230 | vfta |= (1 << (vid & 0x1F)); | 2230 | vfta |= (1 << (vid & 0x1F)); |
2231 | ixgb_write_vfta(&adapter->hw, index, vfta); | 2231 | ixgb_write_vfta(&adapter->hw, index, vfta); |
2232 | set_bit(vid, adapter->active_vlans); | 2232 | set_bit(vid, adapter->active_vlans); |
2233 | |||
2234 | return 0; | ||
2233 | } | 2235 | } |
2234 | 2236 | ||
2235 | static void | 2237 | static int |
2236 | ixgb_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) | 2238 | ixgb_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) |
2237 | { | 2239 | { |
2238 | struct ixgb_adapter *adapter = netdev_priv(netdev); | 2240 | struct ixgb_adapter *adapter = netdev_priv(netdev); |
@@ -2245,6 +2247,8 @@ ixgb_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) | |||
2245 | vfta &= ~(1 << (vid & 0x1F)); | 2247 | vfta &= ~(1 << (vid & 0x1F)); |
2246 | ixgb_write_vfta(&adapter->hw, index, vfta); | 2248 | ixgb_write_vfta(&adapter->hw, index, vfta); |
2247 | clear_bit(vid, adapter->active_vlans); | 2249 | clear_bit(vid, adapter->active_vlans); |
2250 | |||
2251 | return 0; | ||
2248 | } | 2252 | } |
2249 | 2253 | ||
2250 | static void | 2254 | static void |
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index 1b28ed9d8cc1..5d94ce1c0fc3 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | |||
@@ -3044,7 +3044,7 @@ static void ixgbe_configure_rx(struct ixgbe_adapter *adapter) | |||
3044 | hw->mac.ops.enable_rx_dma(hw, rxctrl); | 3044 | hw->mac.ops.enable_rx_dma(hw, rxctrl); |
3045 | } | 3045 | } |
3046 | 3046 | ||
3047 | static void ixgbe_vlan_rx_add_vid(struct net_device *netdev, u16 vid) | 3047 | static int ixgbe_vlan_rx_add_vid(struct net_device *netdev, u16 vid) |
3048 | { | 3048 | { |
3049 | struct ixgbe_adapter *adapter = netdev_priv(netdev); | 3049 | struct ixgbe_adapter *adapter = netdev_priv(netdev); |
3050 | struct ixgbe_hw *hw = &adapter->hw; | 3050 | struct ixgbe_hw *hw = &adapter->hw; |
@@ -3053,9 +3053,11 @@ static void ixgbe_vlan_rx_add_vid(struct net_device *netdev, u16 vid) | |||
3053 | /* add VID to filter table */ | 3053 | /* add VID to filter table */ |
3054 | hw->mac.ops.set_vfta(&adapter->hw, vid, pool_ndx, true); | 3054 | hw->mac.ops.set_vfta(&adapter->hw, vid, pool_ndx, true); |
3055 | set_bit(vid, adapter->active_vlans); | 3055 | set_bit(vid, adapter->active_vlans); |
3056 | |||
3057 | return 0; | ||
3056 | } | 3058 | } |
3057 | 3059 | ||
3058 | static void ixgbe_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) | 3060 | static int ixgbe_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) |
3059 | { | 3061 | { |
3060 | struct ixgbe_adapter *adapter = netdev_priv(netdev); | 3062 | struct ixgbe_adapter *adapter = netdev_priv(netdev); |
3061 | struct ixgbe_hw *hw = &adapter->hw; | 3063 | struct ixgbe_hw *hw = &adapter->hw; |
@@ -3064,6 +3066,8 @@ static void ixgbe_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) | |||
3064 | /* remove VID from filter table */ | 3066 | /* remove VID from filter table */ |
3065 | hw->mac.ops.set_vfta(&adapter->hw, vid, pool_ndx, false); | 3067 | hw->mac.ops.set_vfta(&adapter->hw, vid, pool_ndx, false); |
3066 | clear_bit(vid, adapter->active_vlans); | 3068 | clear_bit(vid, adapter->active_vlans); |
3069 | |||
3070 | return 0; | ||
3067 | } | 3071 | } |
3068 | 3072 | ||
3069 | /** | 3073 | /** |
diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c index 5d1a64398169..891162d1610c 100644 --- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | |||
@@ -1403,7 +1403,7 @@ static void ixgbevf_configure_rx(struct ixgbevf_adapter *adapter) | |||
1403 | } | 1403 | } |
1404 | } | 1404 | } |
1405 | 1405 | ||
1406 | static void ixgbevf_vlan_rx_add_vid(struct net_device *netdev, u16 vid) | 1406 | static int ixgbevf_vlan_rx_add_vid(struct net_device *netdev, u16 vid) |
1407 | { | 1407 | { |
1408 | struct ixgbevf_adapter *adapter = netdev_priv(netdev); | 1408 | struct ixgbevf_adapter *adapter = netdev_priv(netdev); |
1409 | struct ixgbe_hw *hw = &adapter->hw; | 1409 | struct ixgbe_hw *hw = &adapter->hw; |
@@ -1412,9 +1412,11 @@ static void ixgbevf_vlan_rx_add_vid(struct net_device *netdev, u16 vid) | |||
1412 | if (hw->mac.ops.set_vfta) | 1412 | if (hw->mac.ops.set_vfta) |
1413 | hw->mac.ops.set_vfta(hw, vid, 0, true); | 1413 | hw->mac.ops.set_vfta(hw, vid, 0, true); |
1414 | set_bit(vid, adapter->active_vlans); | 1414 | set_bit(vid, adapter->active_vlans); |
1415 | |||
1416 | return 0; | ||
1415 | } | 1417 | } |
1416 | 1418 | ||
1417 | static void ixgbevf_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) | 1419 | static int ixgbevf_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) |
1418 | { | 1420 | { |
1419 | struct ixgbevf_adapter *adapter = netdev_priv(netdev); | 1421 | struct ixgbevf_adapter *adapter = netdev_priv(netdev); |
1420 | struct ixgbe_hw *hw = &adapter->hw; | 1422 | struct ixgbe_hw *hw = &adapter->hw; |
@@ -1423,6 +1425,8 @@ static void ixgbevf_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) | |||
1423 | if (hw->mac.ops.set_vfta) | 1425 | if (hw->mac.ops.set_vfta) |
1424 | hw->mac.ops.set_vfta(hw, vid, 0, false); | 1426 | hw->mac.ops.set_vfta(hw, vid, 0, false); |
1425 | clear_bit(vid, adapter->active_vlans); | 1427 | clear_bit(vid, adapter->active_vlans); |
1428 | |||
1429 | return 0; | ||
1426 | } | 1430 | } |
1427 | 1431 | ||
1428 | static void ixgbevf_restore_vlan(struct ixgbevf_adapter *adapter) | 1432 | static void ixgbevf_restore_vlan(struct ixgbevf_adapter *adapter) |