Permit platforms with section-misaligned persistent memory to establish memory-mode (pfn) namespaces. This sacrifices 64-128MB of pmem to gain third-party DMA/RDMA support.
Changes since v1 [1]: 1/ Dropped "mm: fix mixed zone detection in devm_memremap_pages" since it was pulled into Andrew's tree. 2/ Moved CONFIG_SPARSEMEM #ifdef guards into drivers/nvdimm/pfn.h 3/ Added "libnvdimm, pmem: adjust for section collisions with 'System RAM'", i.e. support for reserving head and tail capacity out of a namespace to permit a section aligned range to be used for a 'pfn'-device instance. 4/ Added 'resource' and 'size' attributes to an active pfn instance. [1]: https://lists.01.org/pipermail/linux-nvdimm/2016-February/004727.html This series is built on top of tip.git/core/resources. --- Dan Williams (3): libnvdimm, pmem: fix 'pfn' support for section-misaligned namespaces libnvdimm, pmem: adjust for section collisions with 'System RAM' libnvdimm, pfn: 'resource'-address and 'size' attributes for pfn devices drivers/nvdimm/namespace_devs.c | 7 ++ drivers/nvdimm/pfn.h | 23 ++++++ drivers/nvdimm/pfn_devs.c | 61 ++++++++++++++++ drivers/nvdimm/pmem.c | 145 ++++++++++++++++++++++++++++++--------- 4 files changed, 200 insertions(+), 36 deletions(-)