[PATCH] powerpc: prod all processors after ibm,suspend-me
authorDave C Boutcher <boutcher@cs.umn.edu>
Fri, 3 Feb 2006 07:18:39 +0000 (01:18 -0600)
committerPaul Mackerras <paulus@samba.org>
Tue, 7 Feb 2006 10:32:43 +0000 (21:32 +1100)
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>
arch/powerpc/kernel/rtas.c

index f9b34e3ccf5a25985ffdb420b025450bcac62fae..0c6ed6d75b1794b5630a73054dfd00fbeb262d00 100644 (file)
@@ -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");