diff options
-rw-r--r-- | arch/powerpc/kernel/irq.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c index 77be3d058a65..fa6f38525801 100644 --- a/arch/powerpc/kernel/irq.c +++ b/arch/powerpc/kernel/irq.c | |||
@@ -159,8 +159,17 @@ notrace void raw_local_irq_restore(unsigned long en) | |||
159 | * use local_paca instead of get_paca() to avoid preemption checking. | 159 | * use local_paca instead of get_paca() to avoid preemption checking. |
160 | */ | 160 | */ |
161 | local_paca->hard_enabled = en; | 161 | local_paca->hard_enabled = en; |
162 | |||
163 | #ifndef CONFIG_BOOKE | ||
164 | /* On server, re-trigger the decrementer if it went negative since | ||
165 | * some processors only trigger on edge transitions of the sign bit. | ||
166 | * | ||
167 | * BookE has a level sensitive decrementer (latches in TSR) so we | ||
168 | * don't need that | ||
169 | */ | ||
162 | if ((int)mfspr(SPRN_DEC) < 0) | 170 | if ((int)mfspr(SPRN_DEC) < 0) |
163 | mtspr(SPRN_DEC, 1); | 171 | mtspr(SPRN_DEC, 1); |
172 | #endif /* CONFIG_BOOKE */ | ||
164 | 173 | ||
165 | /* | 174 | /* |
166 | * Force the delivery of pending soft-disabled interrupts on PS3. | 175 | * Force the delivery of pending soft-disabled interrupts on PS3. |