Lines Matching defs:walk

23  * struct vmemmap_remap_walk - walk vmemmap page table
36 struct vmemmap_remap_walk *walk);
52 struct vmemmap_remap_walk *walk)
87 if (!(walk->flags & VMEMMAP_SPLIT_NO_TLB_FLUSH))
98 unsigned long next, struct mm_walk *walk)
102 struct vmemmap_remap_walk *vmemmap_walk = walk->private;
106 walk->action = ACTION_CONTINUE;
139 unsigned long next, struct mm_walk *walk)
141 struct vmemmap_remap_walk *vmemmap_walk = walk->private;
162 struct vmemmap_remap_walk *walk)
170 NULL, walk);
175 if (walk->remap_pte && !(walk->flags & VMEMMAP_REMAP_NO_TLB_FLUSH))
208 struct vmemmap_remap_walk *walk)
219 if (unlikely(addr == walk->reuse_addr)) {
221 list_del(&walk->reuse_page->lru);
231 entry = mk_pte(walk->reuse_page, pgprot);
232 list_add(&page->lru, walk->vmemmap_pages);
256 struct vmemmap_remap_walk *walk)
262 BUG_ON(pte_page(ptep_get(pte)) != walk->reuse_page);
264 page = list_first_entry(walk->vmemmap_pages, struct page, lru);
267 copy_page(to, (void *)walk->reuse_addr);
292 struct vmemmap_remap_walk walk = {
300 return vmemmap_remap_range(reuse, end, &walk);
324 struct vmemmap_remap_walk walk = {
341 walk.reuse_page = alloc_pages_node(nid, gfp_mask, 0);
342 if (walk.reuse_page) {
343 copy_page(page_to_virt(walk.reuse_page),
344 (void *)walk.reuse_addr);
345 list_add(&walk.reuse_page->lru, vmemmap_pages);
364 ret = vmemmap_remap_range(reuse, end, &walk);
365 if (ret && walk.nr_walked) {
366 end = reuse + walk.nr_walked * PAGE_SIZE;
373 walk = (struct vmemmap_remap_walk) {
380 vmemmap_remap_range(reuse, end, &walk);
427 struct vmemmap_remap_walk walk = {
440 return vmemmap_remap_range(reuse, end, &walk);