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 4145ed6dc5
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>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
a4573c488d
commit
7a8d37a373
@@ -770,13 +770,6 @@ int device_add(struct device *dev)
|
||||
struct class_interface *class_intf;
|
||||
int error;
|
||||
|
||||
error = pm_sleep_lock();
|
||||
if (error) {
|
||||
dev_warn(dev, "Suspicious %s during suspend\n", __FUNCTION__);
|
||||
dump_stack();
|
||||
return error;
|
||||
}
|
||||
|
||||
dev = get_device(dev);
|
||||
if (!dev || !strlen(dev->bus_id)) {
|
||||
error = -EINVAL;
|
||||
@@ -843,7 +836,6 @@ int device_add(struct device *dev)
|
||||
}
|
||||
Done:
|
||||
put_device(dev);
|
||||
pm_sleep_unlock();
|
||||
return error;
|
||||
BusError:
|
||||
device_pm_remove(dev);
|
||||
|
Reference in New Issue
Block a user