Lines Matching defs:addr
22 static inline void no_context(struct pt_regs *regs, unsigned long addr)
34 (addr < PAGE_SIZE) ? "NULL pointer dereference" :
35 "paging request", addr);
40 static inline void mm_fault_error(struct pt_regs *regs, unsigned long addr, vm_fault_t fault)
48 no_context(regs, addr);
56 no_context(regs, addr);
59 do_trap(regs, SIGBUS, BUS_ADRERR, addr);
65 static inline void bad_area(struct pt_regs *regs, struct mm_struct *mm, int code, unsigned long addr)
74 do_trap(regs, SIGSEGV, code, addr);
78 no_context(regs, addr);
81 static inline void vmalloc_fault(struct pt_regs *regs, int code, unsigned long addr)
93 return do_trap(regs, SIGSEGV, code, addr);
103 index = pgd_index(addr);
109 no_context(regs, addr);
114 p4d = p4d_offset(pgd, addr);
115 p4d_k = p4d_offset(pgd_k, addr);
117 no_context(regs, addr);
121 pud = pud_offset(p4d, addr);
122 pud_k = pud_offset(p4d_k, addr);
124 no_context(regs, addr);
132 pmd = pmd_offset(pud, addr);
133 pmd_k = pmd_offset(pud_k, addr);
135 no_context(regs, addr);
146 pte_k = pte_offset_kernel(pmd_k, addr);
148 no_context(regs, addr);
158 local_flush_tlb_page(addr);
195 unsigned long addr, cause;
201 addr = regs->badaddr;
215 if (unlikely((addr >= VMALLOC_START) && (addr <= VMALLOC_END))) {
216 vmalloc_fault(regs, code, addr);
228 if (unlikely(addr >= MODULES_VADDR && addr < MODULES_END)) {
229 vmalloc_fault(regs, code, addr);
242 no_context(regs, addr);
249 perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, addr);
257 vma = find_vma(mm, addr);
259 bad_area(regs, mm, code, addr);
262 if (likely(vma->vm_start <= addr))
265 bad_area(regs, mm, code, addr);
268 if (unlikely(expand_stack(vma, addr))) {
269 bad_area(regs, mm, code, addr);
281 bad_area(regs, mm, code, addr);
290 fault = handle_mm_fault(vma, addr, flags, regs);
314 mm_fault_error(regs, addr, fault);