cxgb4: add stats for MQPRIO QoS offload Tx path
[linux-2.6-microblaze.git] / drivers / net / ethernet / chelsio / cxgb4 / cxgb4_ethtool.c
index f574574..20ab3b6 100644 (file)
@@ -242,9 +242,10 @@ static void collect_sge_port_stats(const struct adapter *adap,
                                   const struct port_info *p,
                                   struct queue_port_stats *s)
 {
-       int i;
        const struct sge_eth_txq *tx = &adap->sge.ethtxq[p->first_qset];
        const struct sge_eth_rxq *rx = &adap->sge.ethrxq[p->first_qset];
+       struct sge_eohw_txq *eohw_tx;
+       unsigned int i;
 
        memset(s, 0, sizeof(*s));
        for (i = 0; i < p->nqsets; i++, rx++, tx++) {
@@ -257,6 +258,16 @@ static void collect_sge_port_stats(const struct adapter *adap,
                s->gro_pkts += rx->stats.lro_pkts;
                s->gro_merged += rx->stats.lro_merged;
        }
+
+       if (adap->sge.eohw_txq) {
+               eohw_tx = &adap->sge.eohw_txq[p->first_qset];
+               for (i = 0; i < p->nqsets; i++, eohw_tx++) {
+                       s->tso += eohw_tx->tso;
+                       s->uso += eohw_tx->uso;
+                       s->tx_csum += eohw_tx->tx_cso;
+                       s->vlan_ins += eohw_tx->vlan_ins;
+               }
+       }
 }
 
 static void collect_adapter_stats(struct adapter *adap, struct adapter_stats *s)