ath9k: Make sure we configure a non-zero beacon interval
authorVasanthakumar Thiagarajan <vasanth@atheros.com>
Fri, 12 Jun 2009 05:25:55 +0000 (10:55 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 10 Jul 2009 18:57:41 +0000 (14:57 -0400)
This patch moves the sanity check on beacon interval
which was done only for mesh mode to all operating
modes just to be safe.

Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/beacon.c

index 3639a2e6987d690c7de032eb6bc72d1b1efeaab2..45c4ea57616bd6afdbfe3a0e45dd46dc0bfb9be3 100644 (file)
@@ -674,13 +674,6 @@ static void ath_beacon_config_adhoc(struct ath_softc *sc,
 
        intval = conf->beacon_interval & ATH9K_BEACON_PERIOD;
 
-       /*
-        * It looks like mac80211 may end up using beacon interval of zero in
-        * some cases (at least for mesh point). Avoid getting into an
-        * infinite loop by using a bit safer value instead..
-        */
-       if (intval == 0)
-               intval = 100;
 
        /* Pull nexttbtt forward to reflect the current TSF */
 
@@ -745,6 +738,14 @@ void ath_beacon_config(struct ath_softc *sc, struct ieee80211_vif *vif)
                iftype = sc->sc_ah->opmode;
        }
 
+       /*
+        * It looks like mac80211 may end up using beacon interval of zero in
+        * some cases (at least for mesh point). Avoid getting into an
+        * infinite loop by using a bit safer value instead. To be safe,
+        * do sanity check on beacon interval for all operating modes.
+        */
+       if (cur_conf->beacon_interval == 0)
+               cur_conf->beacon_interval = 100;
 
        switch (iftype) {
        case NL80211_IFTYPE_AP: