Lines Matching refs:error_code
123 is_prefetch(struct pt_regs *regs, unsigned long error_code, unsigned long addr) in is_prefetch() argument
137 if (error_code & X86_PF_INSTR) in is_prefetch()
464 static int is_f00f_bug(struct pt_regs *regs, unsigned long error_code, in is_f00f_bug() argument
468 if (boot_cpu_has_bug(X86_BUG_F00F) && !(error_code & X86_PF_USER) && in is_f00f_bug()
509 show_fault_oops(struct pt_regs *regs, unsigned long error_code, unsigned long address) in show_fault_oops() argument
514 if (error_code & X86_PF_INSTR) { in show_fault_oops()
543 (error_code & X86_PF_USER) ? "user" : "supervisor", in show_fault_oops()
544 (error_code & X86_PF_INSTR) ? "instruction fetch" : in show_fault_oops()
545 (error_code & X86_PF_WRITE) ? "write access" : in show_fault_oops()
548 pr_alert("#PF: error_code(0x%04lx) - %s\n", error_code, in show_fault_oops()
549 !(error_code & X86_PF_PROT) ? "not-present page" : in show_fault_oops()
550 (error_code & X86_PF_RSVD) ? "reserved bit violation" : in show_fault_oops()
551 (error_code & X86_PF_PK) ? "protection keys violation" : in show_fault_oops()
552 (error_code & X86_PF_RMP) ? "RMP violation" : in show_fault_oops()
555 if (!(error_code & X86_PF_USER) && user_mode(regs)) { in show_fault_oops()
586 if (error_code & X86_PF_RMP) in show_fault_oops()
591 pgtable_bad(struct pt_regs *regs, unsigned long error_code, in pgtable_bad() argument
606 if (__die("Bad pagetable", regs, error_code)) in pgtable_bad()
613 unsigned long *error_code) in sanitize_error_code() argument
625 *error_code |= X86_PF_PROT; in sanitize_error_code()
629 unsigned long error_code) in set_signal_archinfo() argument
634 tsk->thread.error_code = error_code | X86_PF_USER; in set_signal_archinfo()
639 page_fault_oops(struct pt_regs *regs, unsigned long error_code, in page_fault_oops() argument
692 if (!(error_code & X86_PF_PROT) && in page_fault_oops()
693 kfence_handle_page_fault(address, error_code & X86_PF_WRITE, regs)) in page_fault_oops()
703 show_fault_oops(regs, error_code, address); in page_fault_oops()
709 if (__die("Oops", regs, error_code)) in page_fault_oops()
719 kernelmode_fixup_or_oops(struct pt_regs *regs, unsigned long error_code, in kernelmode_fixup_or_oops() argument
726 if (fixup_exception(regs, X86_TRAP_PF, error_code, address)) in kernelmode_fixup_or_oops()
733 if (is_prefetch(regs, error_code, address)) in kernelmode_fixup_or_oops()
736 page_fault_oops(regs, error_code, address); in kernelmode_fixup_or_oops()
744 show_signal_msg(struct pt_regs *regs, unsigned long error_code, in show_signal_msg() argument
759 (void *)regs->ip, (void *)regs->sp, error_code); in show_signal_msg()
777 __bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code, in __bad_area_nosemaphore() argument
783 kernelmode_fixup_or_oops(regs, error_code, address, in __bad_area_nosemaphore()
788 if (!(error_code & X86_PF_USER)) { in __bad_area_nosemaphore()
790 page_fault_oops(regs, error_code, address); in __bad_area_nosemaphore()
804 if (is_prefetch(regs, error_code, address)) in __bad_area_nosemaphore()
810 sanitize_error_code(address, &error_code); in __bad_area_nosemaphore()
812 if (fixup_vdso_exception(regs, X86_TRAP_PF, error_code, address)) in __bad_area_nosemaphore()
816 show_signal_msg(regs, error_code, address, tsk); in __bad_area_nosemaphore()
818 set_signal_archinfo(address, error_code); in __bad_area_nosemaphore()
829 bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code, in bad_area_nosemaphore() argument
832 __bad_area_nosemaphore(regs, error_code, address, 0, SEGV_MAPERR); in bad_area_nosemaphore()
836 __bad_area(struct pt_regs *regs, unsigned long error_code, in __bad_area() argument
849 __bad_area_nosemaphore(regs, error_code, address, pkey, si_code); in __bad_area()
852 static inline bool bad_area_access_from_pkeys(unsigned long error_code, in bad_area_access_from_pkeys() argument
860 if (error_code & X86_PF_PK) in bad_area_access_from_pkeys()
863 if (!arch_vma_access_permitted(vma, (error_code & X86_PF_WRITE), in bad_area_access_from_pkeys()
864 (error_code & X86_PF_INSTR), foreign)) in bad_area_access_from_pkeys()
870 bad_area_access_error(struct pt_regs *regs, unsigned long error_code, in bad_area_access_error() argument
879 if (bad_area_access_from_pkeys(error_code, vma)) { in bad_area_access_error()
902 __bad_area(regs, error_code, address, mm, vma, pkey, SEGV_PKUERR); in bad_area_access_error()
904 __bad_area(regs, error_code, address, mm, vma, 0, SEGV_ACCERR); in bad_area_access_error()
909 do_sigbus(struct pt_regs *regs, unsigned long error_code, unsigned long address, in do_sigbus() argument
914 kernelmode_fixup_or_oops(regs, error_code, address, in do_sigbus()
920 if (is_prefetch(regs, error_code, address)) in do_sigbus()
923 sanitize_error_code(address, &error_code); in do_sigbus()
925 if (fixup_vdso_exception(regs, X86_TRAP_PF, error_code, address)) in do_sigbus()
928 set_signal_archinfo(address, error_code); in do_sigbus()
949 static int spurious_kernel_fault_check(unsigned long error_code, pte_t *pte) in spurious_kernel_fault_check() argument
951 if ((error_code & X86_PF_WRITE) && !pte_write(*pte)) in spurious_kernel_fault_check()
954 if ((error_code & X86_PF_INSTR) && !pte_exec(*pte)) in spurious_kernel_fault_check()
982 spurious_kernel_fault(unsigned long error_code, unsigned long address) in spurious_kernel_fault() argument
1000 if (error_code != (X86_PF_WRITE | X86_PF_PROT) && in spurious_kernel_fault()
1001 error_code != (X86_PF_INSTR | X86_PF_PROT)) in spurious_kernel_fault()
1013 return spurious_kernel_fault_check(error_code, (pte_t *) p4d); in spurious_kernel_fault()
1020 return spurious_kernel_fault_check(error_code, (pte_t *) pud); in spurious_kernel_fault()
1027 return spurious_kernel_fault_check(error_code, (pte_t *) pmd); in spurious_kernel_fault()
1033 ret = spurious_kernel_fault_check(error_code, pte); in spurious_kernel_fault()
1041 ret = spurious_kernel_fault_check(error_code, (pte_t *) pmd); in spurious_kernel_fault()
1051 access_error(unsigned long error_code, struct vm_area_struct *vma) in access_error() argument
1061 if (error_code & X86_PF_PK) in access_error()
1073 if (unlikely(error_code & X86_PF_SGX)) in access_error()
1081 if (!arch_vma_access_permitted(vma, (error_code & X86_PF_WRITE), in access_error()
1082 (error_code & X86_PF_INSTR), foreign)) in access_error()
1089 if (error_code & X86_PF_SHSTK) { in access_error()
1097 if (error_code & X86_PF_WRITE) { in access_error()
1107 if (unlikely(error_code & X86_PF_PROT)) in access_error()
1210 unsigned long error_code, in do_user_addr_fault() argument
1222 if (unlikely((error_code & (X86_PF_USER | X86_PF_INSTR)) == X86_PF_INSTR)) { in do_user_addr_fault()
1233 page_fault_oops(regs, error_code, address); in do_user_addr_fault()
1245 if (unlikely(error_code & X86_PF_RSVD)) in do_user_addr_fault()
1246 pgtable_bad(regs, error_code, address); in do_user_addr_fault()
1256 !(error_code & X86_PF_USER) && in do_user_addr_fault()
1262 page_fault_oops(regs, error_code, address); in do_user_addr_fault()
1271 bad_area_nosemaphore(regs, error_code, address); in do_user_addr_fault()
1277 bad_area_nosemaphore(regs, error_code, address); in do_user_addr_fault()
1291 if (error_code & X86_PF_SHSTK) in do_user_addr_fault()
1293 if (error_code & X86_PF_WRITE) in do_user_addr_fault()
1295 if (error_code & X86_PF_INSTR) in do_user_addr_fault()
1319 if (emulate_vsyscall(error_code, regs, address)) in do_user_addr_fault()
1331 if (unlikely(access_error(error_code, vma))) { in do_user_addr_fault()
1332 bad_area_access_error(regs, error_code, address, NULL, vma); in do_user_addr_fault()
1351 kernelmode_fixup_or_oops(regs, error_code, address, in do_user_addr_fault()
1361 bad_area_nosemaphore(regs, error_code, address); in do_user_addr_fault()
1369 if (unlikely(access_error(error_code, vma))) { in do_user_addr_fault()
1370 bad_area_access_error(regs, error_code, address, mm, vma); in do_user_addr_fault()
1395 kernelmode_fixup_or_oops(regs, error_code, address, in do_user_addr_fault()
1421 kernelmode_fixup_or_oops(regs, error_code, address, in do_user_addr_fault()
1429 kernelmode_fixup_or_oops(regs, error_code, address, in do_user_addr_fault()
1444 do_sigbus(regs, error_code, address, fault); in do_user_addr_fault()
1446 bad_area_nosemaphore(regs, error_code, address); in do_user_addr_fault()
1454 trace_page_fault_entries(struct pt_regs *regs, unsigned long error_code, in trace_page_fault_entries() argument
1458 trace_page_fault_user(address, regs, error_code); in trace_page_fault_entries()
1460 trace_page_fault_kernel(address, regs, error_code); in trace_page_fault_entries()
1464 handle_page_fault(struct pt_regs *regs, unsigned long error_code, in handle_page_fault() argument
1467 trace_page_fault_entries(regs, error_code, address); in handle_page_fault()
1474 do_kern_addr_fault(regs, error_code, address); in handle_page_fault()
1476 do_user_addr_fault(regs, error_code, address); in handle_page_fault()
1532 handle_page_fault(regs, error_code, address); in DEFINE_IDTENTRY_RAW_ERRORCODE()