summaryrefslogtreecommitdiffstats
path: root/tools/testing/nvdimm/test
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2015-08-01 02:16:37 -0400
committerDan Williams <dan.j.williams@intel.com>2015-08-28 23:40:04 -0400
commit32ab0a3f51701cb37ab960635254d5f84ec3de0a (patch)
tree5e6ff1b400f4f1c42c7aecc76234f007d70e6a25 /tools/testing/nvdimm/test
parente1455744b27c9e6115c3508a7b2902157c2c4347 (diff)
downloadop-kernel-dev-32ab0a3f51701cb37ab960635254d5f84ec3de0a.zip
op-kernel-dev-32ab0a3f51701cb37ab960635254d5f84ec3de0a.tar.gz
libnvdimm, pmem: 'struct page' for pmem
Enable the pmem driver to handle PFN device instances. Attaching a pmem namespace to a pfn device triggers the driver to allocate and initialize struct page entries for pmem. Memory capacity for this allocation comes exclusively from RAM for now which is suitable for low PMEM to RAM ratios. This mechanism will be expanded later for setting an "allocate from PMEM" policy. Cc: Boaz Harrosh <boaz@plexistor.com> Cc: Ross Zwisler <ross.zwisler@linux.intel.com> Cc: Christoph Hellwig <hch@lst.de> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'tools/testing/nvdimm/test')
-rw-r--r--tools/testing/nvdimm/test/iomap.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/tools/testing/nvdimm/test/iomap.c b/tools/testing/nvdimm/test/iomap.c
index 179d228..b725131 100644
--- a/tools/testing/nvdimm/test/iomap.c
+++ b/tools/testing/nvdimm/test/iomap.c
@@ -108,6 +108,19 @@ void *__wrap_memremap(resource_size_t offset, size_t size,
}
EXPORT_SYMBOL(__wrap_memremap);
+void __wrap_devm_memunmap(struct device *dev, void *addr)
+{
+ struct nfit_test_resource *nfit_res;
+
+ rcu_read_lock();
+ nfit_res = get_nfit_res((unsigned long) addr);
+ rcu_read_unlock();
+ if (nfit_res)
+ return;
+ return devm_memunmap(dev, addr);
+}
+EXPORT_SYMBOL(__wrap_devm_memunmap);
+
void __iomem *__wrap_ioremap_nocache(resource_size_t offset, unsigned long size)
{
return __nfit_test_ioremap(offset, size, ioremap_nocache);
OpenPOWER on IntegriCloud