Lines Matching refs:address
83 __bad_area_nosemaphore(struct pt_regs *regs, unsigned long address, int si_code) in __bad_area_nosemaphore() argument
93 _exception(SIGSEGV, regs, si_code, address); in __bad_area_nosemaphore()
98 static noinline int bad_area_nosemaphore(struct pt_regs *regs, unsigned long address) in bad_area_nosemaphore() argument
100 return __bad_area_nosemaphore(regs, address, SEGV_MAPERR); in bad_area_nosemaphore()
103 static int __bad_area(struct pt_regs *regs, unsigned long address, int si_code) in __bad_area() argument
113 return __bad_area_nosemaphore(regs, address, si_code); in __bad_area()
116 static noinline int bad_area(struct pt_regs *regs, unsigned long address) in bad_area() argument
118 return __bad_area(regs, address, SEGV_MAPERR); in bad_area()
121 static int bad_key_fault_exception(struct pt_regs *regs, unsigned long address, in bad_key_fault_exception() argument
132 _exception_pkey(regs, address, pkey); in bad_key_fault_exception()
137 static noinline int bad_access(struct pt_regs *regs, unsigned long address) in bad_access() argument
139 return __bad_area(regs, address, SEGV_ACCERR); in bad_access()
142 static int do_sigbus(struct pt_regs *regs, unsigned long address, in do_sigbus() argument
154 current->comm, current->pid, address); in do_sigbus()
161 force_sig_mceerr(BUS_MCEERR_AR, (void __user *)address, lsb); in do_sigbus()
166 force_sig_fault(SIGBUS, BUS_ADRERR, (void __user *)address); in do_sigbus()
203 unsigned long address, bool is_write) in bad_kernel_fault() argument
211 address >= TASK_SIZE ? "exec-protected" : "user", in bad_kernel_fault()
212 address, in bad_kernel_fault()
219 if (!is_exec && address < TASK_SIZE && (error_code & DSISR_PROTFAULT) && in bad_kernel_fault()
222 address, in bad_kernel_fault()
227 if (address >= TASK_SIZE) in bad_kernel_fault()
244 static bool bad_stack_expansion(struct pt_regs *regs, unsigned long address, in bad_stack_expansion() argument
257 if (address + 0x100000 < vma->vm_end) { in bad_stack_expansion()
276 if (address + 2048 >= uregs->gpr[1]) in bad_stack_expansion()
351 unsigned long error_code, unsigned long address) in sanity_check_fault() argument
356 if (is_user && address >= TASK_SIZE) { in sanity_check_fault()
358 current->comm, current->pid, address, in sanity_check_fault()
399 unsigned long error_code, unsigned long address) { } in sanity_check_fault() argument
433 static int __do_page_fault(struct pt_regs *regs, unsigned long address, in __do_page_fault() argument
451 _exception(SIGBUS, regs, BUS_OBJERR, address); in __do_page_fault()
458 sanity_check_fault(is_write, is_user, error_code, address); in __do_page_fault()
465 if (unlikely(!is_user && bad_kernel_fault(regs, error_code, address, is_write))) in __do_page_fault()
478 return bad_area_nosemaphore(regs, address); in __do_page_fault()
485 perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address); in __do_page_fault()
488 return bad_key_fault_exception(regs, address, in __do_page_fault()
489 get_mm_addr_key(mm, address)); in __do_page_fault()
520 return bad_area_nosemaphore(regs, address); in __do_page_fault()
533 vma = find_vma(mm, address); in __do_page_fault()
535 return bad_area(regs, address); in __do_page_fault()
536 if (likely(vma->vm_start <= address)) in __do_page_fault()
539 return bad_area(regs, address); in __do_page_fault()
542 if (unlikely(bad_stack_expansion(regs, address, vma, flags, in __do_page_fault()
545 return bad_area(regs, address); in __do_page_fault()
550 return bad_area_nosemaphore(regs, address); in __do_page_fault()
555 if (unlikely(expand_stack(vma, address))) in __do_page_fault()
556 return bad_area(regs, address); in __do_page_fault()
560 return bad_access(regs, address); in __do_page_fault()
567 fault = handle_mm_fault(vma, address, flags); in __do_page_fault()
580 return bad_key_fault_exception(regs, address, pkey); in __do_page_fault()
613 return mm_fault_error(regs, address, fault); in __do_page_fault()
620 perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MAJ, 1, regs, address); in __do_page_fault()
624 perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MIN, 1, regs, address); in __do_page_fault()
630 int do_page_fault(struct pt_regs *regs, unsigned long address, in do_page_fault() argument
634 int rc = __do_page_fault(regs, address, error_code); in do_page_fault()
645 void bad_page_fault(struct pt_regs *regs, unsigned long address, int sig) in bad_page_fault() argument