From: Johannes Berg <[email protected]>

If an SKB will be segmented by the driver, count it for multiple
MSDUs that are being transmitted rather than just a single.

Signed-off-by: Johannes Berg <[email protected]>
---
 net/mac80211/tx.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 9489b5da5a46..53d462c84977 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -2810,7 +2810,11 @@ static bool ieee80211_xmit_fast(struct 
ieee80211_sub_if_data *sdata,
        u64_stats_update_begin(&sta->tx_sync);
        sta->tx_bytes[skb_get_queue_mapping(skb)] += skb->len;
        sta->tx_packets[skb_get_queue_mapping(skb)]++;
-       sta->tx_msdu[tid]++;
+       if (skb_shinfo(skb)->gso_size)
+               sta->tx_msdu[tid] +=
+                       DIV_ROUND_UP(skb->len, skb_shinfo(skb)->gso_size);
+       else
+               sta->tx_msdu[tid]++;
        u64_stats_update_end(&sta->tx_sync);
 
        if (fast_tx->pn_offs) {
-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to