diff options
| author | Thomas Gleixner <tglx@linutronix.de> | 2018-07-19 23:11:52 +0200 |
|---|---|---|
| committer | Thomas Gleixner <tglx@linutronix.de> | 2018-07-19 23:11:52 +0200 |
| commit | 73ab603f44149ff48889d5109ea9ab64bf38cc69 (patch) | |
| tree | 9550d8fb31ddf6dffedf1f602ed44769e529c1d3 /arch/openrisc/kernel/head.S | |
| parent | 41afb1dfad4d6af0c716746f6a15f3230482955c (diff) | |
| parent | fb7d1bcf1602b46f37ada72178516c01a250e434 (diff) | |
| download | linux-73ab603f44149ff48889d5109ea9ab64bf38cc69.tar.gz linux-73ab603f44149ff48889d5109ea9ab64bf38cc69.tar.bz2 linux-73ab603f44149ff48889d5109ea9ab64bf38cc69.zip | |
Merge branch 'linus' into x86/timers
Pick up upstream changes to avoid conflicts
Diffstat (limited to 'arch/openrisc/kernel/head.S')
| -rw-r--r-- | arch/openrisc/kernel/head.S | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/arch/openrisc/kernel/head.S b/arch/openrisc/kernel/head.S index fb02b2a1d6f2..9fc6b60140f0 100644 --- a/arch/openrisc/kernel/head.S +++ b/arch/openrisc/kernel/head.S @@ -210,8 +210,7 @@ * r4 - EEAR exception EA * r10 - current pointing to current_thread_info struct * r12 - syscall 0, since we didn't come from syscall - * r13 - temp it actually contains new SR, not needed anymore - * r31 - handler address of the handler we'll jump to + * r30 - handler address of the handler we'll jump to * * handler has to save remaining registers to the exception * ksp frame *before* tainting them! @@ -244,6 +243,7 @@ /* r1 is KSP, r30 is __pa(KSP) */ ;\ tophys (r30,r1) ;\ l.sw PT_GPR12(r30),r12 ;\ + /* r4 use for tmp before EA */ ;\ l.mfspr r12,r0,SPR_EPCR_BASE ;\ l.sw PT_PC(r30),r12 ;\ l.mfspr r12,r0,SPR_ESR_BASE ;\ @@ -263,7 +263,10 @@ /* r12 == 1 if we come from syscall */ ;\ CLEAR_GPR(r12) ;\ /* ----- turn on MMU ----- */ ;\ - l.ori r30,r0,(EXCEPTION_SR) ;\ + /* Carry DSX into exception SR */ ;\ + l.mfspr r30,r0,SPR_SR ;\ + l.andi r30,r30,SPR_SR_DSX ;\ + l.ori r30,r30,(EXCEPTION_SR) ;\ l.mtspr r0,r30,SPR_ESR_BASE ;\ /* r30: EA address of handler */ ;\ LOAD_SYMBOL_2_GPR(r30,handler) ;\ |
