diff options
author | Dave C Boutcher <boutcher@cs.umn.edu> | 2006-02-03 02:18:39 -0500 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-02-07 05:32:43 -0500 |
commit | 82a4df74628a3bf0ac762be198b45e02a7c5879f (patch) | |
tree | 4aa144d331a3d5701bfc78349c8935bf5de01bf6 | |
parent | c4cb8ecca66e3f136f66b5b30ec189530290a9b9 (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>
-rw-r--r-- | arch/powerpc/kernel/rtas.c | 3 |
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 |
567 | static void rtas_percpu_suspend_me(void *info) | 567 | static 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"); |