linux_dsm_epyc7002/drivers/base/power
Rafael J. Wysocki d94aff8782 PM / Sleep: Fix possible infinite loop during wakeup source destruction
If wakeup_source_destroy() is called for an active wakeup source that
is never deactivated, it will spin forever.  To prevent that from
happening, make wakeup_source_destroy() call __pm_relax() for the
wakeup source object it is about to free instead of waiting until
it will be deactivated by someone else.  However, for this to work
it also needs to make sure that the timer function will not be
executed after the final __pm_relax(), so make it run
del_timer_sync() on the wakeup source's timer beforehand.

Additionally, update the kerneldoc comment to document the
requirement that __pm_stay_awake() and __pm_wakeup_event() must not
be run in parallel with wakeup_source_destroy().

Reported-by: Arve Hjønnevåg <arve@android.com>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
2012-03-04 23:08:02 +01:00
..
clock_ops.c PM / Clocks: Only disable enabled clocks in pm_clk_suspend() 2011-11-10 00:44:10 +01:00
common.c drivers/base: change module.h -> export.h in power/common.c 2011-10-31 19:31:39 -04:00
domain_governor.c PM / Domains: Skip governor functions for CONFIG_PM_RUNTIME unset 2012-01-14 00:39:36 +01:00
domain.c PM / Domains: Fix build for CONFIG_PM_SLEEP unset 2012-01-14 00:39:25 +01:00
generic_ops.c PM / Sleep: Introduce generic callbacks for new device PM phases 2012-01-29 20:38:41 +01:00
main.c PM / Sleep: Introduce "late suspend" and "early resume" of devices 2012-01-29 20:38:29 +01:00
Makefile PM / Domains: Add device stop governor function (v4) 2011-12-01 21:47:40 +01:00
opp.c PM / OPP: Use ERR_CAST instead of ERR_PTR(PTR_ERR()) 2011-11-08 22:34:00 +01:00
power.h PM / QoS: Add function dev_pm_qos_read_value() (v3) 2011-10-04 21:54:26 +02:00
qos.c Merge branch 'pm-domains' into pm-for-linus 2011-12-25 23:43:11 +01:00
runtime.c Merge branch 'pm-runtime' into pm-for-linus 2011-12-25 23:43:05 +01:00
sysfs.c drivers/base: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required. 2011-10-31 19:31:38 -04:00
trace.c drivers/base: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required. 2011-10-31 19:31:38 -04:00
wakeup.c PM / Sleep: Fix possible infinite loop during wakeup source destruction 2012-03-04 23:08:02 +01:00