aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorDave C Boutcher <boutcher@cs.umn.edu>2006-02-03 02:18:39 -0500
committerPaul Mackerras <paulus@samba.org>2006-02-07 05:32:43 -0500
commit82a4df74628a3bf0ac762be198b45e02a7c5879f (patch)
tree4aa144d331a3d5701bfc78349c8935bf5de01bf6 /arch
parentc4cb8ecca66e3f136f66b5b30ec189530290a9b9 (diff)
[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')
-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;
566#ifdef CONFIG_PPC_PSERIES 566#ifdef CONFIG_PPC_PSERIES
567static void rtas_percpu_suspend_me(void *info) 567static void rtas_percpu_suspend_me(void *info)
568{ 568{
569 int i;
569 long rc; 570 long rc;
570 long flags; 571 long flags;
571 struct rtas_suspend_me_data *data = 572 struct rtas_suspend_me_data *data =
@@ -590,6 +591,8 @@ static void rtas_percpu_suspend_me(void *info)
590 data->waiting = 0; 591 data->waiting = 0;
591 data->args->args[data->args->nargs] = 592 data->args->args[data->args->nargs] =
592 rtas_call(ibm_suspend_me_token, 0, 1, NULL); 593 rtas_call(ibm_suspend_me_token, 0, 1, NULL);
594 for_each_cpu(i)
595 plpar_hcall_norets(H_PROD,i);
593 } else { 596 } else {
594 data->waiting = -EBUSY; 597 data->waiting = -EBUSY;
595 printk(KERN_ERR "Error on H_Join hypervisor call\n"); 598 printk(KERN_ERR "Error on H_Join hypervisor call\n");