Lines Matching refs:pgmap
68 return page->pgmap->page_fault(vma, addr, page, flags, pmdp); in device_private_entry_fault()
88 static unsigned long pfn_first(struct dev_pagemap *pgmap) in pfn_first() argument
90 const struct resource *res = &pgmap->res; in pfn_first()
91 struct vmem_altmap *altmap = &pgmap->altmap; in pfn_first()
95 if (pgmap->altmap_valid) in pfn_first()
100 static unsigned long pfn_end(struct dev_pagemap *pgmap) in pfn_end() argument
102 const struct resource *res = &pgmap->res; in pfn_end()
119 struct dev_pagemap *pgmap = data; in devm_memremap_pages_release() local
120 struct device *dev = pgmap->dev; in devm_memremap_pages_release()
121 struct resource *res = &pgmap->res; in devm_memremap_pages_release()
125 for_each_device_pfn(pfn, pgmap) in devm_memremap_pages_release()
128 if (percpu_ref_tryget_live(pgmap->ref)) { in devm_memremap_pages_release()
130 percpu_ref_put(pgmap->ref); in devm_memremap_pages_release()
139 arch_remove_memory(align_start, align_size, pgmap->altmap_valid ? in devm_memremap_pages_release()
140 &pgmap->altmap : NULL); in devm_memremap_pages_release()
146 dev_WARN_ONCE(dev, pgmap->altmap.alloc, in devm_memremap_pages_release()
172 void *devm_memremap_pages(struct device *dev, struct dev_pagemap *pgmap) in devm_memremap_pages() argument
175 struct vmem_altmap *altmap = pgmap->altmap_valid ? in devm_memremap_pages()
176 &pgmap->altmap : NULL; in devm_memremap_pages()
177 struct resource *res = &pgmap->res; in devm_memremap_pages()
214 if (!pgmap->ref) in devm_memremap_pages()
217 pgmap->dev = dev; in devm_memremap_pages()
224 PHYS_PFN(res->start) + pgoff, order, pgmap); in devm_memremap_pages()
259 for_each_device_pfn(pfn, pgmap) { in devm_memremap_pages()
269 page->pgmap = pgmap; in devm_memremap_pages()
270 percpu_ref_get(pgmap->ref); in devm_memremap_pages()
273 devm_add_action(dev, devm_memremap_pages_release, pgmap); in devm_memremap_pages()
308 struct dev_pagemap *pgmap) in get_dev_pagemap() argument
315 if (pgmap) { in get_dev_pagemap()
316 if (phys >= pgmap->res.start && phys <= pgmap->res.end) in get_dev_pagemap()
317 return pgmap; in get_dev_pagemap()
318 put_dev_pagemap(pgmap); in get_dev_pagemap()
323 pgmap = radix_tree_lookup(&pgmap_radix, PHYS_PFN(phys)); in get_dev_pagemap()
324 if (pgmap && !percpu_ref_tryget_live(pgmap->ref)) in get_dev_pagemap()
325 pgmap = NULL; in get_dev_pagemap()
328 return pgmap; in get_dev_pagemap()
370 page->pgmap->page_free(page, page->pgmap->data); in __put_devmap_managed_page()