|
@@ -549,8 +549,8 @@ BEGIN_FTR_SECTION \
|
|
beql ppc64_runlatch_on_trampoline; \
|
|
beql ppc64_runlatch_on_trampoline; \
|
|
END_FTR_SECTION_IFSET(CPU_FTR_CTRL)
|
|
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 */ \
|
|
/* Volatile regs are potentially clobbered here */ \
|
|
additions; \
|
|
additions; \
|
|
addi r3,r1,STACK_FRAME_OVERHEAD; \
|
|
addi r3,r1,STACK_FRAME_OVERHEAD; \
|
|
@@ -558,17 +558,17 @@ END_FTR_SECTION_IFSET(CPU_FTR_CTRL)
|
|
b ret
|
|
b ret
|
|
|
|
|
|
#define STD_EXCEPTION_COMMON(trap, label, hdlr) \
|
|
#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
|
|
* Like STD_EXCEPTION_COMMON, but for exceptions that can occur
|
|
* in the idle task and therefore need the special idle handling
|
|
* in the idle task and therefore need the special idle handling
|
|
* (finish nap and runlatch)
|
|
* (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,
|
|
* When the idle code in power4_idle puts the CPU into NAP mode,
|