aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ixgbe/ixgbe_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ixgbe/ixgbe_main.c')
-rw-r--r--drivers/net/ixgbe/ixgbe_main.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index 7d6a415bcf88..e32af434cc9d 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -748,6 +748,7 @@ static bool ixgbe_clean_tx_irq(struct ixgbe_q_vector *q_vector,
748 while ((eop_desc->wb.status & cpu_to_le32(IXGBE_TXD_STAT_DD)) && 748 while ((eop_desc->wb.status & cpu_to_le32(IXGBE_TXD_STAT_DD)) &&
749 (count < tx_ring->work_limit)) { 749 (count < tx_ring->work_limit)) {
750 bool cleaned = false; 750 bool cleaned = false;
751 rmb(); /* read buffer_info after eop_desc */
751 for ( ; !cleaned; count++) { 752 for ( ; !cleaned; count++) {
752 struct sk_buff *skb; 753 struct sk_buff *skb;
753 tx_desc = IXGBE_TX_DESC_ADV(*tx_ring, i); 754 tx_desc = IXGBE_TX_DESC_ADV(*tx_ring, i);
@@ -6155,9 +6156,11 @@ static u16 ixgbe_select_queue(struct net_device *dev, struct sk_buff *skb)
6155 txq &= (adapter->ring_feature[RING_F_FCOE].indices - 1); 6156 txq &= (adapter->ring_feature[RING_F_FCOE].indices - 1);
6156 txq += adapter->ring_feature[RING_F_FCOE].mask; 6157 txq += adapter->ring_feature[RING_F_FCOE].mask;
6157 return txq; 6158 return txq;
6159#ifdef CONFIG_IXGBE_DCB
6158 } else if (adapter->flags & IXGBE_FLAG_DCB_ENABLED) { 6160 } else if (adapter->flags & IXGBE_FLAG_DCB_ENABLED) {
6159 txq = adapter->fcoe.up; 6161 txq = adapter->fcoe.up;
6160 return txq; 6162 return txq;
6163#endif
6161 } 6164 }
6162 } 6165 }
6163#endif 6166#endif
@@ -6216,10 +6219,14 @@ static netdev_tx_t ixgbe_xmit_frame(struct sk_buff *skb,
6216 if (adapter->flags & IXGBE_FLAG_FCOE_ENABLED && 6219 if (adapter->flags & IXGBE_FLAG_FCOE_ENABLED &&
6217 (skb->protocol == htons(ETH_P_FCOE) || 6220 (skb->protocol == htons(ETH_P_FCOE) ||
6218 skb->protocol == htons(ETH_P_FIP))) { 6221 skb->protocol == htons(ETH_P_FIP))) {
6219 tx_flags &= ~(IXGBE_TX_FLAGS_VLAN_PRIO_MASK 6222#ifdef CONFIG_IXGBE_DCB
6220 << IXGBE_TX_FLAGS_VLAN_SHIFT); 6223 if (adapter->flags & IXGBE_FLAG_DCB_ENABLED) {
6221 tx_flags |= ((adapter->fcoe.up << 13) 6224 tx_flags &= ~(IXGBE_TX_FLAGS_VLAN_PRIO_MASK
6222 << IXGBE_TX_FLAGS_VLAN_SHIFT); 6225 << IXGBE_TX_FLAGS_VLAN_SHIFT);
6226 tx_flags |= ((adapter->fcoe.up << 13)
6227 << IXGBE_TX_FLAGS_VLAN_SHIFT);
6228 }
6229#endif
6223 /* flag for FCoE offloads */ 6230 /* flag for FCoE offloads */
6224 if (skb->protocol == htons(ETH_P_FCOE)) 6231 if (skb->protocol == htons(ETH_P_FCOE))
6225 tx_flags |= IXGBE_TX_FLAGS_FCOE; 6232 tx_flags |= IXGBE_TX_FLAGS_FCOE;