ixgbe: Always tag VLAN tagged packets
authorAlexander Duyck <alexander.h.duyck@intel.com>
Wed, 20 Jul 2011 00:09:10 +0000 (00:09 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Mon, 29 Aug 2011 08:05:38 +0000 (01:05 -0700)
This change is meant to fix the patch:
ixgbe: Cleanup FCOE and VLAN handling in xmit_frame_ring
And can be rolled into it if needed.

What this fixes is that VLAN tagged packets were not being tagged if they
were prio 7 which matches up with TC_PRIO_CONTROL.  In order to fix it I am
just setting things up so that we always tag VLAN tagged packets.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c

index d587967a65473645cf61d3a77e4dfaa4d6562325..f095a3b479d794b18c342454d523dbedea353a29 100644 (file)
@@ -6762,7 +6762,8 @@ netdev_tx_t ixgbe_xmit_frame_ring(struct sk_buff *skb,
        }
 
        if ((adapter->flags & IXGBE_FLAG_DCB_ENABLED) &&
-           skb->priority != TC_PRIO_CONTROL) {
+           ((tx_flags & (IXGBE_TX_FLAGS_HW_VLAN | IXGBE_TX_FLAGS_SW_VLAN)) ||
+            (skb->priority != TC_PRIO_CONTROL))) {
                tx_flags &= ~IXGBE_TX_FLAGS_VLAN_PRIO_MASK;
                tx_flags |= tx_ring->dcb_tc <<
                            IXGBE_TX_FLAGS_VLAN_PRIO_SHIFT;