mac80211: set hw initial idle state
authorKarl Beldan <karl.beldan@rivierawaves.com>
Tue, 19 Nov 2013 16:12:05 +0000 (17:12 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 25 Nov 2013 15:56:54 +0000 (16:56 +0100)
ATM, the first call of ieee80211_do_open will configure the hw as
non-idle, even if the interface being brought up is not a monitor, and
this leads to inconsistent sequences like:

register_hw()
do_open(sta)
hw_config(non-idle)
(.. sta is non-idle ..)
scan(sta)
hw_config(idle) (after scan finishes)
do_stop(sta)
do_open(sta)
(.. sta is idle ..)

Signed-off-by: Karl Beldan <karl.beldan@rivierawaves.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/main.c

index e765f77bb97ac837b2389e340a45c5210dc5e086..7d1c3ac48ed941866170afdf387def183690d612 100644 (file)
@@ -940,6 +940,8 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
                wiphy_debug(local->hw.wiphy, "Failed to initialize wep: %d\n",
                            result);
 
+       local->hw.conf.flags = IEEE80211_CONF_IDLE;
+
        ieee80211_led_init(local);
 
        rtnl_lock();