In support of device-dax growing the ability to front physically dis-contiguous ranges of memory, update devm_memremap_pages() to track multiple ranges with a single reference counter and devm instance. Convert all [devm_]memremap_pages() users to specify the number of ranges they are mapping...
@@ -77,8 +77,6 @@ void *devm_memremap(struct device *dev, resource_size_t offset, 77 77 size_t size, unsigned long flags); 78 78 void devm_memunmap(struct device *dev, void *addr); 79 79 80 - void *__devm_memremap_pages(struct device *dev, struct resource *res); 81...
Creation of NVDIMM/pmem device fails in devm_memremap_pages Raw [ 4.267935] ---[ cut here ]--- [ 4.268424] devm_memremap_pages attempted on mixed region [mem 0xbb800000-0xbffd6fff flags 0x200] [ 4.268926] WARNING: CPU: 0 PID: 691 at kernel/memremap.c:207 devm_memremap_pages+0x341...
423 422 addr = devm_memremap_pages(dev, pgmap); drivers/dax/hmem/hmem.c +4-1 Original file line numberDiff line numberDiff line change @@ -13,13 +13,16 @@ static int dax_hmem_probe(struct platform_device *pdev) 13 13 struct dev_dax_data data; 14 14 struct dev_dax *...
Currently, kernel/memremap.c contains generic code for supporting memremap() (CONFIG_HAS_IOMEM) and devm_memremap_pages() (CONFIG_ZONE_DEVICE). This causes ongoing build maintenance problems as additions to memremap.c, especially for the ZONE_DEVICE case, need to be careful about being placed ...
Expand All @@ -66,9 +75,8 @@ static int fill_list(unsigned int nr_pages) vaddr = memremap_pages(pgmap, NUMA_NO_NODE); if (IS_ERR(vaddr)) { pr_err("Cannot remap memory range\n"); release_resource(&pgmap->res); kfree(pgmap); return PTR_ERR(vaddr); ret = PTR_ERR(vadd...