diff options
Diffstat (limited to 'arch/powerpc/mm/slb.c')
-rw-r--r-- | arch/powerpc/mm/slb.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/powerpc/mm/slb.c b/arch/powerpc/mm/slb.c index 47b06bad24ad..906daeda59a8 100644 --- a/arch/powerpc/mm/slb.c +++ b/arch/powerpc/mm/slb.c | |||
@@ -124,6 +124,12 @@ void slb_flush_and_rebolt(void) | |||
124 | ksp_vsid_data = get_slb_shadow()->save_area[2].vsid; | 124 | ksp_vsid_data = get_slb_shadow()->save_area[2].vsid; |
125 | } | 125 | } |
126 | 126 | ||
127 | /* | ||
128 | * We can't take a PMU exception in the following code, so hard | ||
129 | * disable interrupts. | ||
130 | */ | ||
131 | hard_irq_disable(); | ||
132 | |||
127 | /* We need to do this all in asm, so we're sure we don't touch | 133 | /* We need to do this all in asm, so we're sure we don't touch |
128 | * the stack between the slbia and rebolting it. */ | 134 | * the stack between the slbia and rebolting it. */ |
129 | asm volatile("isync\n" | 135 | asm volatile("isync\n" |