Lines Matching refs:fsr

106 static inline bool is_write_fault(unsigned int fsr)
108 return (fsr & FSR_WRITE) && !(fsr & FSR_CM);
111 static inline bool is_translation_fault(unsigned int fsr)
113 int fs = fsr_fs(fsr);
125 unsigned long addr, unsigned int fsr,
131 msg, addr, fsr & FSR_LNX_PF ? "execute" :
132 fsr & FSR_WRITE ? "write" : "read");
135 die("Oops", regs, fsr);
144 __do_kernel_fault(struct mm_struct *mm, unsigned long addr, unsigned int fsr,
160 if (is_translation_fault(fsr) &&
161 kfence_handle_page_fault(addr, is_write_fault(fsr), regs))
167 die_kernel_fault(msg, mm, addr, fsr, regs);
175 __do_user_fault(unsigned long addr, unsigned int fsr, unsigned int sig,
188 tsk->comm, sig, addr, fsr);
201 tsk->thread.error_code = fsr;
206 void do_bad_area(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
216 __do_user_fault(addr, fsr, SIGSEGV, SEGV_MAPERR, regs);
218 __do_kernel_fault(mm, addr, fsr, regs);
225 static inline bool is_permission_fault(unsigned int fsr)
227 int fs = fsr_fs(fsr);
239 do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
248 if (kprobe_page_fault(regs, fsr))
266 if (is_write_fault(fsr)) {
271 if (fsr & FSR_LNX_PF) {
274 if (is_permission_fault(fsr) && !user_mode(regs))
276 mm, addr, fsr, regs);
361 __do_user_fault(addr, fsr, sig, code, regs);
365 __do_kernel_fault(mm, addr, fsr, regs);
370 do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
395 do_translation_fault(unsigned long addr, unsigned int fsr,
405 return do_page_fault(addr, fsr, regs);
457 do_bad_area(addr, fsr, regs);
462 do_translation_fault(unsigned long addr, unsigned int fsr,
475 do_sect_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
477 do_bad_area(addr, fsr, regs);
486 do_bad(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
492 int (*fn)(unsigned long addr, unsigned int fsr, struct pt_regs *regs);
500 #include "fsr-3level.c"
502 #include "fsr-2level.c"
522 do_DataAbort(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
524 const struct fsr_info *inf = fsr_info + fsr_fs(fsr);
526 if (!inf->fn(addr, fsr & ~FSR_LNX_PF, regs))
531 inf->name, fsr, addr);
535 fsr, 0);
571 static int __init early_abort_handler(unsigned long addr, unsigned int fsr,
576 "firmware/bootloader bug.\n", fsr);