Search Linux Wireless

RE: mwifiex frequent "not allowed while suspended" crash on resume

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Daniel,

> > Normally TX is blocked until resume handler is called and host sleep handshake between driver and
> firmware is done.
> 
> Where is the code that makes such synchronization happen?

If a data packet is received unexpectedly during suspended, driver blocks it and displays a message "not allowed while suspended".

Earlier you mentioned that doing netif attach/detach in suspend/resume would work around this problem.
It reminders me that previously we set carrier off in suspend so that kernel won't send data packets to driver. That carrier-off code was removed in recent commit 1499d9f to fix a missing ping response issue right after resume. Perhaps it's worth a revisit to this change.

> 
> > Does the TX happen before "hs_deactivated" event?
> 
> hard_start_xmit is called approximately 1ms after hs_deactivated arrives.

When hs_deactivated event arrives, 'is_suspended' flag must have been cleared already. The tx packets should be allowed to send freely. I don't know why the message "not allowed while suspended" is fired in this case.
There could be a race condition somewhere though. Could you please send a complete dynamic_debug enabled log showing all the sequence?

> 
> > I'm thinking of releasing IRQ in driver suspend handler and re-claim the IRQ in resume. Of course
> it needs some changes in sdio_release_irq to skip SDIO_CCCR_IENx disabling, otherwise host may not be
> woken up by SDIO DAT1.
> >
> > Attached is the sample code, not tested.
> 
> That patch breaks wake-on-LAN, the suspended system simply doesn't
> respond to incoming packets.

Could you confirm that you saw this message on suspend?

"SDIO: KEEP IRQ ON for ..."

Thanks,
Bing

> 
> 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




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux