Message ID | 1371724110-8250-3-git-send-email-tiejun.chen@windriver.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Scott Wood |
Headers | show |
On Thu, 2013-06-20 at 18:28 +0800, Tiejun Chen wrote: > We need to store thread info to these exception thread info like something > we already did for PPC32. > > Signed-off-by: Tiejun Chen <tiejun.chen@windriver.com> > --- > arch/powerpc/kernel/exceptions-64e.S | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/arch/powerpc/kernel/exceptions-64e.S b/arch/powerpc/kernel/exceptions-64e.S > index 4d8e57f..07cf657 100644 > --- a/arch/powerpc/kernel/exceptions-64e.S > +++ b/arch/powerpc/kernel/exceptions-64e.S > @@ -67,6 +67,18 @@ > std r10,PACA_##level##_STACK(r13); > #endif > > +/* Store something to exception thread info */ > +#define BOOK3E_STORE_EXC_LEVEL_THEAD_INFO(type) \ > + ld r14,PACAKSAVE(r13); \ > + CURRENT_THREAD_INFO(r14, r14); \ > + CURRENT_THREAD_INFO(r15, r1); \ > + ld r10,TI_FLAGS(r14); \ > + std r10,TI_FLAGS(r15); \ > + ld r10,TI_PREEMPT(r14); \ > + std r10,TI_PREEMPT(r15); \ > + ld r10,TI_TASK(r14); \ > + std r10,TI_TASK(r15); Where is "type" used? BTW, no need for a BOOK3E prefix for things local to this file. -Scott
On 10/19/2013 06:43 AM, Scott Wood wrote: > On Thu, 2013-06-20 at 18:28 +0800, Tiejun Chen wrote: >> We need to store thread info to these exception thread info like something >> we already did for PPC32. >> >> Signed-off-by: Tiejun Chen <tiejun.chen@windriver.com> >> --- >> arch/powerpc/kernel/exceptions-64e.S | 15 +++++++++++++++ >> 1 file changed, 15 insertions(+) >> >> diff --git a/arch/powerpc/kernel/exceptions-64e.S b/arch/powerpc/kernel/exceptions-64e.S >> index 4d8e57f..07cf657 100644 >> --- a/arch/powerpc/kernel/exceptions-64e.S >> +++ b/arch/powerpc/kernel/exceptions-64e.S >> @@ -67,6 +67,18 @@ >> std r10,PACA_##level##_STACK(r13); >> #endif >> >> +/* Store something to exception thread info */ >> +#define BOOK3E_STORE_EXC_LEVEL_THEAD_INFO(type) \ >> + ld r14,PACAKSAVE(r13); \ >> + CURRENT_THREAD_INFO(r14, r14); \ >> + CURRENT_THREAD_INFO(r15, r1); \ >> + ld r10,TI_FLAGS(r14); \ >> + std r10,TI_FLAGS(r15); \ >> + ld r10,TI_PREEMPT(r14); \ >> + std r10,TI_PREEMPT(r15); \ >> + ld r10,TI_TASK(r14); \ >> + std r10,TI_TASK(r15); > > Where is "type" used? > Yes, its noting now but its worth leaving this to extend something in the future. > BTW, no need for a BOOK3E prefix for things local to this file. > What about "EXC_LEVEL_EXCEPTION_PROLOG"? Please see next version. Thanks, Tiejun
diff --git a/arch/powerpc/kernel/exceptions-64e.S b/arch/powerpc/kernel/exceptions-64e.S index 4d8e57f..07cf657 100644 --- a/arch/powerpc/kernel/exceptions-64e.S +++ b/arch/powerpc/kernel/exceptions-64e.S @@ -67,6 +67,18 @@ std r10,PACA_##level##_STACK(r13); #endif +/* Store something to exception thread info */ +#define BOOK3E_STORE_EXC_LEVEL_THEAD_INFO(type) \ + ld r14,PACAKSAVE(r13); \ + CURRENT_THREAD_INFO(r14, r14); \ + CURRENT_THREAD_INFO(r15, r1); \ + ld r10,TI_FLAGS(r14); \ + std r10,TI_FLAGS(r15); \ + ld r10,TI_PREEMPT(r14); \ + std r10,TI_PREEMPT(r15); \ + ld r10,TI_TASK(r14); \ + std r10,TI_TASK(r15); + /* Exception prolog code for all exceptions */ #define EXCEPTION_PROLOG(n, intnum, type, addition) \ mtspr SPRN_SPRG_##type##_SCRATCH,r13; /* get spare registers */ \ @@ -104,6 +116,7 @@ BOOK3E_LOAD_EXC_LEVEL_STACK(CRIT); \ ld r1,PACA_CRIT_STACK(r13); \ subi r1,r1,SPECIAL_EXC_FRAME_SIZE; \ + BOOK3E_STORE_EXC_LEVEL_THEAD_INFO(CRIT); \ 1: #define SPRN_CRIT_SRR0 SPRN_CSRR0 #define SPRN_CRIT_SRR1 SPRN_CSRR1 @@ -114,6 +127,7 @@ BOOK3E_LOAD_EXC_LEVEL_STACK(DBG); \ ld r1,PACA_DBG_STACK(r13); \ subi r1,r1,SPECIAL_EXC_FRAME_SIZE; \ + BOOK3E_STORE_EXC_LEVEL_THEAD_INFO(DBG); \ 1: #define SPRN_DBG_SRR0 SPRN_DSRR0 #define SPRN_DBG_SRR1 SPRN_DSRR1 @@ -124,6 +138,7 @@ BOOK3E_LOAD_EXC_LEVEL_STACK(MC); \ ld r1,PACA_MC_STACK(r13); \ subi r1,r1,SPECIAL_EXC_FRAME_SIZE; \ + BOOK3E_STORE_EXC_LEVEL_THEAD_INFO(MC); \ 1: #define SPRN_MC_SRR0 SPRN_MCSRR0 #define SPRN_MC_SRR1 SPRN_MCSRR1
We need to store thread info to these exception thread info like something we already did for PPC32. Signed-off-by: Tiejun Chen <tiejun.chen@windriver.com> --- arch/powerpc/kernel/exceptions-64e.S | 15 +++++++++++++++ 1 file changed, 15 insertions(+)