Patch "mac80211: properly deal with station hashtable insert errors" has been added to the 4.4-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
mac80211: properly deal with station hashtable insert errors
to the 4.4-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:
mac80211-properly-deal-with-station-hashtable-insert-errors.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
62b14b241ca6f790a17ccd9dd9f62ce1b006d406Mon Sep 17 00:00:00 2001
From: Johannes Berg <[email protected]>
Date: Thu, 31 Mar 2016 17:22:45 +0200
Subject: mac80211: properly deal with station hashtable insert errors
From: Johannes Berg <[email protected]>
commit 62b14b241ca6f790a17ccd9dd9f62ce1b006d406 upstream.
The original hand-implemented hash-table in mac80211 couldn't result in insertion errors, and while converting to rhashtable I evidently forgot to check the errors.
This surfaced now only because Ben is adding many identical keys and that resulted in hidden insertion errors.
--- net/mac80211/sta_info.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-)
net/mac80211/sta_info.c +8 -5
@@ -256,11 +256,11 @@ void sta_info_free(struct ieee80211_loca }/* Caller must hold local->sta_mtx */ -static void sta_info_hash_add (struct ieee80211_local *local, -struct sta_info *sta) +static int sta_info_hash_add (struct ieee80211_local *local, +struct sta_info *sta) { -rhashtable_insert_fast (&local->sta_hash, &sta->hash_node, - sta_rht_params); +return rhashtable_insert_fast (&local->sta_hash, &sta->hash_node, + sta_rht_params); }static void sta_deliver_ps_frames (struct work_struct *wk)
@@ -503,7 +503,9 @@ static int sta_info_insert_finish(structset_sta_flag (sta,WLAN_STA_BLOCK_BA );/* make the station visible */ -sta_info_hash_add (local, sta); + err =sta_info_hash_add (local, sta); +if (err) + goto out_drop_sta;list_add_tail_rcu (&sta->list, &local->sta_list);
@@ -538,6 +540,7 @@ static int sta_info_insert_finish(struct out_remove:sta_info_hash_del (local, sta);list_del_rcu (&sta->list); + out_drop_sta: local->num_sta--;synchronize_net ();__cleanup_single_sta (sta);
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/mac80211-fix-unnecessary-frame-drops-in-mesh-fwding.patch queue-4.4/mac80211-avoid-excessive-stack-usage-in-sta_info.patch queue-4.4/mac80211-fix-ibss-scan-parameters.patch queue-4.4/mac80211-properly-deal-with-station-hashtable-insert-errors.patch queue-4.4/mac80211-fix-txq-queue-related-crashes.patch