Files
tegra-linux-noble/include/linux
Rafael J. Wysocki 098dff738a PM: Fix potential issue with failing asynchronous suspend
There is a potential issue with the asynchronous suspend code that
a device driver suspending asynchronously may not notice that it
should back off.  There are two failing scenarions, (1) when the
driver is waiting for a driver suspending synchronously to complete
and that second driver returns error code, in which case async_error
won't be set and the waiting driver will continue suspending and (2)
after the driver has called device_pm_wait_for_dev() and the waited
for driver returns error code, in which case the caller of
device_pm_wait_for_dev() will not know that there was an error and
will continue suspending.

To fix this issue make __device_suspend() set async_error, so
async_suspend() doesn't need to set it any more, and make
device_pm_wait_for_dev() return async_error, so that its callers
can check whether or not they should continue suspending.

No more changes are necessary, since device_pm_wait_for_dev() is
not used by any drivers' suspend routines.

Reported-by: Colin Cross <ccross@android.com>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-10-17 01:57:43 +02:00
..
2010-08-05 13:26:20 +01:00
2010-08-12 06:38:24 +10:00
2010-09-08 10:50:00 -06:00
2010-08-12 08:43:30 -07:00
2010-08-12 08:43:30 -07:00
2010-08-12 08:43:30 -07:00
2010-08-18 01:09:01 -04:00
2010-09-09 18:57:23 -07:00
2010-08-06 15:36:47 -05:00
2010-08-04 11:00:45 +02:00
2010-08-12 04:14:05 +01:00
2010-08-18 08:35:46 -04:00
2010-08-11 09:23:22 +02:00
2010-08-11 18:21:02 +02:00
2010-08-09 20:45:05 -07:00
2010-08-10 11:49:21 -07:00
2010-08-12 11:27:58 +02:00
2010-10-11 18:15:28 -07:00
2010-09-09 18:57:24 -07:00
2010-08-02 06:39:44 +03:00
2010-08-01 10:47:00 +03:00
2010-08-09 16:48:45 -04:00
2010-09-09 09:05:06 -07:00
2010-08-11 00:29:47 -04:00
2010-08-04 21:53:17 -07:00
2010-08-09 16:47:27 -04:00
2010-09-08 15:04:10 +02:00
2010-09-27 20:24:54 -07:00
2010-08-09 16:48:44 -04:00
2010-08-18 08:35:47 -04:00
2010-08-11 08:59:02 -07:00
2010-09-13 10:26:52 +02:00