mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-18 17:54:13 +08:00
mac80211: fix endian issues and comments for BAR failure handling
Signed-off-by: Felix Fietkau <nbd@openwrt.org> Cc: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
4245d31347
commit
7107676a3a
@ -278,17 +278,19 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb)
|
||||
}
|
||||
|
||||
if (!acked && ieee80211_is_back_req(fc)) {
|
||||
u16 control;
|
||||
|
||||
/*
|
||||
* BAR failed, let's tear down the BA session as a
|
||||
* last resort as some STAs (Intel 5100 on Windows)
|
||||
* can get stuck when the BA window isn't flushed
|
||||
* correctly.
|
||||
* BAR failed, store the last SSN and retry sending
|
||||
* the BAR when the next unicast transmission on the
|
||||
* same TID succeeds.
|
||||
*/
|
||||
bar = (struct ieee80211_bar *) skb->data;
|
||||
if (!(bar->control & IEEE80211_BAR_CTRL_MULTI_TID)) {
|
||||
control = le16_to_cpu(bar->control);
|
||||
if (!(control & IEEE80211_BAR_CTRL_MULTI_TID)) {
|
||||
u16 ssn = le16_to_cpu(bar->start_seq_num);
|
||||
|
||||
tid = (bar->control &
|
||||
tid = (control &
|
||||
IEEE80211_BAR_CTRL_TID_INFO_MASK) >>
|
||||
IEEE80211_BAR_CTRL_TID_INFO_SHIFT;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user