On Thu, Apr 25, 2013 at 6:40 PM, Bing Zhao <bzhao@xxxxxxxxxxx> wrote: > No, it's not OK to transmit before the host sleep is cancelled. > I was under the assumption that no TX packet is from kernel during the time we cancel host sleep. This assumption can be wrong without netif_device_detach, etc. OK, this is a fair statement to make. But the presence of (not entirely working) mechanisms in the code such as the is_suspended flag that seem to work towards the same goal don't really seem to agree. Maybe we can drop is_suspended and just stop the TX queue as appropriate (via netif_device_detach or similar). That would leave us with both a clear design and a working implementation. Unless I am missing something, is_suspended only really seems to have what I would regard as a clear and valid use in the USB subdriver. > Could you try resetting is_suspend flag when an early RX is received? > > +++ b/drivers/net/wireless/mwifiex/cmdevt.c > @@ -1191,6 +1191,7 @@ mwifiex_process_hs_config(struct mwifiex_adapter *adapter) > adapter->if_ops.wakeup(adapter); > adapter->hs_activated = false; > adapter->is_hs_configured = false; > + adapter->is_suspended = false; > mwifiex_hs_activated_event(mwifiex_get_priv(adapter, > MWIFIEX_BSS_ROLE_ANY), > false); This seems to avoid the issue: no error messages during resume, and the interface remains functional. Thanks Daniel -- 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