diff options
author | Greg Rose <gregory.v.rose@intel.com> | 2011-08-26 22:06:25 -0400 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2011-09-29 02:07:38 -0400 |
commit | dd1ed3b7bfed15f6162f63840941e9cf4f3611a1 (patch) | |
tree | 007c67540930d666ccf77c2b9da7b294fe3a30fb /drivers/net | |
parent | d5bc77a223b0e9b9dfb002048d2b34a79e7d0b48 (diff) |
ixgbevf: Fix broken trunk vlan
Changes to clean up the vlan rx path broke trunk vlan. Trunk vlans in
a VF driver are those set using:
"ip link set <pfdev> vf <n> <vlanid>"
Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
CC: Jiri Pirko <jpirko@redhat.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c index d72905b77aba..4930c4605493 100644 --- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | |||
@@ -293,12 +293,10 @@ static void ixgbevf_receive_skb(struct ixgbevf_q_vector *q_vector, | |||
293 | { | 293 | { |
294 | struct ixgbevf_adapter *adapter = q_vector->adapter; | 294 | struct ixgbevf_adapter *adapter = q_vector->adapter; |
295 | bool is_vlan = (status & IXGBE_RXD_STAT_VP); | 295 | bool is_vlan = (status & IXGBE_RXD_STAT_VP); |
296 | u16 tag = le16_to_cpu(rx_desc->wb.upper.vlan); | ||
296 | 297 | ||
297 | if (is_vlan) { | 298 | if (is_vlan && test_bit(tag, adapter->active_vlans)) |
298 | u16 tag = le16_to_cpu(rx_desc->wb.upper.vlan); | ||
299 | |||
300 | __vlan_hwaccel_put_tag(skb, tag); | 299 | __vlan_hwaccel_put_tag(skb, tag); |
301 | } | ||
302 | 300 | ||
303 | if (!(adapter->flags & IXGBE_FLAG_IN_NETPOLL)) | 301 | if (!(adapter->flags & IXGBE_FLAG_IN_NETPOLL)) |
304 | napi_gro_receive(&q_vector->napi, skb); | 302 | napi_gro_receive(&q_vector->napi, skb); |