Lines Matching refs:regs

49 kmmio_fault(struct pt_regs *regs, unsigned long addr)  in kmmio_fault()  argument
52 if (kmmio_handler(regs, addr) == 1) in kmmio_fault()
57 static nokprobe_inline int kprobes_fault(struct pt_regs *regs) in kprobes_fault() argument
62 if (kprobes_built_in() && !user_mode(regs)) { in kprobes_fault()
64 if (kprobe_running() && kprobe_fault_handler(regs, 14)) in kprobes_fault()
88 check_prefetch_opcode(struct pt_regs *regs, unsigned char *instr, in check_prefetch_opcode() argument
113 return (!user_mode(regs) || user_64bit_mode(regs)); in check_prefetch_opcode()
135 is_prefetch(struct pt_regs *regs, unsigned long error_code, unsigned long addr) in is_prefetch() argument
148 instr = (void *)convert_ip_to_linear(current, regs); in is_prefetch()
151 if (user_mode(regs) && instr >= (unsigned char *)TASK_SIZE_MAX) in is_prefetch()
162 if (!check_prefetch_opcode(regs, instr, opcode, &prefetch)) in is_prefetch()
303 check_v8086_mode(struct pt_regs *regs, unsigned long address, in check_v8086_mode() argument
308 if (!v8086_mode(regs)) in check_v8086_mode()
451 check_v8086_mode(struct pt_regs *regs, unsigned long address, in check_v8086_mode() argument
523 static int is_errata93(struct pt_regs *regs, unsigned long address) in is_errata93() argument
530 if (address != regs->ip) in is_errata93()
540 regs->ip = address; in is_errata93()
555 static int is_errata100(struct pt_regs *regs, unsigned long address) in is_errata100() argument
558 if ((regs->cs == __USER32_CS || (regs->cs & (1<<2))) && (address >> 32)) in is_errata100()
564 static int is_f00f_bug(struct pt_regs *regs, unsigned long address) in is_f00f_bug() argument
576 do_invalid_op(regs, 0); in is_f00f_bug()
590 show_fault_oops(struct pt_regs *regs, unsigned long error_code, in show_fault_oops() argument
622 printk_address(regs->ip); in show_fault_oops()
628 pgtable_bad(struct pt_regs *regs, unsigned long error_code, in pgtable_bad() argument
647 if (__die("Bad pagetable", regs, error_code)) in pgtable_bad()
650 oops_end(flags, regs, sig); in pgtable_bad()
654 no_context(struct pt_regs *regs, unsigned long error_code, in no_context() argument
662 if (fixup_exception(regs)) { in no_context()
703 if (is_prefetch(regs, error_code, address)) in no_context()
706 if (is_errata93(regs, address)) in no_context()
715 show_fault_oops(regs, error_code, address); in no_context()
725 if (__die("Oops", regs, error_code)) in no_context()
731 oops_end(flags, regs, sig); in no_context()
739 show_signal_msg(struct pt_regs *regs, unsigned long error_code, in show_signal_msg() argument
751 (void *)regs->ip, (void *)regs->sp, error_code); in show_signal_msg()
753 print_vma_addr(KERN_CONT " in ", regs->ip); in show_signal_msg()
759 __bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code, in __bad_area_nosemaphore() argument
775 if (is_prefetch(regs, error_code, address)) in __bad_area_nosemaphore()
778 if (is_errata100(regs, address)) in __bad_area_nosemaphore()
788 if (emulate_vsyscall(regs, address)) in __bad_area_nosemaphore()
797 show_signal_msg(regs, error_code, address, tsk); in __bad_area_nosemaphore()
808 if (is_f00f_bug(regs, address)) in __bad_area_nosemaphore()
811 no_context(regs, error_code, address, SIGSEGV, si_code); in __bad_area_nosemaphore()
815 bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code, in bad_area_nosemaphore() argument
818 __bad_area_nosemaphore(regs, error_code, address, SEGV_MAPERR); in bad_area_nosemaphore()
822 __bad_area(struct pt_regs *regs, unsigned long error_code, in __bad_area() argument
833 __bad_area_nosemaphore(regs, error_code, address, si_code); in __bad_area()
837 bad_area(struct pt_regs *regs, unsigned long error_code, unsigned long address) in bad_area() argument
839 __bad_area(regs, error_code, address, SEGV_MAPERR); in bad_area()
843 bad_area_access_error(struct pt_regs *regs, unsigned long error_code, in bad_area_access_error() argument
846 __bad_area(regs, error_code, address, SEGV_ACCERR); in bad_area_access_error()
850 do_sigbus(struct pt_regs *regs, unsigned long error_code, unsigned long address, in do_sigbus() argument
858 no_context(regs, error_code, address, SIGBUS, BUS_ADRERR); in do_sigbus()
863 if (is_prefetch(regs, error_code, address)) in do_sigbus()
882 mm_fault_error(struct pt_regs *regs, unsigned long error_code, in mm_fault_error() argument
886 no_context(regs, error_code, address, 0, 0); in mm_fault_error()
893 no_context(regs, error_code, address, in mm_fault_error()
907 do_sigbus(regs, error_code, address, fault); in mm_fault_error()
909 bad_area_nosemaphore(regs, error_code, address); in mm_fault_error()
1034 static inline bool smap_violation(int error_code, struct pt_regs *regs) in smap_violation() argument
1045 if (!user_mode(regs) && (regs->flags & X86_EFLAGS_AC)) in smap_violation()
1061 __do_page_fault(struct pt_regs *regs, unsigned long error_code, in __do_page_fault() argument
1077 if (kmemcheck_active(regs)) in __do_page_fault()
1078 kmemcheck_hide(regs); in __do_page_fault()
1081 if (unlikely(kmmio_fault(regs, address))) in __do_page_fault()
1102 if (kmemcheck_fault(regs, address, error_code)) in __do_page_fault()
1111 if (kprobes_fault(regs)) in __do_page_fault()
1117 bad_area_nosemaphore(regs, error_code, address); in __do_page_fault()
1123 if (unlikely(kprobes_fault(regs))) in __do_page_fault()
1127 pgtable_bad(regs, error_code, address); in __do_page_fault()
1129 if (unlikely(smap_violation(error_code, regs))) { in __do_page_fault()
1130 bad_area_nosemaphore(regs, error_code, address); in __do_page_fault()
1139 bad_area_nosemaphore(regs, error_code, address); in __do_page_fault()
1150 if (user_mode(regs)) { in __do_page_fault()
1155 if (regs->flags & X86_EFLAGS_IF) in __do_page_fault()
1159 perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address); in __do_page_fault()
1182 !search_exception_tables(regs->ip)) { in __do_page_fault()
1183 bad_area_nosemaphore(regs, error_code, address); in __do_page_fault()
1199 bad_area(regs, error_code, address); in __do_page_fault()
1205 bad_area(regs, error_code, address); in __do_page_fault()
1215 if (unlikely(address + 65536 + 32 * sizeof(unsigned long) < regs->sp)) { in __do_page_fault()
1216 bad_area(regs, error_code, address); in __do_page_fault()
1221 bad_area(regs, error_code, address); in __do_page_fault()
1231 bad_area_access_error(regs, error_code, address); in __do_page_fault()
1263 no_context(regs, error_code, address, SIGBUS, BUS_ADRERR); in __do_page_fault()
1269 mm_fault_error(regs, error_code, address, fault); in __do_page_fault()
1279 perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MAJ, 1, regs, address); in __do_page_fault()
1282 perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MIN, 1, regs, address); in __do_page_fault()
1285 check_v8086_mode(regs, address, tsk); in __do_page_fault()
1290 do_page_fault(struct pt_regs *regs, unsigned long error_code) in do_page_fault() argument
1304 __do_page_fault(regs, error_code, address); in do_page_fault()
1311 trace_page_fault_entries(unsigned long address, struct pt_regs *regs, in trace_page_fault_entries() argument
1314 if (user_mode(regs)) in trace_page_fault_entries()
1315 trace_page_fault_user(address, regs, error_code); in trace_page_fault_entries()
1317 trace_page_fault_kernel(address, regs, error_code); in trace_page_fault_entries()
1321 trace_do_page_fault(struct pt_regs *regs, unsigned long error_code) in trace_do_page_fault() argument
1333 trace_page_fault_entries(address, regs, error_code); in trace_do_page_fault()
1334 __do_page_fault(regs, error_code, address); in trace_do_page_fault()