Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7107676a authored by Felix Fietkau's avatar Felix Fietkau Committed by John W. Linville
Browse files

mac80211: fix endian issues and comments for BAR failure handling



Signed-off-by: default avatarFelix Fietkau <nbd@openwrt.org>
Cc: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 4245d313
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -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;