mac80211: cache mesh beacon
Previously, the entire mesh beacon would be generated each time the beacon timer fired. Instead generate a beacon head and tail (so the TIM can easily be inserted when mesh power save is on) when starting a mesh or the MBSS parameters change. Also add a mutex for protecting beacon updates and preventing leaks. Signed-off-by: Thomas Pedersen <thomas@cozybit.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
committed by
Johannes Berg
parent
4a3cb702b0
commit
2b5e196775
@@ -508,7 +508,7 @@ void mesh_neighbour_update(struct ieee80211_sub_if_data *sdata,
|
||||
ieee80211_mps_frame_release(sta, elems);
|
||||
out:
|
||||
rcu_read_unlock();
|
||||
ieee80211_bss_info_change_notify(sdata, changed);
|
||||
ieee80211_mbss_info_change_notify(sdata, changed);
|
||||
}
|
||||
|
||||
static void mesh_plink_timer(unsigned long data)
|
||||
@@ -1090,5 +1090,5 @@ void mesh_rx_plink_frame(struct ieee80211_sub_if_data *sdata, struct ieee80211_m
|
||||
rcu_read_unlock();
|
||||
|
||||
if (changed)
|
||||
ieee80211_bss_info_change_notify(sdata, changed);
|
||||
ieee80211_mbss_info_change_notify(sdata, changed);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user