iwlagn: default to MAX_UCODE_BEACON_INTERVAL in iwl_adjust_beacon_interval
authorJohn W. Linville <linville@tuxdriver.com>
Sat, 21 Feb 2009 00:03:31 +0000 (19:03 -0500)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 27 Feb 2009 19:52:44 +0000 (14:52 -0500)
Default to MAX_UCODE_BEACON_INTERVAL if the output of
iwl_adjust_beacon_interval would otherwise be zero.  This prevents a
division by zero on my iwl5300-equipped Lenovo T400 with kernels that
include "mac80211: use cfg80211s BSS infrastructure".

This patch is a bit of a hack -- I'm not sure why iwl_setup_rxon_timing
is giving iwl_adjust_beacon_interval a zero input (which is the only way
it would output zero).  I would be happy to have a better fix.  But for
now, this makes my box boot...

Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwlwifi/iwl-agn.c

index 50f8c7f470613841c164a38a7f2cfa66ba091922..ad310050e298ed0e6aad62cd4fe85191f24f9d7e 100644 (file)
@@ -644,6 +644,9 @@ static u16 iwl_adjust_beacon_interval(u16 beacon_val)
                                        / MAX_UCODE_BEACON_INTERVAL;
        new_val = beacon_val / beacon_factor;
 
+       if (!new_val)
+               new_val = MAX_UCODE_BEACON_INTERVAL;
+
        return new_val;
 }