2013-11-19 16:13:01

by Karl Beldan

[permalink] [raw]
Subject: [PATCH] mac80211: set hw initial idle state

From: Karl Beldan <[email protected]>

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 <[email protected]>
---
net/mac80211/main.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index bdb0b6c..3ef7fc3 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -995,6 +995,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();
--
1.8.2



2013-11-25 15:57:04

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] mac80211: set hw initial idle state

On Tue, 2013-11-19 at 17:12 +0100, Karl Beldan wrote:
> From: Karl Beldan <[email protected]>
>
> 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:

Applied.

johannes