do_page_fault
asmlinkage void do_page_fault(unsigned long address, unsigned long mmcsr,
extern void do_page_fault(unsigned long, struct pt_regs *);
return do_page_fault(addr, fsr, regs);
{ do_page_fault, SIGSEGV, SEGV_MAPERR, "page translation fault" },
{ do_page_fault, SIGSEGV, SEGV_ACCERR, "page permission fault" },
{ do_page_fault, SIGSEGV, SEGV_MAPERR, "page translation fault" },
{ do_page_fault, SIGSEGV, SEGV_ACCERR, "page permission fault" },
{ do_page_fault, SIGSEGV, SEGV_MAPERR, "level 3 translation fault" },
{ do_page_fault, SIGSEGV, SEGV_ACCERR, "level 2 access flag fault" },
{ do_page_fault, SIGSEGV, SEGV_ACCERR, "level 3 access flag fault" },
{ do_page_fault, SIGSEGV, SEGV_ACCERR, "level 2 permission fault" },
{ do_page_fault, SIGSEGV, SEGV_ACCERR, "level 3 permission fault" },
return do_page_fault(far, esr, regs);
{ do_page_fault, SIGSEGV, SEGV_ACCERR, "level 0 access flag fault" },
{ do_page_fault, SIGSEGV, SEGV_ACCERR, "level 1 access flag fault" },
{ do_page_fault, SIGSEGV, SEGV_ACCERR, "level 2 access flag fault" },
{ do_page_fault, SIGSEGV, SEGV_ACCERR, "level 3 access flag fault" },
{ do_page_fault, SIGSEGV, SEGV_ACCERR, "level 0 permission fault" },
{ do_page_fault, SIGSEGV, SEGV_ACCERR, "level 1 permission fault" },
{ do_page_fault, SIGSEGV, SEGV_ACCERR, "level 2 permission fault" },
{ do_page_fault, SIGSEGV, SEGV_ACCERR, "level 3 permission fault" },
asmlinkage void do_page_fault(struct pt_regs *regs);
do_page_fault(badvadr, FLT_LOAD, regs);
do_page_fault(badvadr, FLT_STORE, regs);
do_page_fault(badvadr, FLT_IFETCH, regs);
asmlinkage void __kprobes do_page_fault(struct pt_regs *regs,
if (do_page_fault(fp, (unsigned long)mem, 3))
do_page_fault(&fp->ptregs, addr, errorcode);
if (do_page_fault(&fp->ptregs, addr, errorcode)) {
do_page_fault (&fp->ptregs, addr, errorcode);
do_page_fault (&fp->ptregs, addr, 0);
if (do_page_fault (&fp->ptregs, addr, errorcode) < 0)
do_page_fault (&fp->ptregs, addr, 0);
do_page_fault(&fp->ptregs, addr, err_code);
int do_page_fault(struct pt_regs *regs, unsigned long address,
void do_page_fault(struct pt_regs *regs, unsigned long address,
asmlinkage void do_page_fault(struct pt_regs *regs,
NOKPROBE_SYMBOL(do_page_fault);
void do_page_fault(struct pt_regs *regs, unsigned long cause,
asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long address,
void do_page_fault(struct pt_regs *regs, unsigned long code,
do_page_fault(regs, code, fault_address);
DECLARE_INTERRUPT_HANDLER(do_page_fault);
bl do_page_fault; \
bl do_page_fault; \
DEFINE_INTERRUPT_HANDLER(do_page_fault)
asmlinkage void do_page_fault(struct pt_regs *regs);
ALTERNATIVE(__stringify(RISCV_PTR do_page_fault), \
asmlinkage void do_page_fault(struct pt_regs *regs,
void do_page_fault(struct pt_regs *regs);
{ EXCCAUSE_ITLB_MISS, 0, do_page_fault },
{ EXCCAUSE_DTLB_MISS, 0, do_page_fault },
{ EXCCAUSE_ITLB_PRIVILEGE, 0, do_page_fault },
{ EXCCAUSE_FETCH_CACHE_ATTRIBUTE, 0, do_page_fault },
{ EXCCAUSE_DTLB_PRIVILEGE, 0, do_page_fault },
{ EXCCAUSE_STORE_CACHE_ATTRIBUTE, 0, do_page_fault },
{ EXCCAUSE_LOAD_CACHE_ATTRIBUTE, 0, do_page_fault },