Patch "mac80211: Fix mesh estab_plinks counting in STA removal case" has been added to the 4.6-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
mac80211: Fix mesh estab_plinks counting in STA removal case
to the 4.6-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-fix-mesh-estab_plinks-counting-in-sta-removal-case.patch
and it can be found in the queue-4.6 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
126e7557328a1cd576be4fca95b133a2695283ffMon Sep 17 00:00:00 2001
From: Jouni Malinen <[email protected]>
Date: Sun, 19 Jun 2016 23:51:02 +0300
Subject: mac80211: Fix mesh estab_plinks counting in STA removal case
From: Jouni Malinen <[email protected]>
commit 126e7557328a1cd576be4fca95b133a2695283ff upstream.
If a user space program (e.g., wpa_supplicant) deletes a STA entry that is currently in NL80211_PLINK_ESTAB state, the number of established plinks counter was not decremented and this could result in rejecting new plink establishment before really hitting the real maximum plink limit. For !user_mpm case, this decrementation is handled by mesh_plink_deactive().
Fix this by decrementing estab_plinks on STA deletion (mesh_sta_cleanup() gets called from there) so that the counter has a correct value and the Beacon frame advertisement in Mesh Configuration element shows the proper value for capability to accept additional peers.
--- net/mac80211/mesh.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
net/mac80211/mesh.c +5 -2
@@ -150,14 +150,17 @@ u32 mesh_accept_plinks_update(struct ieevoid mesh_sta_cleanup (struct sta_info *sta) {struct ieee80211_sub_if_data *sdata = sta->sdata; -u32 changed; +u32 changed =0 ;/* * maybe userspace handles peer allocation and peering, but in either * case the beacon is still generated by the kernel and we might need * an update. */ - changed =mesh_accept_plinks_update (sdata); +if (sdata->u.mesh.user_mpm && + sta->mesh->plink_state ==NL80211_PLINK_ESTAB ) + changed |=mesh_plink_dec_estab_count (sdata); + changed |=mesh_accept_plinks_update (sdata);if (!sdata->u.mesh.user_mpm) { changed |=mesh_plink_deactivate (sta);del_timer_sync (&sta->mesh->plink_timer);
Patches currently in stable-queue which might be from [email protected] are
queue-4.6/mac80211-fix-mesh-estab_plinks-counting-in-sta-removal-case.patch