diff options
author | Sujith <Sujith.Manoharan@atheros.com> | 2009-02-26 23:14:00 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-03-05 14:39:32 -0500 |
commit | e31ae0508315ebf5d8b1b8a1fca8550737fb3996 (patch) | |
tree | fe4c453d40df43ac2544ab9ec107403ccd9bbcca /net/mac80211/cfg.c | |
parent | db5b4f7ae3901fdc48c5b988fc2a5e0cb4ec1870 (diff) |
mac80211: Notify the driver only when the beacon interval changes
Currently, the driver is unconditionally notified of beacon
interval. This is a problem in AP mode, because the driver has
to know that the beacon interval has actualy changed to recalculate
TBTT and reset the HW TSF. Fix this to make mac80211 notify the driver
only when the beacon interval has been reconfigured to a new value.
Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/cfg.c')
-rw-r--r-- | net/mac80211/cfg.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c index c43129efc3bf..58693e52d458 100644 --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c | |||
@@ -451,7 +451,8 @@ static int ieee80211_config_beacon(struct ieee80211_sub_if_data *sdata, | |||
451 | * This is a kludge. beacon interval should really be part | 451 | * This is a kludge. beacon interval should really be part |
452 | * of the beacon information. | 452 | * of the beacon information. |
453 | */ | 453 | */ |
454 | if (params->interval) { | 454 | if (params->interval && (sdata->local->hw.conf.beacon_int != |
455 | params->interval)) { | ||
455 | sdata->local->hw.conf.beacon_int = params->interval; | 456 | sdata->local->hw.conf.beacon_int = params->interval; |
456 | err = ieee80211_hw_config(sdata->local, | 457 | err = ieee80211_hw_config(sdata->local, |
457 | IEEE80211_CONF_CHANGE_BEACON_INTERVAL); | 458 | IEEE80211_CONF_CHANGE_BEACON_INTERVAL); |