diff options
Diffstat (limited to 'arch/powerpc/kernel/rtas.c')
-rw-r--r-- | arch/powerpc/kernel/rtas.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/rtas.c b/arch/powerpc/kernel/rtas.c index c434823b8c83..bf90361bb70f 100644 --- a/arch/powerpc/kernel/rtas.c +++ b/arch/powerpc/kernel/rtas.c | |||
@@ -39,6 +39,7 @@ | |||
39 | #include <asm/smp.h> | 39 | #include <asm/smp.h> |
40 | #include <asm/atomic.h> | 40 | #include <asm/atomic.h> |
41 | #include <asm/time.h> | 41 | #include <asm/time.h> |
42 | #include <asm/mmu.h> | ||
42 | 43 | ||
43 | struct rtas_t rtas = { | 44 | struct rtas_t rtas = { |
44 | .lock = __RAW_SPIN_LOCK_UNLOCKED | 45 | .lock = __RAW_SPIN_LOCK_UNLOCKED |
@@ -713,6 +714,7 @@ static void rtas_percpu_suspend_me(void *info) | |||
713 | { | 714 | { |
714 | long rc = H_SUCCESS; | 715 | long rc = H_SUCCESS; |
715 | unsigned long msr_save; | 716 | unsigned long msr_save; |
717 | u16 slb_size = mmu_slb_size; | ||
716 | int cpu; | 718 | int cpu; |
717 | struct rtas_suspend_me_data *data = | 719 | struct rtas_suspend_me_data *data = |
718 | (struct rtas_suspend_me_data *)info; | 720 | (struct rtas_suspend_me_data *)info; |
@@ -735,13 +737,16 @@ static void rtas_percpu_suspend_me(void *info) | |||
735 | /* All other cpus are in H_JOIN, this cpu does | 737 | /* All other cpus are in H_JOIN, this cpu does |
736 | * the suspend. | 738 | * the suspend. |
737 | */ | 739 | */ |
740 | slb_set_size(SLB_MIN_SIZE); | ||
738 | printk(KERN_DEBUG "calling ibm,suspend-me on cpu %i\n", | 741 | printk(KERN_DEBUG "calling ibm,suspend-me on cpu %i\n", |
739 | smp_processor_id()); | 742 | smp_processor_id()); |
740 | data->error = rtas_call(data->token, 0, 1, NULL); | 743 | data->error = rtas_call(data->token, 0, 1, NULL); |
741 | 744 | ||
742 | if (data->error) | 745 | if (data->error) { |
743 | printk(KERN_DEBUG "ibm,suspend-me returned %d\n", | 746 | printk(KERN_DEBUG "ibm,suspend-me returned %d\n", |
744 | data->error); | 747 | data->error); |
748 | slb_set_size(slb_size); | ||
749 | } | ||
745 | } else { | 750 | } else { |
746 | printk(KERN_ERR "H_JOIN on cpu %i failed with rc = %ld\n", | 751 | printk(KERN_ERR "H_JOIN on cpu %i failed with rc = %ld\n", |
747 | smp_processor_id(), rc); | 752 | smp_processor_id(), rc); |