]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - arch/powerpc/kernel/idle_book3e.S
powerpc: Random little legacy iSeries removal tidy ups
[karo-tx-linux.git] / arch / powerpc / kernel / idle_book3e.S
index 16c002d6bdf11483a0de5ddd4132d96f24e1f3b0..ff007b59448db24523fc1590caa83057a6446dce 100644 (file)
@@ -29,43 +29,30 @@ _GLOBAL(book3e_idle)
        wrteei  0
 
        /* Now check if an interrupt came in while we were soft disabled
-        * since we may otherwise lose it (doorbells etc...). We know
-        * that since PACAHARDIRQEN will have been cleared in that case.
+        * since we may otherwise lose it (doorbells etc...).
         */
-       lbz     r3,PACAHARDIRQEN(r13)
+       lbz     r3,PACAIRQHAPPENED(r13)
        cmpwi   cr0,r3,0
-       beqlr
+       bnelr
 
-       /* Now we are going to mark ourselves as soft and hard enables in
+       /* Now we are going to mark ourselves as soft and hard enabled in
         * order to be able to take interrupts while asleep. We inform lockdep
         * of that. We don't actually turn interrupts on just yet tho.
         */
 #ifdef CONFIG_TRACE_IRQFLAGS
        stdu    r1,-128(r1)
        bl      .trace_hardirqs_on
+       addi    r1,r1,128
 #endif
        li      r0,1
        stb     r0,PACASOFTIRQEN(r13)
-       stb     r0,PACAHARDIRQEN(r13)
        
        /* Interrupts will make use return to LR, so get something we want
         * in there
         */
        bl      1f
 
-       /* Hard disable interrupts again */
-       wrteei  0
-
-       /* Mark them off again in the PACA as well */
-       li      r0,0
-       stb     r0,PACASOFTIRQEN(r13)
-       stb     r0,PACAHARDIRQEN(r13)
-
-       /* Tell lockdep about it */
-#ifdef CONFIG_TRACE_IRQFLAGS
-       bl      .trace_hardirqs_off
-       addi    r1,r1,128
-#endif
+       /* And return (interrupts are on) */
        ld      r0,16(r1)
        mtlr    r0
        blr