• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/arch/x86/mm/

Lines Matching refs:address

162 force_sig_info_fault(int si_signo, int si_code, unsigned long address,
170 info.si_addr = (void __user *)address;
180 static inline pmd_t *vmalloc_sync_one(pgd_t *pgd, unsigned long address)
182 unsigned index = pgd_index(address);
198 pud = pud_offset(pgd, address);
199 pud_k = pud_offset(pgd_k, address);
203 pmd = pmd_offset(pud, address);
204 pmd_k = pmd_offset(pud_k, address);
218 unsigned long address;
223 for (address = VMALLOC_START & PMD_MASK;
224 address >= TASK_SIZE && address < FIXADDR_TOP;
225 address += PMD_SIZE) {
232 if (!vmalloc_sync_one(page_address(page), address))
244 static noinline __kprobes int vmalloc_fault(unsigned long address)
251 if (!(address >= VMALLOC_START && address < VMALLOC_END))
262 pmd_k = vmalloc_sync_one(__va(pgd_paddr), address);
266 pte_k = pte_offset_kernel(pmd_k, address);
277 check_v8086_mode(struct pt_regs *regs, unsigned long address,
285 bit = (address - 0xA0000) >> PAGE_SHIFT;
295 static void dump_pagetable(unsigned long address)
298 pgd_t *pgd = &base[pgd_index(address)];
307 pmd = pmd_offset(pud_offset(pgd, address), address);
319 pte = pte_offset_kernel(pmd, address);
329 unsigned long address;
331 for (address = VMALLOC_START & PGDIR_MASK; address <= VMALLOC_END;
332 address += PGDIR_SIZE) {
334 const pgd_t *pgd_ref = pgd_offset_k(address);
344 pgd = (pgd_t *)page_address(page) + pgd_index(address);
361 static noinline __kprobes int vmalloc_fault(unsigned long address)
369 if (!(address >= VMALLOC_START && address < VMALLOC_END))
377 pgd = pgd_offset(current->active_mm, address);
378 pgd_ref = pgd_offset_k(address);
392 pud = pud_offset(pgd, address);
393 pud_ref = pud_offset(pgd_ref, address);
400 pmd = pmd_offset(pud, address);
401 pmd_ref = pmd_offset(pud_ref, address);
408 pte_ref = pte_offset_kernel(pmd_ref, address);
412 pte = pte_offset_kernel(pmd, address);
436 check_v8086_mode(struct pt_regs *regs, unsigned long address,
448 static void dump_pagetable(unsigned long address)
451 pgd_t *pgd = base + pgd_index(address);
464 pud = pud_offset(pgd, address);
472 pmd = pmd_offset(pud, address);
480 pte = pte_offset_kernel(pmd, address);
494 static int is_errata93(struct pt_regs *regs, unsigned long address)
497 if (address != regs->ip)
500 if ((address >> 32) != 0)
503 address |= 0xffffffffUL << 32;
504 if ((address >= (u64)_stext && address <= (u64)_etext) ||
505 (address >= MODULES_VADDR && address <= MODULES_END)) {
507 regs->ip = address;
514 static int is_errata100(struct pt_regs *regs, unsigned long address)
517 if ((regs->cs == __USER32_CS || (regs->cs & (1<<2))) && (address >> 32))
523 static int is_f00f_bug(struct pt_regs *regs, unsigned long address)
529 nr = (address - idt_descr.address) >> 3;
545 unsigned long address)
553 pte_t *pte = lookup_address(address, &level);
560 if (address < PAGE_SIZE)
565 printk(KERN_CONT " at %p\n", (void *) address);
569 dump_pagetable(address);
574 unsigned long address)
584 printk(KERN_ALERT "%s: Corrupted page table at address %lx\n",
585 tsk->comm, address);
586 dump_pagetable(address);
588 tsk->thread.cr2 = address;
600 unsigned long address)
622 if (is_prefetch(regs, error_code, address))
625 if (is_errata93(regs, address))
634 show_fault_oops(regs, error_code, address);
640 tsk->thread.cr2 = address;
649 printk(KERN_EMERG "CR2: %016lx\n", address);
660 unsigned long address, struct task_struct *tsk)
670 tsk->comm, task_pid_nr(tsk), address,
680 unsigned long address, int si_code)
695 if (is_prefetch(regs, error_code, address))
698 if (is_errata100(regs, address))
702 show_signal_msg(regs, error_code, address, tsk);
705 tsk->thread.cr2 = address;
706 tsk->thread.error_code = error_code | (address >= TASK_SIZE);
709 force_sig_info_fault(SIGSEGV, si_code, address, tsk);
714 if (is_f00f_bug(regs, address))
717 no_context(regs, error_code, address);
722 unsigned long address)
724 __bad_area_nosemaphore(regs, error_code, address, SEGV_MAPERR);
729 unsigned long address, int si_code)
739 __bad_area_nosemaphore(regs, error_code, address, si_code);
743 bad_area(struct pt_regs *regs, unsigned long error_code, unsigned long address)
745 __bad_area(regs, error_code, address, SEGV_MAPERR);
750 unsigned long address)
752 __bad_area(regs, error_code, address, SEGV_ACCERR);
758 unsigned long address)
770 do_sigbus(struct pt_regs *regs, unsigned long error_code, unsigned long address,
781 no_context(regs, error_code, address);
786 if (is_prefetch(regs, error_code, address))
789 tsk->thread.cr2 = address;
797 tsk->comm, tsk->pid, address);
801 force_sig_info_fault(SIGBUS, code, address, tsk);
806 unsigned long address, unsigned int fault)
809 out_of_memory(regs, error_code, address);
812 do_sigbus(regs, error_code, address, fault);
842 spurious_fault(unsigned long error_code, unsigned long address)
854 pgd = init_mm.pgd + pgd_index(address);
858 pud = pud_offset(pgd, address);
865 pmd = pmd_offset(pud, address);
872 pte = pte_offset_kernel(pmd, address);
913 static int fault_in_kernel_space(unsigned long address)
915 return address >= TASK_SIZE_MAX;
919 * This routine handles page faults. It determines the address,
928 unsigned long address;
936 /* Get the faulting address: */
937 address = read_cr2();
947 if (unlikely(kmmio_fault(regs, address)))
963 if (unlikely(fault_in_kernel_space(address))) {
965 if (vmalloc_fault(address) >= 0)
968 if (kmemcheck_fault(regs, address, error_code))
973 if (spurious_fault(error_code, address))
983 bad_area_nosemaphore(regs, error_code, address);
1007 pgtable_bad(regs, error_code, address);
1009 perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, 0, regs, address);
1016 bad_area_nosemaphore(regs, error_code, address);
1026 * against the address space. Luckily the kernel only validly
1032 * deadlock. Attempt to lock the address space, if we cannot we then
1033 * validate the source. If this is invalid we can skip the address
1039 bad_area_nosemaphore(regs, error_code, address);
1052 vma = find_vma(mm, address);
1054 bad_area(regs, error_code, address);
1057 if (likely(vma->vm_start <= address))
1060 bad_area(regs, error_code, address);
1070 if (unlikely(address + 65536 + 32 * sizeof(unsigned long) < regs->sp)) {
1071 bad_area(regs, error_code, address);
1075 if (unlikely(expand_stack(vma, address))) {
1076 bad_area(regs, error_code, address);
1088 bad_area_access_error(regs, error_code, address);
1097 fault = handle_mm_fault(mm, vma, address, write ? FAULT_FLAG_WRITE : 0);
1100 mm_fault_error(regs, error_code, address, fault);
1107 regs, address);
1111 regs, address);
1114 check_v8086_mode(regs, address, tsk);