Patch "mac80211: Remove invalid flag operations in mesh TSF synchronization" has been added to the 3.18-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
mac80211: Remove invalid flag operations in mesh TSF synchronization
to the 3.18-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-remove-invalid-flag-operations-in-mesh-tsf-synchronization.patch
and it can be found in the queue-3.18 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 foo@baz Tue Nov 28 10:58:31 CET 2017
From: Masashi Honma <[email protected]>
Date: Thu, 8 Dec 2016 10:15:50 +0900
Subject: mac80211: Remove invalid flag operations in mesh TSF synchronization
From: Masashi Honma <[email protected]>
[ Upstream commit 76f43b4c0a9337af22827d78de4f2b8fd5328489 ]
mesh_sync_offset_adjust_tbtt() implements Extensible synchronization framework ([1] 13.13.2 Extensible synchronization framework). It shall not operate the flag "TBTT Adjusting subfield" ([1] 8.4.2.100.8 Mesh Capability), since it is used only for MBCA ([1] 13.13.4 Mesh beacon collision avoidance, see 13.13.4.4.3 TBTT scanning and adjustment procedures for detail). So this patch remove the flag operations.
[1] IEEE Std 802.11 2012
--- net/mac80211/ieee80211_i.h | 1 - net/mac80211/mesh.c | 3 --- net/mac80211/mesh_sync.c | 11 ----------- 3 files changed, 15 deletions(-)
net/mac80211/ieee80211_i.h +0 -1
@@ -640,7 +640,6 @@ struct ieee80211_if_mesh {const struct ieee80211_mesh_sync_ops *sync_ops;s64 sync_offset_clockdrift_max;spinlock_t sync_offset_lock; -bool adjusting_tbtt;/* mesh power save */ enum nl80211_mesh_power_mode nonpeer_pm;int ps_peers_light_sleep;
net/mac80211/mesh.c +0 -3
@@ -289,8 +289,6 @@ int mesh_add_meshconf_ie(struct ieee8021/* Mesh PS mode. See IEEE802.11-2012 8.4.2.100.8 */ *pos |= ifmsh->ps_peers_deep_sleep ?IEEE80211_MESHCONF_CAPAB_POWER_SAVE_LEVEL :0x00 ; - *pos++ |= ifmsh->adjusting_tbtt ? -IEEE80211_MESHCONF_CAPAB_TBTT_ADJUSTING :0x00 ; *pos++ =0x00 ;return 0 ;
@@ -790,7 +788,6 @@ int ieee80211_start_mesh(struct ieee8021 ifmsh->mesh_cc_id =0 ;/* Disabled */ /* register sync ops from extensible synchronization framework */ ifmsh->sync_ops =ieee80211_mesh_sync_ops_get (ifmsh->mesh_sp_id); - ifmsh->adjusting_tbtt = false; ifmsh->sync_offset_clockdrift_max =0 ;set_bit (MESH_WORK_HOUSEKEEPING , &ifmsh->wrkq_flags);ieee80211_mesh_root_setup (ifmsh);
net/mac80211/mesh_sync.c +0 -11
@@ -119,7 +119,6 @@ static void mesh_sync_offset_rx_bcn_pres*/ if (elems->mesh_config &&mesh_peer_tbtt_adjusting (elems)) { -clear_sta_flag (sta,WLAN_STA_TOFFSET_KNOWN );msync_dbg (sdata,"STA %pM : is adjusting TBTT\n" , sta->sta.addr); goto no_sync;
@@ -168,11 +167,9 @@ static void mesh_sync_offset_adjust_tbtt struct beacon_data *beacon) {struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; -u8 cap;WARN_ON (ifmsh->mesh_sp_id !=IEEE80211_SYNC_METHOD_NEIGHBOR_OFFSET );WARN_ON (!rcu_read_lock_held ()); - cap = beacon->meshconf->meshconf_cap;spin_lock_bh (&ifmsh->sync_offset_lock);
@@ -186,21 +183,13 @@ static void mesh_sync_offset_adjust_tbtt"TBTT : kicking off TBTT adjustment with clockdrift_max=%lld\n" , ifmsh->sync_offset_clockdrift_max);set_bit (MESH_WORK_DRIFT_ADJUST , &ifmsh->wrkq_flags); - - ifmsh->adjusting_tbtt = true; }else {msync_dbg (sdata,"TBTT : max clockdrift=%lld; too small to adjust\n" , (long long )ifmsh->sync_offset_clockdrift_max); ifmsh->sync_offset_clockdrift_max =0 ; - - ifmsh->adjusting_tbtt = false; }spin_unlock_bh (&ifmsh->sync_offset_lock); - - beacon->meshconf->meshconf_cap = ifmsh->adjusting_tbtt ? -IEEE80211_MESHCONF_CAPAB_TBTT_ADJUSTING | cap : - ~IEEE80211_MESHCONF_CAPAB_TBTT_ADJUSTING & cap; }static const struct sync_method sync_methods[] = {
Patches currently in stable-queue which might be from [email protected] are
queue-3.18/mac80211-suppress-new_peer_candidate-event-if-no-room.patch queue-3.18/mac80211-remove-invalid-flag-operations-in-mesh-tsf-synchronization.patch