Lines Matching refs:addr
41 void show_pte(struct mm_struct *mm, unsigned long addr) in show_pte() argument
49 pgd = pgd_offset(mm, addr); in show_pte()
50 printk(KERN_ALERT "[%08lx] *pgd=%08lx", addr, pgd_val(*pgd)); in show_pte()
64 pmd = pmd_offset((pud_t *) pgd, addr); in show_pte()
80 pte = pte_offset_map(pmd, addr); in show_pte()
91 static void __do_kernel_fault(struct mm_struct *mm, unsigned long addr, in __do_kernel_fault() argument
106 (addr < PAGE_SIZE) ? "NULL pointer dereference" : in __do_kernel_fault()
107 "paging request", addr); in __do_kernel_fault()
109 show_pte(mm, addr); in __do_kernel_fault()
119 static void __do_user_fault(struct task_struct *tsk, unsigned long addr, in __do_user_fault() argument
125 tsk->thread.address = addr; in __do_user_fault()
131 si.si_addr = (void __user *)addr; in __do_user_fault()
135 void do_bad_area(unsigned long addr, unsigned int fsr, struct pt_regs *regs) in do_bad_area() argument
145 __do_user_fault(tsk, addr, fsr, SIGSEGV, SEGV_MAPERR, regs); in do_bad_area()
147 __do_kernel_fault(mm, addr, fsr, regs); in do_bad_area()
170 static int __do_pf(struct mm_struct *mm, unsigned long addr, unsigned int fsr, in __do_pf() argument
176 vma = find_vma(mm, addr); in __do_pf()
180 if (unlikely(vma->vm_start > addr)) in __do_pf()
197 fault = handle_mm_fault(mm, vma, addr & PAGE_MASK, flags); in __do_pf()
201 if (vma->vm_flags & VM_GROWSDOWN && !expand_stack(vma, addr)) in __do_pf()
207 static int do_pf(unsigned long addr, unsigned int fsr, struct pt_regs *regs) in do_pf() argument
254 fault = __do_pf(mm, addr, fsr, flags, tsk); in do_pf()
318 __do_user_fault(tsk, addr, fsr, sig, code, regs); in do_pf()
322 __do_kernel_fault(mm, addr, fsr, regs); in do_pf()
343 static int do_ifault(unsigned long addr, unsigned int fsr, struct pt_regs *regs) in do_ifault() argument
349 if (addr < TASK_SIZE) in do_ifault()
350 return do_pf(addr, fsr, regs); in do_ifault()
355 index = pgd_index(addr); in do_ifault()
363 pmd_k = pmd_offset((pud_t *) pgd_k, addr); in do_ifault()
364 pmd = pmd_offset((pud_t *) pgd, addr); in do_ifault()
374 do_bad_area(addr, fsr, regs); in do_ifault()
381 static int do_bad(unsigned long addr, unsigned int fsr, struct pt_regs *regs) in do_bad() argument
386 static int do_good(unsigned long addr, unsigned int fsr, struct pt_regs *regs) in do_good() argument
405 int (*fn) (unsigned long addr, unsigned int fsr, struct pt_regs *regs);
463 asmlinkage void do_DataAbort(unsigned long addr, unsigned int fsr, in do_DataAbort() argument
469 if (!inf->fn(addr, fsr & ~FSR_LNX_PF, regs)) in do_DataAbort()
473 inf->name, fsr, addr); in do_DataAbort()
478 info.si_addr = (void __user *)addr; in do_DataAbort()
482 asmlinkage void do_PrefetchAbort(unsigned long addr, in do_PrefetchAbort() argument
488 if (!inf->fn(addr, ifsr | FSR_LNX_PF, regs)) in do_PrefetchAbort()
492 inf->name, ifsr, addr); in do_PrefetchAbort()
497 info.si_addr = (void __user *)addr; in do_PrefetchAbort()