• Home
  • Raw
  • Download

Lines Matching full:address

157 static inline pmd_t *vmalloc_sync_one(pgd_t *pgd, unsigned long address)  in vmalloc_sync_one()  argument
159 unsigned index = pgd_index(address); in vmalloc_sync_one()
176 p4d = p4d_offset(pgd, address); in vmalloc_sync_one()
177 p4d_k = p4d_offset(pgd_k, address); in vmalloc_sync_one()
181 pud = pud_offset(p4d, address); in vmalloc_sync_one()
182 pud_k = pud_offset(p4d_k, address); in vmalloc_sync_one()
186 pmd = pmd_offset(pud, address); in vmalloc_sync_one()
187 pmd_k = pmd_offset(pud_k, address); in vmalloc_sync_one()
214 static noinline int vmalloc_fault(unsigned long address) in vmalloc_fault() argument
221 if (!(address >= VMALLOC_START && address < VMALLOC_END)) in vmalloc_fault()
232 pmd_k = vmalloc_sync_one(__va(pgd_paddr), address); in vmalloc_fault()
239 pte_k = pte_offset_kernel(pmd_k, address); in vmalloc_fault()
275 check_v8086_mode(struct pt_regs *regs, unsigned long address, in check_v8086_mode() argument
284 bit = (address - 0xA0000) >> PAGE_SHIFT; in check_v8086_mode()
295 static void dump_pagetable(unsigned long address) in dump_pagetable() argument
298 pgd_t *pgd = &base[pgd_index(address)]; in dump_pagetable()
312 p4d = p4d_offset(pgd, address); in dump_pagetable()
313 pud = pud_offset(p4d, address); in dump_pagetable()
314 pmd = pmd_offset(pud, address); in dump_pagetable()
327 pte = pte_offset_kernel(pmd, address); in dump_pagetable()
348 check_v8086_mode(struct pt_regs *regs, unsigned long address, in check_v8086_mode() argument
360 static void dump_pagetable(unsigned long address) in dump_pagetable() argument
363 pgd_t *pgd = base + pgd_index(address); in dump_pagetable()
377 p4d = p4d_offset(pgd, address); in dump_pagetable()
385 pud = pud_offset(p4d, address); in dump_pagetable()
393 pmd = pmd_offset(pud, address); in dump_pagetable()
401 pte = pte_offset_kernel(pmd, address); in dump_pagetable()
429 static int is_errata93(struct pt_regs *regs, unsigned long address) in is_errata93() argument
436 if (address != regs->ip) in is_errata93()
439 if ((address >> 32) != 0) in is_errata93()
442 address |= 0xffffffffUL << 32; in is_errata93()
443 if ((address >= (u64)_stext && address <= (u64)_etext) || in is_errata93()
444 (address >= MODULES_VADDR && address <= MODULES_END)) { in is_errata93()
446 regs->ip = address; in is_errata93()
461 static int is_errata100(struct pt_regs *regs, unsigned long address) in is_errata100() argument
464 if ((regs->cs == __USER32_CS || (regs->cs & (1<<2))) && (address >> 32)) in is_errata100()
471 static int is_f00f_bug(struct pt_regs *regs, unsigned long address) in is_f00f_bug() argument
474 if (boot_cpu_has_bug(X86_BUG_F00F) && idt_is_f00f_address(address)) { in is_f00f_bug()
498 if (copy_from_kernel_nofault(&desc, (void *)(gdt->address + offset), in show_ldttss()
514 show_fault_oops(struct pt_regs *regs, unsigned long error_code, unsigned long address) in show_fault_oops() argument
525 pgd += pgd_index(address); in show_fault_oops()
527 pte = lookup_address_in_pgd(pgd, address, &level); in show_fault_oops()
539 if (address < PAGE_SIZE && !user_mode(regs)) in show_fault_oops()
540 pr_alert("BUG: kernel NULL pointer dereference, address: %px\n", in show_fault_oops()
541 (void *)address); in show_fault_oops()
543 pr_alert("BUG: unable to handle page fault for address: %px\n", in show_fault_oops()
544 (void *)address); in show_fault_oops()
578 idt.address, idt.size, gdt.address, gdt.size); in show_fault_oops()
587 dump_pagetable(address); in show_fault_oops()
592 unsigned long address) in pgtable_bad() argument
602 printk(KERN_ALERT "%s: Corrupted page table at address %lx\n", in pgtable_bad()
603 tsk->comm, address); in pgtable_bad()
604 dump_pagetable(address); in pgtable_bad()
612 static void set_signal_archinfo(unsigned long address, in set_signal_archinfo() argument
626 if (address >= TASK_SIZE_MAX) in set_signal_archinfo()
631 tsk->thread.cr2 = address; in set_signal_archinfo()
636 unsigned long address, int signal, int si_code) in no_context() argument
652 if (fixup_exception(regs, X86_TRAP_PF, error_code, address)) { in no_context()
668 set_signal_archinfo(address, error_code); in no_context()
671 force_sig_fault(signal, si_code, (void __user *)address); in no_context()
686 if (is_vmalloc_addr((void *)address) && in no_context()
687 (((unsigned long)tsk->stack - 1 - address < PAGE_SIZE) || in no_context()
688 address - ((unsigned long)tsk->stack + THREAD_SIZE) < PAGE_SIZE)) { in no_context()
705 "S" (regs), "d" (address), in no_context()
722 if (is_prefetch(regs, error_code, address)) in no_context()
725 if (is_errata93(regs, address)) in no_context()
733 efi_recover_from_page_fault(address); in no_context()
742 show_fault_oops(regs, error_code, address); in no_context()
752 printk(KERN_DEFAULT "CR2: %016lx\n", address); in no_context()
763 unsigned long address, struct task_struct *tsk) in show_signal_msg() argument
774 loglvl, tsk->comm, task_pid_nr(tsk), address, in show_signal_msg()
786 * of the address space that has user-accessible permissions.
795 unsigned long address, u32 pkey, int si_code) in __bad_area_nosemaphore() argument
810 if (is_prefetch(regs, error_code, address)) in __bad_area_nosemaphore()
813 if (is_errata100(regs, address)) in __bad_area_nosemaphore()
821 if (address >= TASK_SIZE_MAX) in __bad_area_nosemaphore()
825 show_signal_msg(regs, error_code, address, tsk); in __bad_area_nosemaphore()
827 set_signal_archinfo(address, error_code); in __bad_area_nosemaphore()
830 force_sig_pkuerr((void __user *)address, pkey); in __bad_area_nosemaphore()
832 force_sig_fault(SIGSEGV, si_code, (void __user *)address); in __bad_area_nosemaphore()
839 if (is_f00f_bug(regs, address)) in __bad_area_nosemaphore()
842 no_context(regs, error_code, address, SIGSEGV, si_code); in __bad_area_nosemaphore()
847 unsigned long address) in bad_area_nosemaphore() argument
849 __bad_area_nosemaphore(regs, error_code, address, 0, SEGV_MAPERR); in bad_area_nosemaphore()
854 unsigned long address, u32 pkey, int si_code) in __bad_area() argument
863 __bad_area_nosemaphore(regs, error_code, address, pkey, si_code); in __bad_area()
867 bad_area(struct pt_regs *regs, unsigned long error_code, unsigned long address) in bad_area() argument
869 __bad_area(regs, error_code, address, 0, SEGV_MAPERR); in bad_area()
891 unsigned long address, struct vm_area_struct *vma) in bad_area_access_error() argument
921 __bad_area(regs, error_code, address, pkey, SEGV_PKUERR); in bad_area_access_error()
923 __bad_area(regs, error_code, address, 0, SEGV_ACCERR); in bad_area_access_error()
928 do_sigbus(struct pt_regs *regs, unsigned long error_code, unsigned long address, in do_sigbus() argument
933 no_context(regs, error_code, address, SIGBUS, BUS_ADRERR); in do_sigbus()
938 if (is_prefetch(regs, error_code, address)) in do_sigbus()
941 set_signal_archinfo(address, error_code); in do_sigbus()
950 tsk->comm, tsk->pid, address); in do_sigbus()
955 force_sig_mceerr(BUS_MCEERR_AR, (void __user *)address, lsb); in do_sigbus()
959 force_sig_fault(SIGBUS, BUS_ADRERR, (void __user *)address); in do_sigbus()
964 unsigned long address, vm_fault_t fault) in mm_fault_error() argument
967 no_context(regs, error_code, address, 0, 0); in mm_fault_error()
974 no_context(regs, error_code, address, in mm_fault_error()
988 do_sigbus(regs, error_code, address, fault); in mm_fault_error()
990 bad_area_nosemaphore(regs, error_code, address); in mm_fault_error()
1029 spurious_kernel_fault(unsigned long error_code, unsigned long address) in spurious_kernel_fault() argument
1051 pgd = init_mm.pgd + pgd_index(address); in spurious_kernel_fault()
1055 p4d = p4d_offset(pgd, address); in spurious_kernel_fault()
1062 pud = pud_offset(p4d, address); in spurious_kernel_fault()
1069 pmd = pmd_offset(pud, address); in spurious_kernel_fault()
1076 pte = pte_offset_kernel(pmd, address); in spurious_kernel_fault()
1138 bool fault_in_kernel_space(unsigned long address) in fault_in_kernel_space() argument
1141 * On 64-bit systems, the vsyscall page is at an address above in fault_in_kernel_space()
1143 * address space. in fault_in_kernel_space()
1145 if (IS_ENABLED(CONFIG_X86_64) && is_vsyscall_vaddr(address)) in fault_in_kernel_space()
1148 return address >= TASK_SIZE_MAX; in fault_in_kernel_space()
1152 * Called for all faults where 'address' is part of the kernel address
1158 unsigned long address) in do_kern_addr_fault() argument
1162 * have no user pages in the kernel portion of the address in do_kern_addr_fault()
1193 if (vmalloc_fault(address) >= 0) in do_kern_addr_fault()
1199 if (spurious_kernel_fault(hw_error_code, address)) in do_kern_addr_fault()
1214 bad_area_nosemaphore(regs, hw_error_code, address); in do_kern_addr_fault()
1218 /* Handle faults in the user portion of the address space */
1222 unsigned long address) in do_user_addr_fault() argument
1242 pgtable_bad(regs, hw_error_code, address); in do_user_addr_fault()
1246 * pages in the user address space. The odd case here is WRUSS, in do_user_addr_fault()
1255 bad_area_nosemaphore(regs, hw_error_code, address); in do_user_addr_fault()
1264 bad_area_nosemaphore(regs, hw_error_code, address); in do_user_addr_fault()
1283 perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address); in do_user_addr_fault()
1293 * vsyscall page is at a high address (>PAGE_OFFSET), but is in do_user_addr_fault()
1294 * considered to be part of the user address space. in do_user_addr_fault()
1302 if (is_vsyscall_vaddr(address)) { in do_user_addr_fault()
1303 if (emulate_vsyscall(hw_error_code, regs, address)) in do_user_addr_fault()
1309 * Kernel-mode access to the user address space should only occur in do_user_addr_fault()
1313 * to validate the fault against the address space. in do_user_addr_fault()
1326 bad_area_nosemaphore(regs, hw_error_code, address); in do_user_addr_fault()
1340 vma = find_vma(mm, address); in do_user_addr_fault()
1342 bad_area(regs, hw_error_code, address); in do_user_addr_fault()
1345 if (likely(vma->vm_start <= address)) in do_user_addr_fault()
1348 bad_area(regs, hw_error_code, address); in do_user_addr_fault()
1351 if (unlikely(expand_stack(vma, address))) { in do_user_addr_fault()
1352 bad_area(regs, hw_error_code, address); in do_user_addr_fault()
1362 bad_area_access_error(regs, hw_error_code, address, vma); in do_user_addr_fault()
1379 fault = handle_mm_fault(vma, address, flags, regs); in do_user_addr_fault()
1384 no_context(regs, hw_error_code, address, SIGBUS, in do_user_addr_fault()
1402 mm_fault_error(regs, hw_error_code, address, fault); in do_user_addr_fault()
1406 check_v8086_mode(regs, address, tsk); in do_user_addr_fault()
1412 unsigned long address) in trace_page_fault_entries() argument
1418 trace_page_fault_user(address, regs, error_code); in trace_page_fault_entries()
1420 trace_page_fault_kernel(address, regs, error_code); in trace_page_fault_entries()
1425 unsigned long address) in handle_page_fault() argument
1427 trace_page_fault_entries(regs, error_code, address); in handle_page_fault()
1429 if (unlikely(kmmio_fault(regs, address))) in handle_page_fault()
1432 /* Was the fault on kernel-controlled part of the address space? */ in handle_page_fault()
1433 if (unlikely(fault_in_kernel_space(address))) { in handle_page_fault()
1434 do_kern_addr_fault(regs, error_code, address); in handle_page_fault()
1436 do_user_addr_fault(regs, error_code, address); in handle_page_fault()
1438 * User address page fault handling might have reenabled in handle_page_fault()
1450 unsigned long address = read_cr2(); in DEFINE_IDTENTRY_RAW_ERRORCODE() local
1476 if (kvm_handle_async_pf(regs, (u32)address)) in DEFINE_IDTENTRY_RAW_ERRORCODE()
1482 * be invoked because a kernel fault on a user space address might in DEFINE_IDTENTRY_RAW_ERRORCODE()
1492 handle_page_fault(regs, error_code, address); in DEFINE_IDTENTRY_RAW_ERRORCODE()