mac80211: Update last_tx_rate only for data frames
The last_tx_rate field was also updated for non-data frames that are often sent with a lower rate (for example management frames at 1 Mbps). This is confusing when the data rate is actually much higher. Hence, only update the last_tx_rate field with tx rate information gathered from last data frames. If the rate control algorithm filled in txrc.reported_rate we don't need to verify this information. Cc: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Родитель
5f79ed3b1a
Коммит
c1ce5a74d1
|
@ -666,10 +666,11 @@ ieee80211_tx_h_rate_ctrl(struct ieee80211_tx_data *tx)
|
|||
if (unlikely(info->control.rates[0].idx < 0))
|
||||
return TX_DROP;
|
||||
|
||||
if (txrc.reported_rate.idx < 0)
|
||||
if (txrc.reported_rate.idx < 0) {
|
||||
txrc.reported_rate = info->control.rates[0];
|
||||
|
||||
if (tx->sta)
|
||||
if (tx->sta && ieee80211_is_data(hdr->frame_control))
|
||||
tx->sta->last_tx_rate = txrc.reported_rate;
|
||||
} else if (tx->sta)
|
||||
tx->sta->last_tx_rate = txrc.reported_rate;
|
||||
|
||||
if (unlikely(!info->control.rates[0].count))
|
||||
|
|
Загрузка…
Ссылка в новой задаче