Lines Matching refs:fsr

113 static inline bool is_write_fault(unsigned int fsr)
115 return (fsr & FSR_WRITE) && !(fsr & FSR_CM);
118 static inline bool is_translation_fault(unsigned int fsr)
120 int fs = fsr_fs(fsr);
132 unsigned long addr, unsigned int fsr,
138 msg, addr, fsr & FSR_LNX_PF ? "execute" :
139 fsr & FSR_WRITE ? "write" : "read");
142 die("Oops", regs, fsr);
151 __do_kernel_fault(struct mm_struct *mm, unsigned long addr, unsigned int fsr,
167 if (is_translation_fault(fsr) &&
168 kfence_handle_page_fault(addr, is_write_fault(fsr), regs))
174 die_kernel_fault(msg, mm, addr, fsr, regs);
182 __do_user_fault(unsigned long addr, unsigned int fsr, unsigned int sig,
195 tsk->comm, sig, addr, fsr);
208 tsk->thread.error_code = fsr;
213 void do_bad_area(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
223 __do_user_fault(addr, fsr, SIGSEGV, SEGV_MAPERR, regs);
225 __do_kernel_fault(mm, addr, fsr, regs);
232 static inline bool is_permission_fault(unsigned int fsr)
234 int fs = fsr_fs(fsr);
246 do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
255 if (kprobe_page_fault(regs, fsr))
273 if (is_write_fault(fsr)) {
278 if (fsr & FSR_LNX_PF) {
281 if (is_permission_fault(fsr) && !user_mode(regs))
283 mm, addr, fsr, regs);
400 __do_user_fault(addr, fsr, sig, code, regs);
404 __do_kernel_fault(mm, addr, fsr, regs);
409 do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
434 do_translation_fault(unsigned long addr, unsigned int fsr,
444 return do_page_fault(addr, fsr, regs);
496 do_bad_area(addr, fsr, regs);
501 do_translation_fault(unsigned long addr, unsigned int fsr,
514 do_sect_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
516 do_bad_area(addr, fsr, regs);
525 do_bad(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
531 int (*fn)(unsigned long addr, unsigned int fsr, struct pt_regs *regs);
539 #include "fsr-3level.c"
541 #include "fsr-2level.c"
561 do_DataAbort(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
563 const struct fsr_info *inf = fsr_info + fsr_fs(fsr);
565 if (!inf->fn(addr, fsr & ~FSR_LNX_PF, regs))
570 inf->name, fsr, addr);
574 fsr, 0);
611 static int __init early_abort_handler(unsigned long addr, unsigned int fsr,
616 "firmware/bootloader bug.\n", fsr);