]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - arch/powerpc/include/asm/exception-64s.h
powerpc/64s: Fix system reset vs general interrupt reentrancy
[karo-tx-linux.git] / arch / powerpc / include / asm / exception-64s.h
index 229f22a2e9b18fcae048a986be479a5cd1a46f14..63a309a432ad562f7c3cf0bc64a782a0e853fe41 100644 (file)
@@ -549,8 +549,8 @@ BEGIN_FTR_SECTION                           \
        beql    ppc64_runlatch_on_trampoline;   \
 END_FTR_SECTION_IFSET(CPU_FTR_CTRL)
 
-#define EXCEPTION_COMMON(trap, label, hdlr, ret, additions)    \
-       EXCEPTION_PROLOG_COMMON(trap, PACA_EXGEN);              \
+#define EXCEPTION_COMMON(area, trap, label, hdlr, ret, additions) \
+       EXCEPTION_PROLOG_COMMON(trap, area);                    \
        /* Volatile regs are potentially clobbered here */      \
        additions;                                              \
        addi    r3,r1,STACK_FRAME_OVERHEAD;                     \
@@ -558,17 +558,17 @@ END_FTR_SECTION_IFSET(CPU_FTR_CTRL)
        b       ret
 
 #define STD_EXCEPTION_COMMON(trap, label, hdlr)                        \
-       EXCEPTION_COMMON(trap, label, hdlr, ret_from_except,    \
-                        ADD_NVGPRS;ADD_RECONCILE)
+       EXCEPTION_COMMON(PACA_EXGEN, trap, label, hdlr,         \
+               ret_from_except, ADD_NVGPRS;ADD_RECONCILE)
 
 /*
  * Like STD_EXCEPTION_COMMON, but for exceptions that can occur
  * in the idle task and therefore need the special idle handling
  * (finish nap and runlatch)
  */
-#define STD_EXCEPTION_COMMON_ASYNC(trap, label, hdlr)            \
-       EXCEPTION_COMMON(trap, label, hdlr, ret_from_except_lite, \
-                        FINISH_NAP;ADD_RECONCILE;RUNLATCH_ON)
+#define STD_EXCEPTION_COMMON_ASYNC(trap, label, hdlr)          \
+       EXCEPTION_COMMON(PACA_EXGEN, trap, label, hdlr,         \
+               ret_from_except_lite, FINISH_NAP;ADD_RECONCILE;RUNLATCH_ON)
 
 /*
  * When the idle code in power4_idle puts the CPU into NAP mode,