diff options
author | Thomas Pedersen <thomas@cozybit.com> | 2013-12-15 22:14:16 +0100 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-12-16 14:21:22 +0100 |
commit | 43552be1da3c420931c89727b6115b7fa35368f8 (patch) | |
tree | 5dafd30e0d92be9bbf526cf5caec1f78558fe249 /net/mac80211/tx.c | |
parent | mac80211: reschedule sched scan after HW restart (diff) | |
download | linux-43552be1da3c420931c89727b6115b7fa35368f8.tar.xz linux-43552be1da3c420931c89727b6115b7fa35368f8.zip |
mac80211: update adjusting TBTT bit in beacon
This regression was introduced in "mac80211: cache mesh
beacon".
mesh_sync_offset_adjust_tbtt() was assuming that the
beacon would be rebuilt in every single pre-tbtt
interrupt, but now the beacon update happens on the
workqueue, and it must be ready for immediate delivery to
the driver.
Save a pointer to the meshconf IE in the beacon_data (this
works because both the IE pointer and beacon buffer are
protected by the same rcu_{dereference,assign_pointer}())
for quick updates during pre-tbtt. This is faster and a
little prettier than iterating over the elements to find
the meshconf IE every time.
Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/tx.c')
-rw-r--r-- | net/mac80211/tx.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 002ded2c01f6..2f0e176e7989 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c @@ -2604,8 +2604,7 @@ struct sk_buff *ieee80211_beacon_get_tim(struct ieee80211_hw *hw, ieee80211_update_csa(sdata, bcn); if (ifmsh->sync_ops) - ifmsh->sync_ops->adjust_tbtt( - sdata); + ifmsh->sync_ops->adjust_tbtt(sdata, bcn); skb = dev_alloc_skb(local->tx_headroom + bcn->head_len + |