diff options
author | Ian Campbell <ian.campbell@citrix.com> | 2009-12-01 12:47:14 +0100 |
---|---|---|
committer | Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> | 2009-12-03 20:14:56 +0100 |
commit | 65f63384b391bf4d384327d8a7c6de9860290b5c (patch) | |
tree | d42741a7582839ed8740b9cfb99416f2fcf46a6a /drivers/xen/xencomm.c | |
parent | xen: don't leak IRQs over suspend/resume. (diff) | |
download | linux-65f63384b391bf4d384327d8a7c6de9860290b5c.tar.xz linux-65f63384b391bf4d384327d8a7c6de9860290b5c.zip |
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 'drivers/xen/xencomm.c')
0 files changed, 0 insertions, 0 deletions