diff options
author | Ian Campbell <ian.campbell@citrix.com> | 2009-12-01 06:47:14 -0500 |
---|---|---|
committer | Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> | 2009-12-03 14:14:56 -0500 |
commit | 65f63384b391bf4d384327d8a7c6de9860290b5c (patch) | |
tree | d42741a7582839ed8740b9cfb99416f2fcf46a6a /mm/percpu.c | |
parent | fed5ea87e02aaf902ff38c65b4514233db03dc09 (diff) |
xen: improve error handling in do_suspend.
The existing error handling has a few issues:
- If freeze_processes() fails it exits with shutting_down = SHUTDOWN_SUSPEND.
- If dpm_suspend_noirq() fails it exits without resuming xenbus.
- If stop_machine() fails it exits without resuming xenbus or calling
dpm_resume_end().
- xs_suspend()/xs_resume() and dpm_suspend_noirq()/dpm_resume_noirq() were not
nested in the obvious way.
Fix by ensuring each failure case goto's the correct label. Treat a failure of
stop_machine() as a cancelled suspend in order to follow the correct resume
path.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: Stable Kernel <stable@kernel.org>
Diffstat (limited to 'mm/percpu.c')
0 files changed, 0 insertions, 0 deletions