aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/ixgbevf
diff options
context:
space:
mode:
authorGreg Rose <gregory.v.rose@intel.com>2011-08-26 22:06:25 -0400
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2011-09-29 02:07:38 -0400
commitdd1ed3b7bfed15f6162f63840941e9cf4f3611a1 (patch)
tree007c67540930d666ccf77c2b9da7b294fe3a30fb /drivers/net/ethernet/intel/ixgbevf
parentd5bc77a223b0e9b9dfb002048d2b34a79e7d0b48 (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/ethernet/intel/ixgbevf')
-rw-r--r--drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c6
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);