diff options
author | Rafael J. Wysocki <rjw@sisk.pl> | 2008-02-05 01:30:15 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-05 12:44:23 -0500 |
commit | 3506e0c49a5ceba72c0405d1a470184c2d6705f7 (patch) | |
tree | 960333db4879feb5a0615d96687909a186a83ff3 /drivers/net/wireless/b43/b43.h | |
parent | fa23f5cce8cda2095013afc837ccf74b352f9f7b (diff) |
b43: avoid unregistering device objects during suspend
Modify the b43 driver to avoid deadlocking suspend and resume, which happens
as a result of attempting to unregister device objects locked by the PM core
during suspend/resume cycles. Also, make it use a suspend-safe method of
unregistering device object in the resume error path.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Michael Buesch <mb@bu3sch.de>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: "John W. Linville" <linville@tuxdriver.com>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Len Brown <lenb@kernel.org>
Cc: Greg KH <greg@kroah.com>
Cc: Kay Sievers <kay.sievers@vrfy.org>
Cc: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/net/wireless/b43/b43.h')
-rw-r--r-- | drivers/net/wireless/b43/b43.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/wireless/b43/b43.h b/drivers/net/wireless/b43/b43.h index 32a24f5c4fa6..08a011f0834a 100644 --- a/drivers/net/wireless/b43/b43.h +++ b/drivers/net/wireless/b43/b43.h | |||
@@ -724,6 +724,7 @@ struct b43_wldev { | |||
724 | bool short_preamble; /* TRUE, if short preamble is enabled. */ | 724 | bool short_preamble; /* TRUE, if short preamble is enabled. */ |
725 | bool short_slot; /* TRUE, if short slot timing is enabled. */ | 725 | bool short_slot; /* TRUE, if short slot timing is enabled. */ |
726 | bool radio_hw_enable; /* saved state of radio hardware enabled state */ | 726 | bool radio_hw_enable; /* saved state of radio hardware enabled state */ |
727 | bool suspend_in_progress; /* TRUE, if we are in a suspend/resume cycle */ | ||
727 | 728 | ||
728 | /* PHY/Radio device. */ | 729 | /* PHY/Radio device. */ |
729 | struct b43_phy phy; | 730 | struct b43_phy phy; |