On Tue, Aug 18, 2009 at 09:28:29AM +0200, Johannes Berg wrote: > > Signed-off-by: Lennert Buytenhek <buytenh@xxxxxxxxxxx> > > --- > > drivers/net/wireless/mwl8k.c | 2 +- > > 1 files changed, 1 insertions(+), 1 deletions(-) > > > > diff --git a/drivers/net/wireless/mwl8k.c b/drivers/net/wireless/mwl8k.c > > index 9f54204..3a201a2 100644 > > --- a/drivers/net/wireless/mwl8k.c > > +++ b/drivers/net/wireless/mwl8k.c > > @@ -2935,7 +2935,7 @@ static int mwl8k_config_wt(struct work_struct *wt) > > struct mwl8k_priv *priv = hw->priv; > > int rc = 0; > > > > - if (!conf->radio_enabled) { > > + if (conf->flags & IEEE80211_CONF_IDLE) { > > mwl8k_cmd_802_11_radio_disable(hw); > > priv->current_channel = NULL; > > rc = 0; > > So I think the return; a little below needs to be removed to allow doing > other things while the radio is off? I'm not sure which actually happen > but I never audited the code to make sure nothing happens. The logic is just: if (idle) { issue "radio disable" command } else { issue "radio enable" command set channel set tx power set antenna config } So if a channel change hapens while we are idle, that event won't get lost -- it'll just happen later. -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html