• Home
  • Raw
  • Download

Lines Matching full:address

207 force_sig_info_fault(int si_signo, int si_code, unsigned long address,  in force_sig_info_fault()  argument
217 info.si_addr = (void __user *)address; in force_sig_info_fault()
233 static inline pmd_t *vmalloc_sync_one(pgd_t *pgd, unsigned long address) in vmalloc_sync_one() argument
235 unsigned index = pgd_index(address); in vmalloc_sync_one()
252 p4d = p4d_offset(pgd, address); in vmalloc_sync_one()
253 p4d_k = p4d_offset(pgd_k, address); in vmalloc_sync_one()
257 pud = pud_offset(p4d, address); in vmalloc_sync_one()
258 pud_k = pud_offset(p4d_k, address); in vmalloc_sync_one()
262 pmd = pmd_offset(pud, address); in vmalloc_sync_one()
263 pmd_k = pmd_offset(pud_k, address); in vmalloc_sync_one()
278 unsigned long address; in vmalloc_sync() local
283 for (address = VMALLOC_START & PMD_MASK; in vmalloc_sync()
284 address >= TASK_SIZE_MAX && address < VMALLOC_END; in vmalloc_sync()
285 address += PMD_SIZE) { in vmalloc_sync()
296 vmalloc_sync_one(page_address(page), address); in vmalloc_sync()
318 static noinline int vmalloc_fault(unsigned long address) in vmalloc_fault() argument
325 if (!(address >= VMALLOC_START && address < VMALLOC_END)) in vmalloc_fault()
336 pmd_k = vmalloc_sync_one(__va(pgd_paddr), address); in vmalloc_fault()
343 pte_k = pte_offset_kernel(pmd_k, address); in vmalloc_fault()
355 check_v8086_mode(struct pt_regs *regs, unsigned long address, in check_v8086_mode() argument
364 bit = (address - 0xA0000) >> PAGE_SHIFT; in check_v8086_mode()
375 static void dump_pagetable(unsigned long address) in dump_pagetable() argument
378 pgd_t *pgd = &base[pgd_index(address)]; in dump_pagetable()
392 p4d = p4d_offset(pgd, address); in dump_pagetable()
393 pud = pud_offset(p4d, address); in dump_pagetable()
394 pmd = pmd_offset(pud, address); in dump_pagetable()
407 pte = pte_offset_kernel(pmd, address); in dump_pagetable()
437 static noinline int vmalloc_fault(unsigned long address) in vmalloc_fault() argument
446 if (!(address >= VMALLOC_START && address < VMALLOC_END)) in vmalloc_fault()
454 pgd = (pgd_t *)__va(read_cr3_pa()) + pgd_index(address); in vmalloc_fault()
455 pgd_k = pgd_offset_k(address); in vmalloc_fault()
469 p4d = p4d_offset(pgd, address); in vmalloc_fault()
470 p4d_k = p4d_offset(pgd_k, address); in vmalloc_fault()
483 pud = pud_offset(p4d, address); in vmalloc_fault()
490 pmd = pmd_offset(pud, address); in vmalloc_fault()
497 pte = pte_offset_kernel(pmd, address); in vmalloc_fault()
518 check_v8086_mode(struct pt_regs *regs, unsigned long address, in check_v8086_mode() argument
530 static void dump_pagetable(unsigned long address) in dump_pagetable() argument
533 pgd_t *pgd = base + pgd_index(address); in dump_pagetable()
547 p4d = p4d_offset(pgd, address); in dump_pagetable()
555 pud = pud_offset(p4d, address); in dump_pagetable()
563 pmd = pmd_offset(pud, address); in dump_pagetable()
571 pte = pte_offset_kernel(pmd, address); in dump_pagetable()
599 static int is_errata93(struct pt_regs *regs, unsigned long address) in is_errata93() argument
606 if (address != regs->ip) in is_errata93()
609 if ((address >> 32) != 0) in is_errata93()
612 address |= 0xffffffffUL << 32; in is_errata93()
613 if ((address >= (u64)_stext && address <= (u64)_etext) || in is_errata93()
614 (address >= MODULES_VADDR && address <= MODULES_END)) { in is_errata93()
616 regs->ip = address; in is_errata93()
631 static int is_errata100(struct pt_regs *regs, unsigned long address) in is_errata100() argument
634 if ((regs->cs == __USER32_CS || (regs->cs & (1<<2))) && (address >> 32)) in is_errata100()
640 static int is_f00f_bug(struct pt_regs *regs, unsigned long address) in is_f00f_bug() argument
649 nr = (address - idt_descr.address) >> 3; in is_f00f_bug()
662 unsigned long address) in show_fault_oops() argument
673 pgd += pgd_index(address); in show_fault_oops()
675 pte = lookup_address_in_pgd(pgd, address, &level); in show_fault_oops()
688 address < PAGE_SIZE ? "NULL pointer dereference" : "paging request", in show_fault_oops()
689 (void *)address); in show_fault_oops()
691 dump_pagetable(address); in show_fault_oops()
696 unsigned long address) in pgtable_bad() argument
706 printk(KERN_ALERT "%s: Corrupted page table at address %lx\n", in pgtable_bad()
707 tsk->comm, address); in pgtable_bad()
708 dump_pagetable(address); in pgtable_bad()
710 tsk->thread.cr2 = address; in pgtable_bad()
722 unsigned long address, int signal, int si_code) in no_context() argument
747 tsk->thread.cr2 = address; in no_context()
750 force_sig_info_fault(signal, si_code, address, in no_context()
766 if (is_vmalloc_addr((void *)address) && in no_context()
767 (((unsigned long)tsk->stack - 1 - address < PAGE_SIZE) || in no_context()
768 address - ((unsigned long)tsk->stack + THREAD_SIZE) < PAGE_SIZE)) { in no_context()
785 "S" (regs), "d" (address), in no_context()
802 if (is_prefetch(regs, error_code, address)) in no_context()
805 if (is_errata93(regs, address)) in no_context()
814 show_fault_oops(regs, error_code, address); in no_context()
819 tsk->thread.cr2 = address; in no_context()
828 printk(KERN_DEFAULT "CR2: %016lx\n", address); in no_context()
839 unsigned long address, struct task_struct *tsk) in show_signal_msg() argument
850 loglvl, tsk->comm, task_pid_nr(tsk), address, in show_signal_msg()
862 unsigned long address, u32 *pkey, int si_code) in __bad_area_nosemaphore() argument
877 if (is_prefetch(regs, error_code, address)) in __bad_area_nosemaphore()
880 if (is_errata100(regs, address)) in __bad_area_nosemaphore()
889 ((address & ~0xfff) == VSYSCALL_ADDR))) { in __bad_area_nosemaphore()
890 if (emulate_vsyscall(regs, address)) in __bad_area_nosemaphore()
900 if (address >= TASK_SIZE_MAX) in __bad_area_nosemaphore()
904 show_signal_msg(regs, error_code, address, tsk); in __bad_area_nosemaphore()
906 tsk->thread.cr2 = address; in __bad_area_nosemaphore()
910 force_sig_info_fault(SIGSEGV, si_code, address, tsk, pkey, 0); in __bad_area_nosemaphore()
915 if (is_f00f_bug(regs, address)) in __bad_area_nosemaphore()
918 no_context(regs, error_code, address, SIGSEGV, si_code); in __bad_area_nosemaphore()
923 unsigned long address, u32 *pkey) in bad_area_nosemaphore() argument
925 __bad_area_nosemaphore(regs, error_code, address, pkey, SEGV_MAPERR); in bad_area_nosemaphore()
930 unsigned long address, struct vm_area_struct *vma, int si_code) in __bad_area() argument
944 __bad_area_nosemaphore(regs, error_code, address, in __bad_area()
949 bad_area(struct pt_regs *regs, unsigned long error_code, unsigned long address) in bad_area() argument
951 __bad_area(regs, error_code, address, NULL, SEGV_MAPERR); in bad_area()
973 unsigned long address, struct vm_area_struct *vma) in bad_area_access_error() argument
981 __bad_area(regs, error_code, address, vma, SEGV_PKUERR); in bad_area_access_error()
983 __bad_area(regs, error_code, address, vma, SEGV_ACCERR); in bad_area_access_error()
987 do_sigbus(struct pt_regs *regs, unsigned long error_code, unsigned long address, in do_sigbus() argument
995 no_context(regs, error_code, address, SIGBUS, BUS_ADRERR); in do_sigbus()
1000 if (is_prefetch(regs, error_code, address)) in do_sigbus()
1003 tsk->thread.cr2 = address; in do_sigbus()
1011 tsk->comm, tsk->pid, address); in do_sigbus()
1015 force_sig_info_fault(SIGBUS, code, address, tsk, pkey, fault); in do_sigbus()
1020 unsigned long address, u32 *pkey, vm_fault_t fault) in mm_fault_error() argument
1023 no_context(regs, error_code, address, 0, 0); in mm_fault_error()
1030 no_context(regs, error_code, address, in mm_fault_error()
1044 do_sigbus(regs, error_code, address, pkey, fault); in mm_fault_error()
1046 bad_area_nosemaphore(regs, error_code, address, pkey); in mm_fault_error()
1091 spurious_fault(unsigned long error_code, unsigned long address) in spurious_fault() argument
1113 pgd = init_mm.pgd + pgd_index(address); in spurious_fault()
1117 p4d = p4d_offset(pgd, address); in spurious_fault()
1124 pud = pud_offset(p4d, address); in spurious_fault()
1131 pmd = pmd_offset(pud, address); in spurious_fault()
1138 pte = pte_offset_kernel(pmd, address); in spurious_fault()
1200 static int fault_in_kernel_space(unsigned long address) in fault_in_kernel_space() argument
1202 return address >= TASK_SIZE_MAX; in fault_in_kernel_space()
1223 * This routine handles page faults. It determines the address,
1229 unsigned long address) in __do_page_fault() argument
1243 if (unlikely(kmmio_fault(regs, address))) in __do_page_fault()
1259 if (unlikely(fault_in_kernel_space(address))) { in __do_page_fault()
1261 if (vmalloc_fault(address) >= 0) in __do_page_fault()
1266 if (spurious_fault(error_code, address)) in __do_page_fault()
1276 bad_area_nosemaphore(regs, error_code, address, NULL); in __do_page_fault()
1286 pgtable_bad(regs, error_code, address); in __do_page_fault()
1289 bad_area_nosemaphore(regs, error_code, address, NULL); in __do_page_fault()
1298 bad_area_nosemaphore(regs, error_code, address, NULL); in __do_page_fault()
1318 perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address); in __do_page_fault()
1331 * against the address space. Luckily the kernel only validly in __do_page_fault()
1337 * deadlock. Attempt to lock the address space, if we cannot we then in __do_page_fault()
1338 * validate the source. If this is invalid we can skip the address in __do_page_fault()
1344 bad_area_nosemaphore(regs, error_code, address, NULL); in __do_page_fault()
1358 vma = find_vma(mm, address); in __do_page_fault()
1360 bad_area(regs, error_code, address); in __do_page_fault()
1363 if (likely(vma->vm_start <= address)) in __do_page_fault()
1366 bad_area(regs, error_code, address); in __do_page_fault()
1376 if (unlikely(address + 65536 + 32 * sizeof(unsigned long) < regs->sp)) { in __do_page_fault()
1377 bad_area(regs, error_code, address); in __do_page_fault()
1381 if (unlikely(expand_stack(vma, address))) { in __do_page_fault()
1382 bad_area(regs, error_code, address); in __do_page_fault()
1392 bad_area_access_error(regs, error_code, address, vma); in __do_page_fault()
1412 fault = handle_mm_fault(vma, address, flags); in __do_page_fault()
1434 no_context(regs, error_code, address, SIGBUS, BUS_ADRERR); in __do_page_fault()
1440 mm_fault_error(regs, error_code, address, &pkey, fault); in __do_page_fault()
1450 perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MAJ, 1, regs, address); in __do_page_fault()
1453 perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MIN, 1, regs, address); in __do_page_fault()
1456 check_v8086_mode(regs, address, tsk); in __do_page_fault()
1461 trace_page_fault_entries(unsigned long address, struct pt_regs *regs, in trace_page_fault_entries() argument
1465 trace_page_fault_user(address, regs, error_code); in trace_page_fault_entries()
1467 trace_page_fault_kernel(address, regs, error_code); in trace_page_fault_entries()
1480 unsigned long address = read_cr2(); /* Get the faulting address */ in do_page_fault() local
1485 trace_page_fault_entries(address, regs, error_code); in do_page_fault()
1487 __do_page_fault(regs, error_code, address); in do_page_fault()