Patch "wifi: mac80211: Fix ack frame idr leak when mesh has no route" has been added to the 4.14-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    wifi: mac80211: Fix ack frame idr leak when mesh has no route

to the 4.14-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     wifi-mac80211-fix-ack-frame-idr-leak-when-mesh-has-n.patch
and it can be found in the queue-4.14 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 3d48be7a77916c4553cf72a38cb77568b11a8cce
Author: Nicolas Cavallari <nicolas.cavallari@xxxxxxxxxxxxxxxxxxxxxxx>
Date:   Thu Oct 27 16:01:33 2022 +0200

    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@xxxxxxxxxxxxxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20221027140133.1504-1-nicolas.cavallari@xxxxxxxxxxxxxxxxxxxxxxx
    Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/net/mac80211/mesh_pathtbl.c b/net/mac80211/mesh_pathtbl.c
index 54d44836dd28..e4c62b0a3fdb 100644
--- a/net/mac80211/mesh_pathtbl.c
+++ b/net/mac80211/mesh_pathtbl.c
@@ -793,7 +793,7 @@ int mesh_path_send_to_gates(struct mesh_path *mpath)
 void mesh_path_discard_frame(struct ieee80211_sub_if_data *sdata,
 			     struct sk_buff *skb)
 {
-	kfree_skb(skb);
+	ieee80211_free_txskb(&sdata->local->hw, skb);
 	sdata->u.mesh.mshstats.dropped_frames_no_route++;
 }
 



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux