Lines Matching refs:address
54 __bad_area_nosemaphore(struct pt_regs *regs, unsigned long address, int si_code) in __bad_area_nosemaphore() argument
64 _exception(SIGSEGV, regs, si_code, address); in __bad_area_nosemaphore()
69 static noinline int bad_area_nosemaphore(struct pt_regs *regs, unsigned long address) in bad_area_nosemaphore() argument
71 return __bad_area_nosemaphore(regs, address, SEGV_MAPERR); in bad_area_nosemaphore()
74 static int __bad_area(struct pt_regs *regs, unsigned long address, int si_code) in __bad_area() argument
84 return __bad_area_nosemaphore(regs, address, si_code); in __bad_area()
87 static noinline int bad_area(struct pt_regs *regs, unsigned long address) in bad_area() argument
89 return __bad_area(regs, address, SEGV_MAPERR); in bad_area()
92 static noinline int bad_access_pkey(struct pt_regs *regs, unsigned long address, in bad_access_pkey() argument
127 _exception_pkey(regs, address, pkey); in bad_access_pkey()
132 static noinline int bad_access(struct pt_regs *regs, unsigned long address) in bad_access() argument
134 return __bad_area(regs, address, SEGV_ACCERR); in bad_access()
137 static int do_sigbus(struct pt_regs *regs, unsigned long address, in do_sigbus() argument
149 current->comm, current->pid, address); in do_sigbus()
156 force_sig_mceerr(BUS_MCEERR_AR, (void __user *)address, lsb); in do_sigbus()
161 force_sig_fault(SIGBUS, BUS_ADRERR, (void __user *)address); in do_sigbus()
198 unsigned long address, bool is_write) in bad_kernel_fault() argument
204 address >= TASK_SIZE ? "exec-protected" : "user", in bad_kernel_fault()
205 address, in bad_kernel_fault()
213 if (address >= TASK_SIZE) in bad_kernel_fault()
217 if (bad_kuap_fault(regs, address, is_write)) { in bad_kernel_fault()
219 is_write ? "write" : "read", address, in bad_kernel_fault()
306 unsigned long error_code, unsigned long address) in sanity_check_fault() argument
311 if (is_user && address >= TASK_SIZE) { in sanity_check_fault()
312 if ((long)address == -1) in sanity_check_fault()
316 current->comm, current->pid, address, in sanity_check_fault()
405 static int ___do_page_fault(struct pt_regs *regs, unsigned long address, in ___do_page_fault() argument
422 _exception(SIGBUS, regs, BUS_OBJERR, address); in ___do_page_fault()
429 sanity_check_fault(is_write, is_user, error_code, address); in ___do_page_fault()
436 if (unlikely(!is_user && bad_kernel_fault(regs, error_code, address, is_write))) { in ___do_page_fault()
437 if (kfence_handle_page_fault(address, is_write, regs)) in ___do_page_fault()
453 return bad_area_nosemaphore(regs, address); in ___do_page_fault()
458 perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address); in ___do_page_fault()
489 return bad_area_nosemaphore(regs, address); in ___do_page_fault()
502 vma = find_vma(mm, address); in ___do_page_fault()
504 return bad_area(regs, address); in ___do_page_fault()
506 if (unlikely(vma->vm_start > address)) { in ___do_page_fault()
508 return bad_area(regs, address); in ___do_page_fault()
510 if (unlikely(expand_stack(vma, address))) in ___do_page_fault()
511 return bad_area(regs, address); in ___do_page_fault()
516 return bad_access_pkey(regs, address, vma); in ___do_page_fault()
519 return bad_access(regs, address); in ___do_page_fault()
526 fault = handle_mm_fault(vma, address, flags, regs); in ___do_page_fault()
549 return mm_fault_error(regs, address, fault); in ___do_page_fault()