Lines Matching refs:address

177 static inline pmd_t *vmalloc_sync_one(pgd_t *pgd, unsigned long address)  in vmalloc_sync_one()  argument
179 unsigned index = pgd_index(address); in vmalloc_sync_one()
196 p4d = p4d_offset(pgd, address); in vmalloc_sync_one()
197 p4d_k = p4d_offset(pgd_k, address); in vmalloc_sync_one()
201 pud = pud_offset(p4d, address); in vmalloc_sync_one()
202 pud_k = pud_offset(p4d_k, address); in vmalloc_sync_one()
206 pmd = pmd_offset(pud, address); in vmalloc_sync_one()
207 pmd_k = pmd_offset(pud_k, address); in vmalloc_sync_one()
234 static noinline int vmalloc_fault(unsigned long address) in vmalloc_fault() argument
241 if (!(address >= VMALLOC_START && address < VMALLOC_END)) in vmalloc_fault()
252 pmd_k = vmalloc_sync_one(__va(pgd_paddr), address); in vmalloc_fault()
259 pte_k = pte_offset_kernel(pmd_k, address); in vmalloc_fault()
296 static void dump_pagetable(unsigned long address) in dump_pagetable() argument
299 pgd_t *pgd = &base[pgd_index(address)]; in dump_pagetable()
313 p4d = p4d_offset(pgd, address); in dump_pagetable()
314 pud = pud_offset(p4d, address); in dump_pagetable()
315 pmd = pmd_offset(pud, address); in dump_pagetable()
328 pte = pte_offset_kernel(pmd, address); in dump_pagetable()
352 static void dump_pagetable(unsigned long address) in dump_pagetable() argument
355 pgd_t *pgd = base + pgd_index(address); in dump_pagetable()
369 p4d = p4d_offset(pgd, address); in dump_pagetable()
377 pud = pud_offset(p4d, address); in dump_pagetable()
385 pmd = pmd_offset(pud, address); in dump_pagetable()
393 pte = pte_offset_kernel(pmd, address); in dump_pagetable()
421 static int is_errata93(struct pt_regs *regs, unsigned long address) in is_errata93() argument
431 if (address != regs->ip) in is_errata93()
434 if ((address >> 32) != 0) in is_errata93()
437 address |= 0xffffffffUL << 32; in is_errata93()
438 if ((address >= (u64)_stext && address <= (u64)_etext) || in is_errata93()
439 (address >= MODULES_VADDR && address <= MODULES_END)) { in is_errata93()
441 regs->ip = address; in is_errata93()
456 static int is_errata100(struct pt_regs *regs, unsigned long address) in is_errata100() argument
459 if ((regs->cs == __USER32_CS || (regs->cs & (1<<2))) && (address >> 32)) in is_errata100()
467 unsigned long address) in is_f00f_bug() argument
471 idt_is_f00f_address(address)) { in is_f00f_bug()
495 if (copy_from_kernel_nofault(&desc, (void *)(gdt->address + offset), in show_ldttss()
511 show_fault_oops(struct pt_regs *regs, unsigned long error_code, unsigned long address) in show_fault_oops() argument
523 pgd += pgd_index(address); in show_fault_oops()
525 pte = lookup_address_in_pgd_attr(pgd, address, &level, &nx, &rw); in show_fault_oops()
537 if (address < PAGE_SIZE && !user_mode(regs)) in show_fault_oops()
539 (void *)address); in show_fault_oops()
542 (void *)address); in show_fault_oops()
577 idt.address, idt.size, gdt.address, gdt.size); in show_fault_oops()
586 dump_pagetable(address); in show_fault_oops()
589 snp_dump_hva_rmpentry(address); in show_fault_oops()
594 unsigned long address) in pgtable_bad() argument
605 tsk->comm, address); in pgtable_bad()
606 dump_pagetable(address); in pgtable_bad()
614 static void sanitize_error_code(unsigned long address, in sanitize_error_code() argument
626 if (address >= TASK_SIZE_MAX) in sanitize_error_code()
630 static void set_signal_archinfo(unsigned long address, in set_signal_archinfo() argument
637 tsk->thread.cr2 = address; in set_signal_archinfo()
642 unsigned long address) in page_fault_oops() argument
664 if (is_vmalloc_addr((void *)address) && in page_fault_oops()
665 get_stack_guard_info((void *)address, &info)) { in page_fault_oops()
679 , [arg1] "r" (regs), [arg2] "r" (address), [arg3] "r" (&info)); in page_fault_oops()
691 efi_crash_gracefully_on_page_fault(address); in page_fault_oops()
695 kfence_handle_page_fault(address, error_code & X86_PF_WRITE, regs)) in page_fault_oops()
705 show_fault_oops(regs, error_code, address); in page_fault_oops()
715 printk(KERN_DEFAULT "CR2: %016lx\n", address); in page_fault_oops()
722 unsigned long address, int signal, int si_code, in kernelmode_fixup_or_oops() argument
728 if (fixup_exception(regs, X86_TRAP_PF, error_code, address)) in kernelmode_fixup_or_oops()
735 if (is_prefetch(regs, error_code, address)) in kernelmode_fixup_or_oops()
738 page_fault_oops(regs, error_code, address); in kernelmode_fixup_or_oops()
747 unsigned long address, struct task_struct *tsk) in show_signal_msg() argument
760 loglvl, tsk->comm, task_pid_nr(tsk), address, in show_signal_msg()
780 unsigned long address, u32 pkey, int si_code) in __bad_area_nosemaphore() argument
785 kernelmode_fixup_or_oops(regs, error_code, address, in __bad_area_nosemaphore()
792 page_fault_oops(regs, error_code, address); in __bad_area_nosemaphore()
806 if (is_prefetch(regs, error_code, address)) in __bad_area_nosemaphore()
809 if (is_errata100(regs, address)) in __bad_area_nosemaphore()
812 sanitize_error_code(address, &error_code); in __bad_area_nosemaphore()
814 if (fixup_vdso_exception(regs, X86_TRAP_PF, error_code, address)) in __bad_area_nosemaphore()
818 show_signal_msg(regs, error_code, address, tsk); in __bad_area_nosemaphore()
820 set_signal_archinfo(address, error_code); in __bad_area_nosemaphore()
823 force_sig_pkuerr((void __user *)address, pkey); in __bad_area_nosemaphore()
825 force_sig_fault(SIGSEGV, si_code, (void __user *)address); in __bad_area_nosemaphore()
832 unsigned long address) in bad_area_nosemaphore() argument
834 __bad_area_nosemaphore(regs, error_code, address, 0, SEGV_MAPERR); in bad_area_nosemaphore()
839 unsigned long address, struct mm_struct *mm, in __bad_area() argument
851 __bad_area_nosemaphore(regs, error_code, address, pkey, si_code); in __bad_area()
873 unsigned long address, struct mm_struct *mm, in bad_area_access_error() argument
904 __bad_area(regs, error_code, address, mm, vma, pkey, SEGV_PKUERR); in bad_area_access_error()
906 __bad_area(regs, error_code, address, mm, vma, 0, SEGV_ACCERR); in bad_area_access_error()
911 do_sigbus(struct pt_regs *regs, unsigned long error_code, unsigned long address, in do_sigbus() argument
916 kernelmode_fixup_or_oops(regs, error_code, address, in do_sigbus()
922 if (is_prefetch(regs, error_code, address)) in do_sigbus()
925 sanitize_error_code(address, &error_code); in do_sigbus()
927 if (fixup_vdso_exception(regs, X86_TRAP_PF, error_code, address)) in do_sigbus()
930 set_signal_archinfo(address, error_code); in do_sigbus()
939 tsk->comm, tsk->pid, address); in do_sigbus()
944 force_sig_mceerr(BUS_MCEERR_AR, (void __user *)address, lsb); in do_sigbus()
948 force_sig_fault(SIGBUS, BUS_ADRERR, (void __user *)address); in do_sigbus()
984 spurious_kernel_fault(unsigned long error_code, unsigned long address) in spurious_kernel_fault() argument
1006 pgd = init_mm.pgd + pgd_index(address); in spurious_kernel_fault()
1010 p4d = p4d_offset(pgd, address); in spurious_kernel_fault()
1017 pud = pud_offset(p4d, address); in spurious_kernel_fault()
1024 pmd = pmd_offset(pud, address); in spurious_kernel_fault()
1031 pte = pte_offset_kernel(pmd, address); in spurious_kernel_fault()
1119 bool fault_in_kernel_space(unsigned long address) in fault_in_kernel_space() argument
1126 if (IS_ENABLED(CONFIG_X86_64) && is_vsyscall_vaddr(address)) in fault_in_kernel_space()
1129 return address >= TASK_SIZE_MAX; in fault_in_kernel_space()
1139 unsigned long address) in do_kern_addr_fault() argument
1174 if (vmalloc_fault(address) >= 0) in do_kern_addr_fault()
1179 if (is_f00f_bug(regs, hw_error_code, address)) in do_kern_addr_fault()
1183 if (spurious_kernel_fault(hw_error_code, address)) in do_kern_addr_fault()
1198 bad_area_nosemaphore(regs, hw_error_code, address); in do_kern_addr_fault()
1213 unsigned long address) in do_user_addr_fault() argument
1232 if (is_errata93(regs, address)) in do_user_addr_fault()
1235 page_fault_oops(regs, error_code, address); in do_user_addr_fault()
1248 pgtable_bad(regs, error_code, address); in do_user_addr_fault()
1264 page_fault_oops(regs, error_code, address); in do_user_addr_fault()
1273 bad_area_nosemaphore(regs, error_code, address); in do_user_addr_fault()
1279 bad_area_nosemaphore(regs, error_code, address); in do_user_addr_fault()
1285 perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address); in do_user_addr_fault()
1320 if (is_vsyscall_vaddr(address)) { in do_user_addr_fault()
1321 if (emulate_vsyscall(error_code, regs, address)) in do_user_addr_fault()
1329 vma = lock_vma_under_rcu(mm, address); in do_user_addr_fault()
1334 bad_area_access_error(regs, error_code, address, NULL, vma); in do_user_addr_fault()
1338 fault = handle_mm_fault(vma, address, flags | FAULT_FLAG_VMA_LOCK, regs); in do_user_addr_fault()
1353 kernelmode_fixup_or_oops(regs, error_code, address, in do_user_addr_fault()
1361 vma = lock_mm_and_find_vma(mm, address, regs); in do_user_addr_fault()
1363 bad_area_nosemaphore(regs, error_code, address); in do_user_addr_fault()
1372 bad_area_access_error(regs, error_code, address, mm, vma); in do_user_addr_fault()
1389 fault = handle_mm_fault(vma, address, flags, regs); in do_user_addr_fault()
1397 kernelmode_fixup_or_oops(regs, error_code, address, in do_user_addr_fault()
1423 kernelmode_fixup_or_oops(regs, error_code, address, in do_user_addr_fault()
1431 kernelmode_fixup_or_oops(regs, error_code, address, in do_user_addr_fault()
1446 do_sigbus(regs, error_code, address, fault); in do_user_addr_fault()
1448 bad_area_nosemaphore(regs, error_code, address); in do_user_addr_fault()
1457 unsigned long address) in trace_page_fault_entries() argument
1463 trace_page_fault_user(address, regs, error_code); in trace_page_fault_entries()
1465 trace_page_fault_kernel(address, regs, error_code); in trace_page_fault_entries()
1470 unsigned long address) in handle_page_fault() argument
1472 trace_page_fault_entries(regs, error_code, address); in handle_page_fault()
1474 if (unlikely(kmmio_fault(regs, address))) in handle_page_fault()
1478 if (unlikely(fault_in_kernel_space(address))) { in handle_page_fault()
1479 do_kern_addr_fault(regs, error_code, address); in handle_page_fault()
1481 do_user_addr_fault(regs, error_code, address); in handle_page_fault()
1496 unsigned long address; in DEFINE_IDTENTRY_RAW_ERRORCODE() local
1498 address = cpu_feature_enabled(X86_FEATURE_FRED) ? fred_event_data(regs) : read_cr2(); in DEFINE_IDTENTRY_RAW_ERRORCODE()
1523 if (kvm_handle_async_pf(regs, (u32)address)) in DEFINE_IDTENTRY_RAW_ERRORCODE()
1539 handle_page_fault(regs, error_code, address); in DEFINE_IDTENTRY_RAW_ERRORCODE()