diff options
author | Bob Copeland <me@bobcopeland.com> | 2015-04-13 17:26:28 -0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2015-04-20 13:05:29 +0200 |
commit | 48bf6beddf455b0cb605915081f3428960a6224e (patch) | |
tree | 98e652b5c3970a61d6dee510fca33c874370cdcf /net/mac80211/sta_info.c | |
parent | 388f997620cb57372c494a194e9698b28cc179b8 (diff) | |
download | op-kernel-dev-48bf6beddf455b0cb605915081f3428960a6224e.zip op-kernel-dev-48bf6beddf455b0cb605915081f3428960a6224e.tar.gz |
mac80211: introduce plink lock for plink fields
The mesh plink code uses sta->lock to serialize access to the
plink state fields between the peer link state machine and the
peer link timer. Some paths (e.g. those involving
mps_qos_null_tx()) unfortunately hold this spinlock across
frame tx, which is soon to be disallowed. Add a new spinlock
just for plink access.
Signed-off-by: Bob Copeland <me@bobcopeland.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/sta_info.c')
-rw-r--r-- | net/mac80211/sta_info.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c index 12971b7..53ab4bd 100644 --- a/net/mac80211/sta_info.c +++ b/net/mac80211/sta_info.c @@ -295,6 +295,7 @@ struct sta_info *sta_info_alloc(struct ieee80211_sub_if_data *sdata, INIT_WORK(&sta->ampdu_mlme.work, ieee80211_ba_session_work); mutex_init(&sta->ampdu_mlme.mtx); #ifdef CONFIG_MAC80211_MESH + spin_lock_init(&sta->plink_lock); if (ieee80211_vif_is_mesh(&sdata->vif) && !sdata->u.mesh.user_mpm) init_timer(&sta->plink_timer); |