pgmap 388 drivers/dax/bus.c struct dev_pagemap *pgmap, enum dev_dax_subsys subsys) pgmap 404 drivers/dax/bus.c memcpy(&dev_dax->pgmap, pgmap, sizeof(*pgmap)); pgmap 22 drivers/dax/bus.h struct dev_pagemap *pgmap, enum dev_dax_subsys subsys); pgmap 25 drivers/dax/bus.h int id, struct dev_pagemap *pgmap) pgmap 27 drivers/dax/bus.h return __devm_create_dev_dax(dax_region, id, pgmap, DEV_DAX_BUS); pgmap 53 drivers/dax/dax-private.h struct dev_pagemap pgmap; pgmap 431 drivers/dax/device.c dev_dax->pgmap.type = MEMORY_DEVICE_DEVDAX; pgmap 432 drivers/dax/device.c addr = devm_memremap_pages(dev, &dev_dax->pgmap); pgmap 19 drivers/dax/pmem/core.c struct dev_pagemap pgmap = { }; pgmap 34 drivers/dax/pmem/core.c rc = nvdimm_setup_pfn(nd_pfn, &pgmap); pgmap 53 drivers/dax/pmem/core.c memcpy(&res, &pgmap.res, sizeof(res)); pgmap 61 drivers/dax/pmem/core.c dev_dax = __devm_create_dev_dax(dax_region, id, &pgmap, subsys); pgmap 126 drivers/dax/super.c struct dev_pagemap *pgmap, *end_pgmap; pgmap 128 drivers/dax/super.c pgmap = get_dev_pagemap(pfn_t_to_pfn(pfn), NULL); pgmap 130 drivers/dax/super.c if (pgmap && pgmap == end_pgmap && pgmap->type == MEMORY_DEVICE_FS_DAX pgmap 131 drivers/dax/super.c && pfn_t_to_page(pfn)->pgmap == pgmap pgmap 132 drivers/dax/super.c && pfn_t_to_page(end_pfn)->pgmap == pgmap pgmap 136 drivers/dax/super.c put_dev_pagemap(pgmap); pgmap 84 drivers/gpu/drm/nouveau/nouveau_dmem.c return container_of(page->pgmap, struct nouveau_dmem, pagemap); pgmap 378 drivers/nvdimm/nd.h int nvdimm_setup_pfn(struct nd_pfn *nd_pfn, struct dev_pagemap *pgmap); pgmap 383 drivers/nvdimm/nd.h struct dev_pagemap *pgmap) pgmap 663 drivers/nvdimm/pfn_devs.c static int __nvdimm_setup_pfn(struct nd_pfn *nd_pfn, struct dev_pagemap *pgmap) pgmap 665 drivers/nvdimm/pfn_devs.c struct resource *res = &pgmap->res; pgmap 666 drivers/nvdimm/pfn_devs.c struct vmem_altmap *altmap = &pgmap->altmap; pgmap 700 drivers/nvdimm/pfn_devs.c pgmap->flags |= PGMAP_ALTMAP_VALID; pgmap 806 drivers/nvdimm/pfn_devs.c int nvdimm_setup_pfn(struct nd_pfn *nd_pfn, struct dev_pagemap *pgmap) pgmap 818 drivers/nvdimm/pfn_devs.c return __nvdimm_setup_pfn(nd_pfn, pgmap); pgmap 310 drivers/nvdimm/pmem.c static void pmem_pagemap_cleanup(struct dev_pagemap *pgmap) pgmap 313 drivers/nvdimm/pmem.c container_of(pgmap->ref, struct request_queue, q_usage_counter); pgmap 318 drivers/nvdimm/pmem.c static void pmem_release_queue(void *pgmap) pgmap 320 drivers/nvdimm/pmem.c pmem_pagemap_cleanup(pgmap); pgmap 323 drivers/nvdimm/pmem.c static void pmem_pagemap_kill(struct dev_pagemap *pgmap) pgmap 326 drivers/nvdimm/pmem.c container_of(pgmap->ref, struct request_queue, q_usage_counter); pgmap 378 drivers/nvdimm/pmem.c rc = nvdimm_setup_pfn(nd_pfn, &pmem->pgmap); pgmap 406 drivers/nvdimm/pmem.c pmem->pgmap.ref = &q->q_usage_counter; pgmap 408 drivers/nvdimm/pmem.c pmem->pgmap.type = MEMORY_DEVICE_FS_DAX; pgmap 409 drivers/nvdimm/pmem.c pmem->pgmap.ops = &fsdax_pagemap_ops; pgmap 410 drivers/nvdimm/pmem.c addr = devm_memremap_pages(dev, &pmem->pgmap); pgmap 414 drivers/nvdimm/pmem.c resource_size(&pmem->pgmap.res); pgmap 416 drivers/nvdimm/pmem.c memcpy(&bb_res, &pmem->pgmap.res, sizeof(bb_res)); pgmap 419 drivers/nvdimm/pmem.c memcpy(&pmem->pgmap.res, &nsio->res, sizeof(pmem->pgmap.res)); pgmap 420 drivers/nvdimm/pmem.c pmem->pgmap.type = MEMORY_DEVICE_FS_DAX; pgmap 421 drivers/nvdimm/pmem.c pmem->pgmap.ops = &fsdax_pagemap_ops; pgmap 422 drivers/nvdimm/pmem.c addr = devm_memremap_pages(dev, &pmem->pgmap); pgmap 424 drivers/nvdimm/pmem.c memcpy(&bb_res, &pmem->pgmap.res, sizeof(bb_res)); pgmap 427 drivers/nvdimm/pmem.c &pmem->pgmap)) pgmap 26 drivers/nvdimm/pmem.h struct dev_pagemap pgmap; pgmap 37 drivers/pci/p2pdma.c struct dev_pagemap pgmap; pgmap 42 drivers/pci/p2pdma.c static struct pci_p2pdma_pagemap *to_p2p_pgmap(struct dev_pagemap *pgmap) pgmap 44 drivers/pci/p2pdma.c return container_of(pgmap, struct pci_p2pdma_pagemap, pgmap); pgmap 161 drivers/pci/p2pdma.c struct dev_pagemap *pgmap; pgmap 187 drivers/pci/p2pdma.c pgmap = &p2p_pgmap->pgmap; pgmap 188 drivers/pci/p2pdma.c pgmap->res.start = pci_resource_start(pdev, bar) + offset; pgmap 189 drivers/pci/p2pdma.c pgmap->res.end = pgmap->res.start + size - 1; pgmap 190 drivers/pci/p2pdma.c pgmap->res.flags = pci_resource_flags(pdev, bar); pgmap 191 drivers/pci/p2pdma.c pgmap->type = MEMORY_DEVICE_PCI_P2PDMA; pgmap 197 drivers/pci/p2pdma.c addr = devm_memremap_pages(&pdev->dev, pgmap); pgmap 205 drivers/pci/p2pdma.c resource_size(&pgmap->res), dev_to_node(&pdev->dev), pgmap 206 drivers/pci/p2pdma.c pgmap->ref); pgmap 211 drivers/pci/p2pdma.c &pgmap->res); pgmap 216 drivers/pci/p2pdma.c devm_memunmap_pages(&pdev->dev, pgmap); pgmap 218 drivers/pci/p2pdma.c devm_kfree(&pdev->dev, pgmap); pgmap 859 drivers/pci/p2pdma.c to_p2p_pgmap(sg_page(sg)->pgmap); pgmap 892 drivers/pci/p2pdma.c to_p2p_pgmap(sg_page(sg)->pgmap); pgmap 242 include/linux/huge_mm.h pmd_t *pmd, int flags, struct dev_pagemap **pgmap); pgmap 244 include/linux/huge_mm.h pud_t *pud, int flags, struct dev_pagemap **pgmap); pgmap 393 include/linux/huge_mm.h unsigned long addr, pmd_t *pmd, int flags, struct dev_pagemap **pgmap) pgmap 399 include/linux/huge_mm.h unsigned long addr, pud_t *pud, int flags, struct dev_pagemap **pgmap) pgmap 78 include/linux/memremap.h void (*kill)(struct dev_pagemap *pgmap); pgmap 83 include/linux/memremap.h void (*cleanup)(struct dev_pagemap *pgmap); pgmap 118 include/linux/memremap.h static inline struct vmem_altmap *pgmap_altmap(struct dev_pagemap *pgmap) pgmap 120 include/linux/memremap.h if (pgmap->flags & PGMAP_ALTMAP_VALID) pgmap 121 include/linux/memremap.h return &pgmap->altmap; pgmap 126 include/linux/memremap.h void *memremap_pages(struct dev_pagemap *pgmap, int nid); pgmap 127 include/linux/memremap.h void memunmap_pages(struct dev_pagemap *pgmap); pgmap 128 include/linux/memremap.h void *devm_memremap_pages(struct device *dev, struct dev_pagemap *pgmap); pgmap 129 include/linux/memremap.h void devm_memunmap_pages(struct device *dev, struct dev_pagemap *pgmap); pgmap 131 include/linux/memremap.h struct dev_pagemap *pgmap); pgmap 137 include/linux/memremap.h struct dev_pagemap *pgmap) pgmap 149 include/linux/memremap.h struct dev_pagemap *pgmap) pgmap 154 include/linux/memremap.h struct dev_pagemap *pgmap) pgmap 170 include/linux/memremap.h static inline void put_dev_pagemap(struct dev_pagemap *pgmap) pgmap 172 include/linux/memremap.h if (pgmap) pgmap 173 include/linux/memremap.h percpu_ref_put(pgmap->ref); pgmap 990 include/linux/mm.h switch (page->pgmap->type) { pgmap 1013 include/linux/mm.h page->pgmap->type == MEMORY_DEVICE_PRIVATE; pgmap 1021 include/linux/mm.h page->pgmap->type == MEMORY_DEVICE_PCI_P2PDMA; pgmap 160 include/linux/mm_types.h struct dev_pagemap *pgmap; pgmap 28 mm/gup.c struct dev_pagemap *pgmap; pgmap 184 mm/gup.c struct dev_pagemap **pgmap) pgmap 228 mm/gup.c *pgmap = get_dev_pagemap(pte_pfn(pte), *pgmap); pgmap 229 mm/gup.c if (*pgmap) pgmap 368 mm/gup.c page = follow_devmap_pmd(vma, address, pmd, flags, &ctx->pgmap); pgmap 374 mm/gup.c return follow_page_pte(vma, address, pmd, flags, &ctx->pgmap); pgmap 394 mm/gup.c return follow_page_pte(vma, address, pmd, flags, &ctx->pgmap); pgmap 424 mm/gup.c follow_page_pte(vma, address, pmd, flags, &ctx->pgmap); pgmap 461 mm/gup.c page = follow_devmap_pud(vma, address, pud, flags, &ctx->pgmap); pgmap 564 mm/gup.c if (ctx.pgmap) pgmap 565 mm/gup.c put_dev_pagemap(ctx.pgmap); pgmap 905 mm/gup.c if (ctx.pgmap) pgmap 906 mm/gup.c put_dev_pagemap(ctx.pgmap); pgmap 1829 mm/gup.c struct dev_pagemap *pgmap = NULL; pgmap 1852 mm/gup.c pgmap = get_dev_pagemap(pte_pfn(pte), pgmap); pgmap 1853 mm/gup.c if (unlikely(!pgmap)) { pgmap 1883 mm/gup.c if (pgmap) pgmap 1884 mm/gup.c put_dev_pagemap(pgmap); pgmap 1911 mm/gup.c struct dev_pagemap *pgmap = NULL; pgmap 1916 mm/gup.c pgmap = get_dev_pagemap(pfn, pgmap); pgmap 1917 mm/gup.c if (unlikely(!pgmap)) { pgmap 1928 mm/gup.c if (pgmap) pgmap 1929 mm/gup.c put_dev_pagemap(pgmap); pgmap 218 mm/hmm.c struct dev_pagemap *pgmap; pgmap 425 mm/hmm.c hmm_vma_walk->pgmap = get_dev_pagemap(pfn, pgmap 426 mm/hmm.c hmm_vma_walk->pgmap); pgmap 427 mm/hmm.c if (unlikely(!hmm_vma_walk->pgmap)) pgmap 432 mm/hmm.c if (hmm_vma_walk->pgmap) { pgmap 433 mm/hmm.c put_dev_pagemap(hmm_vma_walk->pgmap); pgmap 434 mm/hmm.c hmm_vma_walk->pgmap = NULL; pgmap 530 mm/hmm.c hmm_vma_walk->pgmap = get_dev_pagemap(pte_pfn(pte), pgmap 531 mm/hmm.c hmm_vma_walk->pgmap); pgmap 532 mm/hmm.c if (unlikely(!hmm_vma_walk->pgmap)) pgmap 543 mm/hmm.c if (hmm_vma_walk->pgmap) { pgmap 544 mm/hmm.c put_dev_pagemap(hmm_vma_walk->pgmap); pgmap 545 mm/hmm.c hmm_vma_walk->pgmap = NULL; pgmap 629 mm/hmm.c if (hmm_vma_walk->pgmap) { pgmap 636 mm/hmm.c put_dev_pagemap(hmm_vma_walk->pgmap); pgmap 637 mm/hmm.c hmm_vma_walk->pgmap = NULL; pgmap 692 mm/hmm.c hmm_vma_walk->pgmap = get_dev_pagemap(pfn, pgmap 693 mm/hmm.c hmm_vma_walk->pgmap); pgmap 694 mm/hmm.c if (unlikely(!hmm_vma_walk->pgmap)) pgmap 699 mm/hmm.c if (hmm_vma_walk->pgmap) { pgmap 700 mm/hmm.c put_dev_pagemap(hmm_vma_walk->pgmap); pgmap 701 mm/hmm.c hmm_vma_walk->pgmap = NULL; pgmap 921 mm/hmm.c hmm_vma_walk.pgmap = NULL; pgmap 936 mm/huge_memory.c pmd_t *pmd, int flags, struct dev_pagemap **pgmap) pgmap 969 mm/huge_memory.c *pgmap = get_dev_pagemap(pfn, *pgmap); pgmap 970 mm/huge_memory.c if (!*pgmap) pgmap 1082 mm/huge_memory.c pud_t *pud, int flags, struct dev_pagemap **pgmap) pgmap 1109 mm/huge_memory.c *pgmap = get_dev_pagemap(pfn, *pgmap); pgmap 1110 mm/huge_memory.c if (!*pgmap) pgmap 1157 mm/memory-failure.c struct dev_pagemap *pgmap) pgmap 1184 mm/memory-failure.c if (pgmap->type == MEMORY_DEVICE_PRIVATE) { pgmap 1226 mm/memory-failure.c put_dev_pagemap(pgmap); pgmap 1253 mm/memory-failure.c struct dev_pagemap *pgmap; pgmap 1263 mm/memory-failure.c pgmap = get_dev_pagemap(pfn, NULL); pgmap 1264 mm/memory-failure.c if (pgmap) pgmap 1266 mm/memory-failure.c pgmap); pgmap 2772 mm/memory.c ret = vmf->page->pgmap->ops->migrate_to_ram(vmf); pgmap 28 mm/memremap.c static int devmap_managed_enable_get(struct dev_pagemap *pgmap) pgmap 30 mm/memremap.c if (!pgmap->ops || !pgmap->ops->page_free) { pgmap 40 mm/memremap.c static int devmap_managed_enable_get(struct dev_pagemap *pgmap) pgmap 56 mm/memremap.c static unsigned long pfn_first(struct dev_pagemap *pgmap) pgmap 58 mm/memremap.c return PHYS_PFN(pgmap->res.start) + pgmap 59 mm/memremap.c vmem_altmap_offset(pgmap_altmap(pgmap)); pgmap 62 mm/memremap.c static unsigned long pfn_end(struct dev_pagemap *pgmap) pgmap 64 mm/memremap.c const struct resource *res = &pgmap->res; pgmap 79 mm/memremap.c static void dev_pagemap_kill(struct dev_pagemap *pgmap) pgmap 81 mm/memremap.c if (pgmap->ops && pgmap->ops->kill) pgmap 82 mm/memremap.c pgmap->ops->kill(pgmap); pgmap 84 mm/memremap.c percpu_ref_kill(pgmap->ref); pgmap 87 mm/memremap.c static void dev_pagemap_cleanup(struct dev_pagemap *pgmap) pgmap 89 mm/memremap.c if (pgmap->ops && pgmap->ops->cleanup) { pgmap 90 mm/memremap.c pgmap->ops->cleanup(pgmap); pgmap 92 mm/memremap.c wait_for_completion(&pgmap->done); pgmap 93 mm/memremap.c percpu_ref_exit(pgmap->ref); pgmap 99 mm/memremap.c if (pgmap->ref == &pgmap->internal_ref) pgmap 100 mm/memremap.c pgmap->ref = NULL; pgmap 103 mm/memremap.c void memunmap_pages(struct dev_pagemap *pgmap) pgmap 105 mm/memremap.c struct resource *res = &pgmap->res; pgmap 110 mm/memremap.c dev_pagemap_kill(pgmap); pgmap 111 mm/memremap.c for_each_device_pfn(pfn, pgmap) pgmap 113 mm/memremap.c dev_pagemap_cleanup(pgmap); pgmap 116 mm/memremap.c first_page = pfn_to_page(pfn_first(pgmap)); pgmap 122 mm/memremap.c if (pgmap->type == MEMORY_DEVICE_PRIVATE) { pgmap 127 mm/memremap.c pgmap_altmap(pgmap)); pgmap 134 mm/memremap.c WARN_ONCE(pgmap->altmap.alloc, "failed to free all reserved pages\n"); pgmap 146 mm/memremap.c struct dev_pagemap *pgmap = pgmap 149 mm/memremap.c complete(&pgmap->done); pgmap 157 mm/memremap.c void *memremap_pages(struct dev_pagemap *pgmap, int nid) pgmap 159 mm/memremap.c struct resource *res = &pgmap->res; pgmap 165 mm/memremap.c .altmap = pgmap_altmap(pgmap), pgmap 171 mm/memremap.c switch (pgmap->type) { pgmap 177 mm/memremap.c if (!pgmap->ops || !pgmap->ops->migrate_to_ram) { pgmap 194 mm/memremap.c WARN(1, "Invalid pgmap type %d\n", pgmap->type); pgmap 198 mm/memremap.c if (!pgmap->ref) { pgmap 199 mm/memremap.c if (pgmap->ops && (pgmap->ops->kill || pgmap->ops->cleanup)) pgmap 202 mm/memremap.c init_completion(&pgmap->done); pgmap 203 mm/memremap.c error = percpu_ref_init(&pgmap->internal_ref, pgmap 207 mm/memremap.c pgmap->ref = &pgmap->internal_ref; pgmap 209 mm/memremap.c if (!pgmap->ops || !pgmap->ops->kill || !pgmap->ops->cleanup) { pgmap 216 mm/memremap.c error = devmap_managed_enable_get(pgmap); pgmap 248 mm/memremap.c PHYS_PFN(res->end), pgmap, GFP_KERNEL)); pgmap 273 mm/memremap.c if (pgmap->type == MEMORY_DEVICE_PRIVATE) { pgmap 305 mm/memremap.c PHYS_PFN(resource_size(res)), pgmap); pgmap 306 mm/memremap.c percpu_ref_get_many(pgmap->ref, pfn_end(pgmap) - pfn_first(pgmap)); pgmap 316 mm/memremap.c dev_pagemap_kill(pgmap); pgmap 317 mm/memremap.c dev_pagemap_cleanup(pgmap); pgmap 343 mm/memremap.c void *devm_memremap_pages(struct device *dev, struct dev_pagemap *pgmap) pgmap 348 mm/memremap.c ret = memremap_pages(pgmap, dev_to_node(dev)); pgmap 353 mm/memremap.c pgmap); pgmap 360 mm/memremap.c void devm_memunmap_pages(struct device *dev, struct dev_pagemap *pgmap) pgmap 362 mm/memremap.c devm_release_action(dev, devm_memremap_pages_release, pgmap); pgmap 388 mm/memremap.c struct dev_pagemap *pgmap) pgmap 395 mm/memremap.c if (pgmap) { pgmap 396 mm/memremap.c if (phys >= pgmap->res.start && phys <= pgmap->res.end) pgmap 397 mm/memremap.c return pgmap; pgmap 398 mm/memremap.c put_dev_pagemap(pgmap); pgmap 403 mm/memremap.c pgmap = xa_load(&pgmap_array, PHYS_PFN(phys)); pgmap 404 mm/memremap.c if (pgmap && !percpu_ref_tryget_live(pgmap->ref)) pgmap 405 mm/memremap.c pgmap = NULL; pgmap 408 mm/memremap.c return pgmap; pgmap 452 mm/memremap.c page->pgmap->ops->page_free(page); pgmap 5949 mm/page_alloc.c struct dev_pagemap *pgmap) pgmap 5953 mm/page_alloc.c struct vmem_altmap *altmap = pgmap_altmap(pgmap); pgmap 5958 mm/page_alloc.c if (WARN_ON_ONCE(!pgmap || zone_idx(zone) != ZONE_DEVICE)) pgmap 5990 mm/page_alloc.c page->pgmap = pgmap; pgmap 103 mm/swap.c put_dev_pagemap(page->pgmap); pgmap 101 tools/testing/nvdimm/test/iomap.c struct dev_pagemap *pgmap = _pgmap; pgmap 103 tools/testing/nvdimm/test/iomap.c WARN_ON(!pgmap || !pgmap->ref); pgmap 105 tools/testing/nvdimm/test/iomap.c if (pgmap->ops && pgmap->ops->kill) pgmap 106 tools/testing/nvdimm/test/iomap.c pgmap->ops->kill(pgmap); pgmap 108 tools/testing/nvdimm/test/iomap.c percpu_ref_kill(pgmap->ref); pgmap 110 tools/testing/nvdimm/test/iomap.c if (pgmap->ops && pgmap->ops->cleanup) { pgmap 111 tools/testing/nvdimm/test/iomap.c pgmap->ops->cleanup(pgmap); pgmap 113 tools/testing/nvdimm/test/iomap.c wait_for_completion(&pgmap->done); pgmap 114 tools/testing/nvdimm/test/iomap.c percpu_ref_exit(pgmap->ref); pgmap 120 tools/testing/nvdimm/test/iomap.c struct dev_pagemap *pgmap = pgmap 123 tools/testing/nvdimm/test/iomap.c complete(&pgmap->done); pgmap 126 tools/testing/nvdimm/test/iomap.c void *__wrap_devm_memremap_pages(struct device *dev, struct dev_pagemap *pgmap) pgmap 129 tools/testing/nvdimm/test/iomap.c resource_size_t offset = pgmap->res.start; pgmap 133 tools/testing/nvdimm/test/iomap.c return devm_memremap_pages(dev, pgmap); pgmap 135 tools/testing/nvdimm/test/iomap.c if (!pgmap->ref) { pgmap 136 tools/testing/nvdimm/test/iomap.c if (pgmap->ops && (pgmap->ops->kill || pgmap->ops->cleanup)) pgmap 139 tools/testing/nvdimm/test/iomap.c init_completion(&pgmap->done); pgmap 140 tools/testing/nvdimm/test/iomap.c error = percpu_ref_init(&pgmap->internal_ref, pgmap 144 tools/testing/nvdimm/test/iomap.c pgmap->ref = &pgmap->internal_ref; pgmap 146 tools/testing/nvdimm/test/iomap.c if (!pgmap->ops || !pgmap->ops->kill || !pgmap->ops->cleanup) { pgmap 152 tools/testing/nvdimm/test/iomap.c error = devm_add_action_or_reset(dev, nfit_test_kill, pgmap);