ath9k: Postpone key cache entry deletion for TXQ frames reference it
authorJouni Malinen <jouni@codeaurora.org>
Mon, 14 Dec 2020 17:21:18 +0000 (19:21 +0200)
committerSasha Levin <sashal@kernel.org>
Thu, 26 Aug 2021 12:36:12 +0000 (08:36 -0400)
commit23f77ad13f8176314b7c51f71b9ac7c5c6d10b7b
treeb3bc9d4766aa22c26348bab7856d9e18b18da0b3
parentc6feaf806da6a0deecc2fe41adb3443cdecba347
ath9k: Postpone key cache entry deletion for TXQ frames reference it

commit ca2848022c12789685d3fab3227df02b863f9696 upstream.

Do not delete a key cache entry that is still being referenced by
pending frames in TXQs. This avoids reuse of the key cache entry while a
frame might still be transmitted using it.

To avoid having to do any additional operations during the main TX path
operations, track pending key cache entries in a new bitmap and check
whether any pending entries can be deleted before every new key
add/remove operation. Also clear any remaining entries when stopping the
interface.

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20201214172118.18100-6-jouni@codeaurora.org
Cc: Pali Rohár <pali@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/wireless/ath/ath9k/hw.h
drivers/net/wireless/ath/ath9k/main.c