diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2012-12-12 09:12:24 +0100 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-01-31 14:05:38 +0100 |
commit | c65dd1477b6fe5971489dd8b6e28a07ec277fdd6 (patch) | |
tree | 01f740a3fa02bc957b22575fcd1bb486b0af6e43 /net/mac80211/util.c | |
parent | mac80211: remove assoc data "sent_assoc" (diff) | |
download | linux-c65dd1477b6fe5971489dd8b6e28a07ec277fdd6.tar.xz linux-c65dd1477b6fe5971489dd8b6e28a07ec277fdd6.zip |
mac80211: inform the driver about update of dtim_period
Currently, when the driver requires the DTIM period,
mac80211 will wait to hear a beacon before association.
This behavior is suboptimal since some drivers may be
able to deal with knowing the DTIM period after the
association, if they get it at all.
To address this, notify the drivers with bss_info_changed
with the new BSS_CHANGED_DTIM_PERIOD flag when the DTIM
becomes known. This might be when changing to associated,
or later when the entire association was done with only
probe response information.
Rename the hardware flag for the current behaviour to
IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC to more accurately
reflect its behaviour. IEEE80211_HW_NEED_DTIM_PERIOD is
no longer accurate as all drivers get the DTIM period
now, just not before association.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/util.c')
-rw-r--r-- | net/mac80211/util.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/net/mac80211/util.c b/net/mac80211/util.c index 7519018ff71a..1c74512697f0 100644 --- a/net/mac80211/util.c +++ b/net/mac80211/util.c @@ -1538,6 +1538,10 @@ int ieee80211_reconfig(struct ieee80211_local *local) changed |= BSS_CHANGED_ASSOC | BSS_CHANGED_ARP_FILTER | BSS_CHANGED_PS; + + if (sdata->u.mgd.dtim_period) + changed |= BSS_CHANGED_DTIM_PERIOD; + mutex_lock(&sdata->u.mgd.mtx); ieee80211_bss_info_change_notify(sdata, changed); mutex_unlock(&sdata->u.mgd.mtx); |