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:35:33 +0000 (08:35 -0400)
commite2036bc3fc7daa03c15fda27e1818192da817cea
treec782950fa51bc585b9776cdfb8e02cdd36a583ab
parent609c0cfd07f0ae6c444e064a59b46c5f3090b705
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