mac80211: clean up beacon interval settings
We currently have two beacon interval configuration knobs: hw.conf.beacon_int and vif.bss_info.beacon_int. This is rather confusing, even though the former is used when we beacon ourselves and the latter when we are associated to an AP. This just deprecates the hw.conf.beacon_int setting in favour of always using vif.bss_info.beacon_int. Since it touches all the beaconing IBSS code anyway, we can also add support for the cfg80211 IBSS beacon interval configuration easily. NOTE: The hw.conf.beacon_int setting is retained for now due to drivers still using it -- I couldn't untangle all drivers, some are updated in this patch. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
f3b85252f0
commit
57c4d7b4c4
@@ -451,18 +451,11 @@ static int ieee80211_config_beacon(struct ieee80211_sub_if_data *sdata,
|
||||
* This is a kludge. beacon interval should really be part
|
||||
* of the beacon information.
|
||||
*/
|
||||
if (params->interval && (sdata->local->hw.conf.beacon_int !=
|
||||
params->interval)) {
|
||||
sdata->local->hw.conf.beacon_int = params->interval;
|
||||
err = ieee80211_hw_config(sdata->local,
|
||||
IEEE80211_CONF_CHANGE_BEACON_INTERVAL);
|
||||
if (err < 0)
|
||||
return err;
|
||||
/*
|
||||
* We updated some parameter so if below bails out
|
||||
* it's not an error.
|
||||
*/
|
||||
err = 0;
|
||||
if (params->interval &&
|
||||
(sdata->vif.bss_conf.beacon_int != params->interval)) {
|
||||
sdata->vif.bss_conf.beacon_int = params->interval;
|
||||
ieee80211_bss_info_change_notify(sdata,
|
||||
BSS_CHANGED_BEACON_INT);
|
||||
}
|
||||
|
||||
/* Need to have a beacon head if we don't have one yet */
|
||||
|
Reference in New Issue
Block a user