OSDN Git Service

cxgb4 : Fill DCB priority in vlan control headers
authorAnish Bhatt <anish@chelsio.com>
Fri, 17 Jul 2015 20:12:33 +0000 (13:12 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 21 Jul 2015 07:23:23 +0000 (00:23 -0700)
Signed-off-by: Anish Bhatt <anish@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/chelsio/cxgb4/sge.c
drivers/net/ethernet/chelsio/cxgb4/t4_msg.h

index 942db07..d4248d7 100644 (file)
@@ -1137,7 +1137,7 @@ cxgb_fcoe_offload(struct sk_buff *skb, struct adapter *adap,
  */
 netdev_tx_t t4_eth_xmit(struct sk_buff *skb, struct net_device *dev)
 {
-       u32 wr_mid;
+       u32 wr_mid, ctrl0;
        u64 cntrl, *end;
        int qidx, credits;
        unsigned int flits, ndesc;
@@ -1274,9 +1274,15 @@ out_free:        dev_kfree_skb_any(skb);
 #endif /* CONFIG_CHELSIO_T4_FCOE */
        }
 
-       cpl->ctrl0 = htonl(TXPKT_OPCODE_V(CPL_TX_PKT_XT) |
-                          TXPKT_INTF_V(pi->tx_chan) |
-                          TXPKT_PF_V(adap->pf));
+       ctrl0 = TXPKT_OPCODE_V(CPL_TX_PKT_XT) | TXPKT_INTF_V(pi->tx_chan) |
+               TXPKT_PF_V(adap->pf);
+#ifdef CONFIG_CHELSIO_T4_DCB
+       if (is_t4(adap->params.chip))
+               ctrl0 |= TXPKT_OVLAN_IDX_V(q->dcb_prio);
+       else
+               ctrl0 |= TXPKT_T5_OVLAN_IDX_V(q->dcb_prio);
+#endif
+       cpl->ctrl0 = htonl(ctrl0);
        cpl->pack = htons(0);
        cpl->len = htons(skb->len);
        cpl->ctrl1 = cpu_to_be64(cntrl);
index 132cb8f..b99144a 100644 (file)
@@ -660,6 +660,9 @@ struct cpl_tx_pkt {
 #define TXPKT_OVLAN_IDX_S    12
 #define TXPKT_OVLAN_IDX_V(x) ((x) << TXPKT_OVLAN_IDX_S)
 
+#define TXPKT_T5_OVLAN_IDX_S   12
+#define TXPKT_T5_OVLAN_IDX_V(x)        ((x) << TXPKT_T5_OVLAN_IDX_S)
+
 #define TXPKT_INTF_S    16
 #define TXPKT_INTF_V(x) ((x) << TXPKT_INTF_S)