diff options
author | Nicholas Piggin <[email protected]> | 2021-01-30 23:08:24 +1000 |
---|---|---|
committer | Michael Ellerman <[email protected]> | 2021-02-09 00:02:10 +1100 |
commit | f4c03b0e520c5f56e569a8da3fce5ddbd0696742 (patch) | |
tree | 36bfa25dfd766e2c6b8f0555d2453ffef8b85ded /arch/powerpc/mm/fault.c | |
parent | 4cb8428465148bcca0b6b8593d51f805818a70e0 (diff) |
powerpc/64s: move bad_page_fault handling to C
This simplifies code, and it is also useful when introducing
interrupt handler wrappers when introducing wrapper functionality
that doesn't cope with asm entry code calling into more than one
handler function.
32-bit and 64e still have some such cases, which limits some ways
they can use interrupt wrappers.
Signed-off-by: Nicholas Piggin <[email protected]>
Signed-off-by: Michael Ellerman <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Diffstat (limited to 'arch/powerpc/mm/fault.c')
-rw-r--r-- | arch/powerpc/mm/fault.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c index 970ac317e018..fc2d9a27c649 100644 --- a/arch/powerpc/mm/fault.c +++ b/arch/powerpc/mm/fault.c @@ -557,6 +557,10 @@ long do_page_fault(struct pt_regs *regs) if (likely(entry)) { instruction_pointer_set(regs, extable_fixup(entry)); err = 0; + } else if (IS_ENABLED(CONFIG_PPC_BOOK3S_64)) { + /* 32 and 64e handle this in asm */ + __bad_page_fault(regs, err); + err = 0; } out: |