Lines Matching refs:address
51 __bad_area_nosemaphore(struct pt_regs *regs, unsigned long address, int si_code)
61 _exception(SIGSEGV, regs, si_code, address);
66 static noinline int bad_area_nosemaphore(struct pt_regs *regs, unsigned long address)
68 return __bad_area_nosemaphore(regs, address, SEGV_MAPERR);
71 static int __bad_area(struct pt_regs *regs, unsigned long address, int si_code)
81 return __bad_area_nosemaphore(regs, address, si_code);
84 static noinline int bad_area(struct pt_regs *regs, unsigned long address)
86 return __bad_area(regs, address, SEGV_MAPERR);
90 static noinline int bad_access_pkey(struct pt_regs *regs, unsigned long address,
125 _exception_pkey(regs, address, pkey);
131 static noinline int bad_access(struct pt_regs *regs, unsigned long address)
133 return __bad_area(regs, address, SEGV_ACCERR);
136 static int do_sigbus(struct pt_regs *regs, unsigned long address,
148 current->comm, current->pid, address);
155 force_sig_mceerr(BUS_MCEERR_AR, (void __user *)address, lsb);
160 force_sig_fault(SIGBUS, BUS_ADRERR, (void __user *)address);
197 unsigned long address, bool is_write)
203 address >= TASK_SIZE ? "exec-protected" : "user",
204 address,
211 if (!is_exec && address < TASK_SIZE && (error_code & DSISR_PROTFAULT) &&
214 address,
218 // Kernel fault on kernel address is bad
219 if (address >= TASK_SIZE)
228 if (bad_kuap_fault(regs, address, is_write))
305 unsigned long error_code, unsigned long address)
308 * Userspace trying to access kernel address, we get PROTFAULT for that.
310 if (is_user && address >= TASK_SIZE) {
311 if ((long)address == -1)
314 pr_crit_ratelimited("%s[%d]: User access of kernel address (%lx) - exploit attempt? (uid: %d)\n",
315 current->comm, current->pid, address,
389 static int __do_page_fault(struct pt_regs *regs, unsigned long address,
406 _exception(SIGBUS, regs, BUS_OBJERR, address);
413 sanity_check_fault(is_write, is_user, error_code, address);
417 * take a page fault to a kernel address or a page fault to a user
418 * address outside of dedicated places
420 if (unlikely(!is_user && bad_kernel_fault(regs, error_code, address, is_write)))
433 return bad_area_nosemaphore(regs, address);
440 perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address);
459 * address space. Luckily the kernel only validly references user
465 * Attempt to lock the address space, if we cannot we then validate the
466 * source. If this is invalid we can skip the address space check,
471 return bad_area_nosemaphore(regs, address);
484 vma = find_vma(mm, address);
486 return bad_area(regs, address);
488 if (unlikely(vma->vm_start > address)) {
490 return bad_area(regs, address);
492 if (unlikely(expand_stack(vma, address)))
493 return bad_area(regs, address);
499 return bad_access_pkey(regs, address, vma);
503 return bad_access(regs, address);
510 fault = handle_mm_fault(vma, address, flags, regs);
531 return mm_fault_error(regs, address, fault);
543 int do_page_fault(struct pt_regs *regs, unsigned long address,
547 int rc = __do_page_fault(regs, address, error_code);
558 void bad_page_fault(struct pt_regs *regs, unsigned long address, int sig)
594 printk(KERN_ALERT "Faulting instruction address: 0x%08lx\n",