]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
ixgbevf: Fix broken trunk vlan
authorGreg Rose <gregory.v.rose@intel.com>
Sat, 27 Aug 2011 02:06:25 +0000 (02:06 +0000)
committerJoe Jin <joe.jin@oracle.com>
Thu, 17 May 2012 15:55:02 +0000 (23:55 +0800)
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>"

(cherry picked from commit dd1ed3b7bfed15f6162f63840941e9cf4f3611a1)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
drivers/net/ixgbevf/ixgbevf_main.c

index c70f068d3203a2c9b9f250df44d3ba262314fd50..e58f424ca31bd2b4080dad2867536ecc0d98eead 100644 (file)
@@ -297,12 +297,10 @@ static void ixgbevf_receive_skb(struct ixgbevf_q_vector *q_vector,
 {
        struct ixgbevf_adapter *adapter = q_vector->adapter;
        bool is_vlan = (status & IXGBE_RXD_STAT_VP);
+       u16 tag = le16_to_cpu(rx_desc->wb.upper.vlan);
 
-       if (is_vlan) {
-               u16 tag = le16_to_cpu(rx_desc->wb.upper.vlan);
-
+       if (is_vlan && test_bit(tag, adapter->active_vlans))
                __vlan_hwaccel_put_tag(skb, tag);
-       }
 
        if (!(adapter->flags & IXGBE_FLAG_IN_NETPOLL))
                        napi_gro_receive(&q_vector->napi, skb);