mirror of https://gitee.com/openkylin/linux.git
mac80211: fix an issue in ieee80211_tx_info count field management
I noticed a possible issue in the status count field management of the ieee80211_tx_info data structure. In particular, when the AGGR processing is employed, status.rates[].count is set just for the first frame and not for others belonging to the same burst, leading to wrong statistic data in the mac80211 debug file system. Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi83@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
d91df0e3a1
commit
d01b31604c
|
@ -355,7 +355,13 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb)
|
|||
int rtap_len;
|
||||
|
||||
for (i = 0; i < IEEE80211_TX_MAX_RATES; i++) {
|
||||
if (info->status.rates[i].idx < 0) {
|
||||
if ((info->flags & IEEE80211_TX_CTL_AMPDU) &&
|
||||
!(info->flags & IEEE80211_TX_STAT_AMPDU)) {
|
||||
/* just the first aggr frame carry status info */
|
||||
info->status.rates[i].idx = -1;
|
||||
info->status.rates[i].count = 0;
|
||||
break;
|
||||
} else if (info->status.rates[i].idx < 0) {
|
||||
break;
|
||||
} else if (i >= hw->max_report_rates) {
|
||||
/* the HW cannot have attempted that rate */
|
||||
|
|
Loading…
Reference in New Issue