]> www.infradead.org Git - users/jedix/linux-maple.git/commit
mac80211: Fix Tx aggregation session tear down with ITXQs
authorIlan Peer <ilan.peer@intel.com>
Wed, 6 Feb 2019 11:17:21 +0000 (13:17 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 23 Mar 2019 13:35:12 +0000 (14:35 +0100)
commit5706520b0cd66cd618f0c6e7da8e6aec610d667c
tree38a0d2ae860549423488ac723c16a4b6d72971a8
parentb735f5718e618f6db98564e482e2224125562ab5
mac80211: Fix Tx aggregation session tear down with ITXQs

[ Upstream commit 6157ca0d6bfe437691b1e98a62e2efe12b6714da ]

When mac80211 requests the low level driver to stop an ongoing
Tx aggregation, the low level driver is expected to call
ieee80211_stop_tx_ba_cb_irqsafe() to indicate that it is ready
to stop the session. The callback in turn schedules a worker
to complete the session tear down, which in turn also handles
the relevant state for the intermediate Tx queue.

However, as this flow in asynchronous, the intermediate queue
should be stopped and not continue servicing frames, as in
such a case frames that are dequeued would be marked as part
of an aggregation, although the aggregation is already been
stopped.

Fix this by stopping the intermediate Tx queue, before
calling the low level driver to stop the Tx aggregation.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/mac80211/agg-tx.c