From: Johannes Berg Date: Tue, 23 Jun 2015 09:50:52 +0000 (+0200) Subject: mac80211: account TX MSDUs properly with segmentation offload X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=ccc6bb96ff058ad737fb8236e15aeaa56e822296;p=linux-beck.git mac80211: account TX MSDUs properly with segmentation offload 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 --- diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index c0d6af809640..d14f3618069f 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c @@ -2771,7 +2771,11 @@ static bool ieee80211_xmit_fast(struct ieee80211_sub_if_data *sdata, sdata->sequence_number += 0x10; } - 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]++; info->hw_queue = sdata->vif.hw_queue[skb_get_queue_mapping(skb)];