Lines Matching refs:regs

51 kmmio_fault(struct pt_regs *regs, unsigned long addr)  in kmmio_fault()  argument
54 if (kmmio_handler(regs, addr) == 1) in kmmio_fault()
59 static nokprobe_inline int kprobes_fault(struct pt_regs *regs) in kprobes_fault() argument
64 if (kprobes_built_in() && !user_mode(regs)) { in kprobes_fault()
66 if (kprobe_running() && kprobe_fault_handler(regs, 14)) in kprobes_fault()
90 check_prefetch_opcode(struct pt_regs *regs, unsigned char *instr, in check_prefetch_opcode() argument
115 return (!user_mode(regs) || user_64bit_mode(regs)); in check_prefetch_opcode()
137 is_prefetch(struct pt_regs *regs, unsigned long error_code, unsigned long addr) in is_prefetch() argument
150 instr = (void *)convert_ip_to_linear(current, regs); in is_prefetch()
153 if (user_mode(regs) && instr >= (unsigned char *)TASK_SIZE_MAX) in is_prefetch()
164 if (!check_prefetch_opcode(regs, instr, opcode, &prefetch)) in is_prefetch()
305 check_v8086_mode(struct pt_regs *regs, unsigned long address, in check_v8086_mode() argument
311 if (!v8086_mode(regs) || !tsk->thread.vm86) in check_v8086_mode()
455 check_v8086_mode(struct pt_regs *regs, unsigned long address, in check_v8086_mode() argument
527 static int is_errata93(struct pt_regs *regs, unsigned long address) in is_errata93() argument
534 if (address != regs->ip) in is_errata93()
544 regs->ip = address; in is_errata93()
559 static int is_errata100(struct pt_regs *regs, unsigned long address) in is_errata100() argument
562 if ((regs->cs == __USER32_CS || (regs->cs & (1<<2))) && (address >> 32)) in is_errata100()
568 static int is_f00f_bug(struct pt_regs *regs, unsigned long address) in is_f00f_bug() argument
580 do_invalid_op(regs, 0); in is_f00f_bug()
594 show_fault_oops(struct pt_regs *regs, unsigned long error_code, in show_fault_oops() argument
626 printk_address(regs->ip); in show_fault_oops()
632 pgtable_bad(struct pt_regs *regs, unsigned long error_code, in pgtable_bad() argument
651 if (__die("Bad pagetable", regs, error_code)) in pgtable_bad()
654 oops_end(flags, regs, sig); in pgtable_bad()
658 no_context(struct pt_regs *regs, unsigned long error_code, in no_context() argument
666 if (fixup_exception(regs)) { in no_context()
707 if (is_prefetch(regs, error_code, address)) in no_context()
710 if (is_errata93(regs, address)) in no_context()
719 show_fault_oops(regs, error_code, address); in no_context()
729 if (__die("Oops", regs, error_code)) in no_context()
735 oops_end(flags, regs, sig); in no_context()
743 show_signal_msg(struct pt_regs *regs, unsigned long error_code, in show_signal_msg() argument
755 (void *)regs->ip, (void *)regs->sp, error_code); in show_signal_msg()
757 print_vma_addr(KERN_CONT " in ", regs->ip); in show_signal_msg()
763 __bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code, in __bad_area_nosemaphore() argument
779 if (is_prefetch(regs, error_code, address)) in __bad_area_nosemaphore()
782 if (is_errata100(regs, address)) in __bad_area_nosemaphore()
792 if (emulate_vsyscall(regs, address)) in __bad_area_nosemaphore()
801 show_signal_msg(regs, error_code, address, tsk); in __bad_area_nosemaphore()
812 if (is_f00f_bug(regs, address)) in __bad_area_nosemaphore()
815 no_context(regs, error_code, address, SIGSEGV, si_code); in __bad_area_nosemaphore()
819 bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code, in bad_area_nosemaphore() argument
822 __bad_area_nosemaphore(regs, error_code, address, SEGV_MAPERR); in bad_area_nosemaphore()
826 __bad_area(struct pt_regs *regs, unsigned long error_code, in __bad_area() argument
837 __bad_area_nosemaphore(regs, error_code, address, si_code); in __bad_area()
841 bad_area(struct pt_regs *regs, unsigned long error_code, unsigned long address) in bad_area() argument
843 __bad_area(regs, error_code, address, SEGV_MAPERR); in bad_area()
847 bad_area_access_error(struct pt_regs *regs, unsigned long error_code, in bad_area_access_error() argument
850 __bad_area(regs, error_code, address, SEGV_ACCERR); in bad_area_access_error()
854 do_sigbus(struct pt_regs *regs, unsigned long error_code, unsigned long address, in do_sigbus() argument
862 no_context(regs, error_code, address, SIGBUS, BUS_ADRERR); in do_sigbus()
867 if (is_prefetch(regs, error_code, address)) in do_sigbus()
886 mm_fault_error(struct pt_regs *regs, unsigned long error_code, in mm_fault_error() argument
890 no_context(regs, error_code, address, 0, 0); in mm_fault_error()
897 no_context(regs, error_code, address, in mm_fault_error()
911 do_sigbus(regs, error_code, address, fault); in mm_fault_error()
913 bad_area_nosemaphore(regs, error_code, address); in mm_fault_error()
1038 static inline bool smap_violation(int error_code, struct pt_regs *regs) in smap_violation() argument
1049 if (!user_mode(regs) && (regs->flags & X86_EFLAGS_AC)) in smap_violation()
1065 __do_page_fault(struct pt_regs *regs, unsigned long error_code, in __do_page_fault() argument
1081 if (kmemcheck_active(regs)) in __do_page_fault()
1082 kmemcheck_hide(regs); in __do_page_fault()
1085 if (unlikely(kmmio_fault(regs, address))) in __do_page_fault()
1106 if (kmemcheck_fault(regs, address, error_code)) in __do_page_fault()
1115 if (kprobes_fault(regs)) in __do_page_fault()
1121 bad_area_nosemaphore(regs, error_code, address); in __do_page_fault()
1127 if (unlikely(kprobes_fault(regs))) in __do_page_fault()
1131 pgtable_bad(regs, error_code, address); in __do_page_fault()
1133 if (unlikely(smap_violation(error_code, regs))) { in __do_page_fault()
1134 bad_area_nosemaphore(regs, error_code, address); in __do_page_fault()
1143 bad_area_nosemaphore(regs, error_code, address); in __do_page_fault()
1154 if (user_mode(regs)) { in __do_page_fault()
1159 if (regs->flags & X86_EFLAGS_IF) in __do_page_fault()
1163 perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address); in __do_page_fault()
1186 !search_exception_tables(regs->ip)) { in __do_page_fault()
1187 bad_area_nosemaphore(regs, error_code, address); in __do_page_fault()
1203 bad_area(regs, error_code, address); in __do_page_fault()
1209 bad_area(regs, error_code, address); in __do_page_fault()
1219 if (unlikely(address + 65536 + 32 * sizeof(unsigned long) < regs->sp)) { in __do_page_fault()
1220 bad_area(regs, error_code, address); in __do_page_fault()
1225 bad_area(regs, error_code, address); in __do_page_fault()
1235 bad_area_access_error(regs, error_code, address); in __do_page_fault()
1267 no_context(regs, error_code, address, SIGBUS, BUS_ADRERR); in __do_page_fault()
1273 mm_fault_error(regs, error_code, address, fault); in __do_page_fault()
1283 perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MAJ, 1, regs, address); in __do_page_fault()
1286 perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MIN, 1, regs, address); in __do_page_fault()
1289 check_v8086_mode(regs, address, tsk); in __do_page_fault()
1294 do_page_fault(struct pt_regs *regs, unsigned long error_code) in do_page_fault() argument
1308 __do_page_fault(regs, error_code, address); in do_page_fault()
1315 trace_page_fault_entries(unsigned long address, struct pt_regs *regs, in trace_page_fault_entries() argument
1318 if (user_mode(regs)) in trace_page_fault_entries()
1319 trace_page_fault_user(address, regs, error_code); in trace_page_fault_entries()
1321 trace_page_fault_kernel(address, regs, error_code); in trace_page_fault_entries()
1325 trace_do_page_fault(struct pt_regs *regs, unsigned long error_code) in trace_do_page_fault() argument
1337 trace_page_fault_entries(address, regs, error_code); in trace_do_page_fault()
1338 __do_page_fault(regs, error_code, address); in trace_do_page_fault()