powerpc/64s: add do_bad_page_fault_segv handler
This function acts like an interrupt handler so it needs to follow the standard interrupt handler function signature which will be introduced in a future change. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20210130130852.2952424-13-npiggin@gmail.com
This commit is contained in:
Родитель
8458c628a5
Коммит
71f47976fa
|
@ -114,6 +114,7 @@ struct pt_regs;
|
|||
long do_page_fault(struct pt_regs *);
|
||||
void bad_page_fault(struct pt_regs *, int);
|
||||
void __bad_page_fault(struct pt_regs *regs, int sig);
|
||||
void do_bad_page_fault_segv(struct pt_regs *regs);
|
||||
extern void _exception(int, struct pt_regs *, int, unsigned long);
|
||||
extern void _exception_pkey(struct pt_regs *, unsigned long, int);
|
||||
extern void die(const char *, struct pt_regs *, long);
|
||||
|
|
|
@ -2151,9 +2151,7 @@ EXC_COMMON_BEGIN(h_data_storage_common)
|
|||
GEN_COMMON h_data_storage
|
||||
addi r3,r1,STACK_FRAME_OVERHEAD
|
||||
BEGIN_MMU_FTR_SECTION
|
||||
ld r4,_DAR(r1)
|
||||
li r5,SIGSEGV
|
||||
bl bad_page_fault
|
||||
bl do_bad_page_fault_segv
|
||||
MMU_FTR_SECTION_ELSE
|
||||
bl unknown_exception
|
||||
ALT_MMU_FTR_SECTION_END_IFSET(MMU_FTR_TYPE_RADIX)
|
||||
|
|
|
@ -615,3 +615,10 @@ void bad_page_fault(struct pt_regs *regs, int sig)
|
|||
else
|
||||
__bad_page_fault(regs, sig);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PPC_BOOK3S_64
|
||||
void do_bad_page_fault_segv(struct pt_regs *regs)
|
||||
{
|
||||
bad_page_fault(regs, SIGSEGV);
|
||||
}
|
||||
#endif
|
||||
|
|
Загрузка…
Ссылка в новой задаче