]> git.baikalelectronics.ru Git - kernel.git/commit
mac80211: fix suspend
authorJohannes Berg <johannes@sipsolutions.net>
Tue, 28 Jul 2009 16:10:17 +0000 (18:10 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 29 Jul 2009 18:52:01 +0000 (14:52 -0400)
commit62363741ab73604449bb19bb3d4d9833a93352b0
treee6ab04353cfc202bc7ecbd58d57c2d1790381a7c
parent74a6e8eaac0a44b0cb950486898042d2c1742286
mac80211: fix suspend

Jan reported that his b43-based laptop hangs during suspend.
The problem turned out to be mac80211 asking the driver to
stop the hardware before removing interfaces, and interface
removal caused b43 to touch the hardware (while down, which
causes the hang).

This patch fixes mac80211 to do reorder these operations to
have them in the correct order -- first remove interfaces
and then stop the hardware. Some more code is necessary to
be able to do so in a race-free manner, in particular it is
necessary to not process frames received during quiescing.

Fixes http://bugzilla.kernel.org/show_bug.cgi?id=13337.

Reported-by: Jan Scholz <scholz@fias.uni-frankfurt.de>
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/pm.c
net/mac80211/rx.c