aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc
diff options
context:
space:
mode:
authorDave C Boutcher <boutcher@cs.umn.edu>2006-02-03 01:18:39 -0600
committerPaul Mackerras <paulus@samba.org>2006-02-07 21:32:43 +1100
commit82a4df74628a3bf0ac762be198b45e02a7c5879f (patch)
tree4aa144d331a3d5701bfc78349c8935bf5de01bf6 /arch/powerpc
parent[PATCH] powerpc: return correct rtas status from ibm,suspend-me (diff)
downloadlinux-dev-82a4df74628a3bf0ac762be198b45e02a7c5879f.tar.xz
linux-dev-82a4df74628a3bf0ac762be198b45e02a7c5879f.zip
[PATCH] powerpc: prod all processors after ibm,suspend-me
We need to prod everyone here since this is the only CPU that is guaranteed to be running after the ibm,suspend-me RTAS call returns. Signed-off-by: Dave Boutcher <sleddog@us.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc')
-rw-r--r--arch/powerpc/kernel/rtas.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/rtas.c b/arch/powerpc/kernel/rtas.c
index f9b34e3ccf5a..0c6ed6d75b17 100644
--- a/arch/powerpc/kernel/rtas.c
+++ b/arch/powerpc/kernel/rtas.c
@@ -566,6 +566,7 @@ static int ibm_suspend_me_token = RTAS_UNKNOWN_SERVICE;
#ifdef CONFIG_PPC_PSERIES
static void rtas_percpu_suspend_me(void *info)
{
+ int i;
long rc;
long flags;
struct rtas_suspend_me_data *data =
@@ -590,6 +591,8 @@ static void rtas_percpu_suspend_me(void *info)
data->waiting = 0;
data->args->args[data->args->nargs] =
rtas_call(ibm_suspend_me_token, 0, 1, NULL);
+ for_each_cpu(i)
+ plpar_hcall_norets(H_PROD,i);
} else {
data->waiting = -EBUSY;
printk(KERN_ERR "Error on H_Join hypervisor call\n");