diff options
author | Christophe Leroy <christophe.leroy@csgroup.eu> | 2021-01-30 23:08:13 +1000 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2021-02-09 00:02:08 +1100 |
commit | 7a24ae2e172f770df07f8e48ed3ed2f3a6b17e37 (patch) | |
tree | 96584b167d91c87a5c0e2ba5e8ffb38729a16f8a /arch/powerpc/kernel/head_book3s_32.S | |
parent | 112665286d08c87e66d699e7cba43c1497ad165f (diff) |
powerpc/32s: move DABR match out of handle_page_fault
handle_page_fault() has some code dedicated to book3s/32 to
call do_break() when the DSI is a DABR match.
On other platforms, do_break() is handled separately.
Do the same for book3s/32, do it earlier in the process of DSI.
This change also avoid doing the test on ISI.
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20210130130852.2952424-4-npiggin@gmail.com
Diffstat (limited to 'arch/powerpc/kernel/head_book3s_32.S')
-rw-r--r-- | arch/powerpc/kernel/head_book3s_32.S | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/head_book3s_32.S b/arch/powerpc/kernel/head_book3s_32.S index c02024bce544..0c4fcb6e1a35 100644 --- a/arch/powerpc/kernel/head_book3s_32.S +++ b/arch/powerpc/kernel/head_book3s_32.S @@ -690,7 +690,10 @@ handle_page_fault_tramp_1: lwz r5, _DSISR(r11) /* fall through */ handle_page_fault_tramp_2: + andis. r0, r5, DSISR_DABRMATCH@h + bne- 1f EXC_XFER_LITE(0x300, handle_page_fault) +1: EXC_XFER_STD(0x300, do_break) #ifdef CONFIG_VMAP_STACK #ifdef CONFIG_PPC_BOOK3S_604 |