diff options
author | Rafael J. Wysocki <rjw@sisk.pl> | 2008-02-24 18:35:04 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2008-03-04 17:47:05 -0500 |
commit | 7a8d37a37380e2b1500592d40b7ec384dbebe7a0 (patch) | |
tree | 9a23b48e49ffc3303e5998f20498c994da2788c1 /drivers/usb/core | |
parent | a4573c488dd531c6e2d308ce8a7413c4a2646207 (diff) |
PM: Do not acquire device semaphores upfront during suspend
Remove the code that acquires all device semaphores from the suspend
code path as it causes multiple problems to appear (most notably,
http://bugzilla.kernel.org/show_bug.cgi?id=10030) and revert the
change introduced by commit 4145ed6dc597a9bea5f6ae8c574653b2de10620f
depending on the code being removed.
Remove pm_sleep_lock()/pm_sleep_unlock() from device_add() to avoid
the issue reported at http://bugzilla.kernel.org/show_bug.cgi?id=9874.
It should fix the regreesions reported at:
http://bugzilla.kernel.org/show_bug.cgi?id=9874
http://bugzilla.kernel.org/show_bug.cgi?id=10030
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/core')
-rw-r--r-- | drivers/usb/core/usb.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c index f6f19908f5f0..1f0db51190cc 100644 --- a/drivers/usb/core/usb.c +++ b/drivers/usb/core/usb.c | |||
@@ -233,7 +233,7 @@ static int ksuspend_usb_init(void) | |||
233 | * singlethreaded. Its job doesn't justify running on more | 233 | * singlethreaded. Its job doesn't justify running on more |
234 | * than one CPU. | 234 | * than one CPU. |
235 | */ | 235 | */ |
236 | ksuspend_usb_wq = create_singlethread_workqueue("ksuspend_usbd"); | 236 | ksuspend_usb_wq = create_freezeable_workqueue("ksuspend_usbd"); |
237 | if (!ksuspend_usb_wq) | 237 | if (!ksuspend_usb_wq) |
238 | return -ENOMEM; | 238 | return -ENOMEM; |
239 | return 0; | 239 | return 0; |