diff options
author | Ian Campbell <ian.campbell@citrix.com> | 2009-12-01 11:47:14 +0000 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-12-18 14:04:52 -0800 |
commit | f180b871d6cbcaaf9349075afb515081de073acb (patch) | |
tree | 339d77532f719692cd63cab4286d79b926941136 /arch | |
parent | 0bf7bb9861a419c63055293ddec67329165f8d84 (diff) |
xen: improve error handling in do_suspend.
commit 65f63384b391bf4d384327d8a7c6de9860290b5c upstream.
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>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'arch')
0 files changed, 0 insertions, 0 deletions