aboutsummaryrefslogtreecommitdiff
path: root/arch/powerpc/platforms/cell/pervasive.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/platforms/cell/pervasive.c')
-rw-r--r--arch/powerpc/platforms/cell/pervasive.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/cell/pervasive.c b/arch/powerpc/platforms/cell/pervasive.c
index c68fabdc787..8c20f0fb865 100644
--- a/arch/powerpc/platforms/cell/pervasive.c
+++ b/arch/powerpc/platforms/cell/pervasive.c
@@ -41,6 +41,15 @@
static void cbe_power_save(void)
{
unsigned long ctrl, thread_switch_control;
+
+ /*
+ * We need to hard disable interrupts, but we also need to mark them
+ * hard disabled in the PACA so that the local_irq_enable() done by
+ * our caller upon return propertly hard enables.
+ */
+ hard_irq_disable();
+ get_paca()->hard_enabled = 0;
+
ctrl = mfspr(SPRN_CTRLF);
/* Enable DEC and EE interrupt request */