From a30ade19c2a90be35cf00ea1cd1668f1f137887d Mon Sep 17 00:00:00 2001 From: Ian Campbell Date: Tue, 1 Dec 2009 11:47:15 +0000 Subject: [PATCH] --- yaml --- r: 174431 b: refs/heads/master c: b4606f2165153833247823e8c04c5e88cb3d298b h: refs/heads/master i: 174429: 58e9bcc71ebd74c705e61d8bb42f3e22e100d59b 174427: f438f3e6c6fc359e048673b73223bcb7f9f75b9d 174423: 6376974046a0282505208997eeb71fc12f926008 174415: fb7f438e1b014e5e69457690a8ef874f93c9a23f 174399: 2e779249c50c7fbc3b9da711a468313be03e40bf v: v3 --- [refs] | 2 +- trunk/drivers/xen/manage.c | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 3f62df40cf03..b66728fd4365 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 65f63384b391bf4d384327d8a7c6de9860290b5c +refs/heads/master: b4606f2165153833247823e8c04c5e88cb3d298b diff --git a/trunk/drivers/xen/manage.c b/trunk/drivers/xen/manage.c index 2fb7d39b814c..c4997930afc7 100644 --- a/trunk/drivers/xen/manage.c +++ b/trunk/drivers/xen/manage.c @@ -79,6 +79,12 @@ static void do_suspend(void) shutting_down = SHUTDOWN_SUSPEND; + err = stop_machine_create(); + if (err) { + printk(KERN_ERR "xen suspend: failed to setup stop_machine %d\n", err); + goto out; + } + #ifdef CONFIG_PREEMPT /* If the kernel is preemptible, we need to freeze all the processes to prevent them from being in the middle of a pagetable update @@ -86,7 +92,7 @@ static void do_suspend(void) err = freeze_processes(); if (err) { printk(KERN_ERR "xen suspend: freeze failed %d\n", err); - goto out; + goto out_destroy_sm; } #endif @@ -129,7 +135,11 @@ static void do_suspend(void) out_thaw: #ifdef CONFIG_PREEMPT thaw_processes(); + +out_destroy_sm: #endif + stop_machine_destroy(); + out: shutting_down = SHUTDOWN_INVALID; }