Lines Matching refs:addr

36 	unsigned long addr; /* the requested address */  member
60 unsigned long addr; member
73 static struct list_head *kmmio_page_list(unsigned long addr) in kmmio_page_list() argument
76 pte_t *pte = lookup_address(addr, &l); in kmmio_page_list()
80 addr &= page_level_mask(l); in kmmio_page_list()
82 return &kmmio_page_table[hash_long(addr, KMMIO_PAGE_HASH_BITS)]; in kmmio_page_list()
97 static struct kmmio_probe *get_kmmio_probe(unsigned long addr) in get_kmmio_probe() argument
101 if (addr >= p->addr && addr < (p->addr + p->len)) in get_kmmio_probe()
108 static struct kmmio_fault_page *get_kmmio_fault_page(unsigned long addr) in get_kmmio_fault_page() argument
113 pte_t *pte = lookup_address(addr, &l); in get_kmmio_fault_page()
117 addr &= page_level_mask(l); in get_kmmio_fault_page()
118 head = kmmio_page_list(addr); in get_kmmio_fault_page()
120 if (f->addr == addr) in get_kmmio_fault_page()
151 pte_t *pte = lookup_address(f->addr, &level); in clear_page_presence()
154 pr_err("no pte for addr 0x%08lx\n", f->addr); in clear_page_presence()
170 __flush_tlb_one(f->addr); in clear_page_presence()
191 f->addr, f->count, !!f->old_presence); in arm_kmmio_fault_page()
195 f->addr); in arm_kmmio_fault_page()
205 KERN_ERR "kmmio disarming at 0x%08lx failed.\n", f->addr); in disarm_kmmio_fault_page()
224 int kmmio_handler(struct pt_regs *regs, unsigned long addr) in kmmio_handler() argument
229 unsigned long page_base = addr; in kmmio_handler()
231 pte_t *pte = lookup_address(addr, &l); in kmmio_handler()
259 if (page_base == ctx->addr) { in kmmio_handler()
266 addr, smp_processor_id()); in kmmio_handler()
270 addr, smp_processor_id()); in kmmio_handler()
278 smp_processor_id(), addr); in kmmio_handler()
279 pr_emerg("previous hit was at 0x%08lx.\n", ctx->addr); in kmmio_handler()
289 ctx->addr = page_base; in kmmio_handler()
292 ctx->probe->pre_handler(ctx->probe, regs, addr); in kmmio_handler()
374 static int add_kmmio_fault_page(unsigned long addr) in add_kmmio_fault_page() argument
378 f = get_kmmio_fault_page(addr); in add_kmmio_fault_page()
391 f->addr = addr; in add_kmmio_fault_page()
398 list_add_rcu(&f->list, kmmio_page_list(f->addr)); in add_kmmio_fault_page()
404 static void release_kmmio_fault_page(unsigned long addr, in release_kmmio_fault_page() argument
409 f = get_kmmio_fault_page(addr); in release_kmmio_fault_page()
437 const unsigned long size_lim = p->len + (p->addr & ~PAGE_MASK); in register_kmmio_probe()
442 if (get_kmmio_probe(p->addr)) { in register_kmmio_probe()
447 pte = lookup_address(p->addr, &l); in register_kmmio_probe()
456 if (add_kmmio_fault_page(p->addr + size)) in register_kmmio_probe()
530 const unsigned long size_lim = p->len + (p->addr & ~PAGE_MASK); in unregister_kmmio_probe()
536 pte = lookup_address(p->addr, &l); in unregister_kmmio_probe()
542 release_kmmio_fault_page(p->addr + size, &release_list); in unregister_kmmio_probe()