wifi: mac80211: Fix ack frame idr leak when mesh has no route
authorNicolas Cavallari <nicolas.cavallari@green-communications.fr>
Thu, 27 Oct 2022 14:01:33 +0000 (16:01 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 2 Dec 2022 16:41:01 +0000 (17:41 +0100)
commit9cc96a20a92aa4241f5323d81709328a34f3f2c0
tree4e14a1a43746de865326408cae0beb1d93a88540
parent86f90014e767806c81fcb3eaf451ae2865601988
wifi: mac80211: Fix ack frame idr leak when mesh has no route

[ Upstream commit 39e7b5de9853bd92ddbfa4b14165babacd7da0ba ]

When trying to transmit an data frame with tx_status to a destination
that have no route in the mesh, then it is dropped without recrediting
the ack_status_frames idr.

Once it is exhausted, wpa_supplicant starts failing to do SAE with
NL80211_CMD_FRAME and logs "nl80211: Frame command failed".

Use ieee80211_free_txskb() instead of kfree_skb() to fix it.

Signed-off-by: Nicolas Cavallari <nicolas.cavallari@green-communications.fr>
Link: https://lore.kernel.org/r/20221027140133.1504-1-nicolas.cavallari@green-communications.fr
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/mac80211/mesh_pathtbl.c