diff options
author | Felix Fietkau <nbd@nbd.name> | 2021-01-27 06:57:31 +0100 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2021-02-12 08:56:43 +0100 |
commit | 2012a2f7bcd2aa515430a75f1227471ab4ebd7df (patch) | |
tree | d3a131b6d5d76b05b9243842b0b1196132aa62ce | |
parent | a42fa256f66c425021038f40d9255d377a2d1a8d (diff) | |
download | linux-2012a2f7bcd2aa515430a75f1227471ab4ebd7df.tar.gz linux-2012a2f7bcd2aa515430a75f1227471ab4ebd7df.tar.bz2 linux-2012a2f7bcd2aa515430a75f1227471ab4ebd7df.zip |
mac80211: minstrel_ht: update total packets counter in tx status path
Keep the update in one place and prepare for further rework
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Link: https://lore.kernel.org/r/20210127055735.78599-2-nbd@nbd.name
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r-- | net/mac80211/rc80211_minstrel_ht.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/net/mac80211/rc80211_minstrel_ht.c b/net/mac80211/rc80211_minstrel_ht.c index 8974c3510489..7846782840a9 100644 --- a/net/mac80211/rc80211_minstrel_ht.c +++ b/net/mac80211/rc80211_minstrel_ht.c @@ -1092,6 +1092,16 @@ minstrel_ht_tx_status(void *priv, struct ieee80211_supported_band *sband, info->status.ampdu_len = 1; } + /* wraparound */ + if (mi->total_packets >= ~0 - info->status.ampdu_len) { + mi->total_packets = 0; + mi->sample_packets = 0; + } + + mi->total_packets += info->status.ampdu_len; + if (info->flags & IEEE80211_TX_CTL_RATE_CTRL_PROBE) + mi->sample_packets += info->status.ampdu_len; + mi->ampdu_packets++; mi->ampdu_len += info->status.ampdu_len; @@ -1103,9 +1113,6 @@ minstrel_ht_tx_status(void *priv, struct ieee80211_supported_band *sband, mi->sample_count--; } - if (info->flags & IEEE80211_TX_CTL_RATE_CTRL_PROBE) - mi->sample_packets += info->status.ampdu_len; - if (mi->sample_mode != MINSTREL_SAMPLE_IDLE) rate_sample = minstrel_get_ratestats(mi, mi->sample_rate); @@ -1503,14 +1510,6 @@ minstrel_ht_get_rate(void *priv, struct ieee80211_sta *sta, void *priv_sta, else sample_idx = minstrel_get_sample_rate(mp, mi); - mi->total_packets++; - - /* wraparound */ - if (mi->total_packets == ~0) { - mi->total_packets = 0; - mi->sample_packets = 0; - } - if (sample_idx < 0) return; |