From: Pascal Bouchareine Date: Thu, 14 Jun 2012 02:18:18 +0000 (+0000) Subject: ixgbevf: fix VF untagging when 802.1 prio is set X-Git-Tag: MMI-PSA29.97-13-9~16302^2~96 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=5d9a533bacff6fbaf711c92575f5f646c2c772f1;p=GitHub%2FMotorolaMobilityLLC%2Fkernel-slsi.git ixgbevf: fix VF untagging when 802.1 prio is set We have had an issue when using ixgbe+ixgbevf and 802.1 VLAN tagging. When attaching a VLAN to a VF, frames with a 802.1q priority appeared untagged on the VF hence not reaching the VLAN, where frames with priority 0 where tagged as expected and seen by the VLAN device. This seems due to the way ixgbevf is looking up the full tag (prio+cfi+vlan) against the adapter active_vlans, as a condition to mark the skb tagged. Signed-off-by: Pascal Bouchareine Tested-by: Sibai Li Signed-off-by: Jeff Kirsher --- diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c index c98cdf7de49d..b88218c7f60f 100644 --- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c @@ -279,7 +279,7 @@ static void ixgbevf_receive_skb(struct ixgbevf_q_vector *q_vector, bool is_vlan = (status & IXGBE_RXD_STAT_VP); u16 tag = le16_to_cpu(rx_desc->wb.upper.vlan); - if (is_vlan && test_bit(tag, adapter->active_vlans)) + if (is_vlan && test_bit(tag & VLAN_VID_MASK, adapter->active_vlans)) __vlan_hwaccel_put_tag(skb, tag); napi_gro_receive(&q_vector->napi, skb);