diff options
author | Dan Williams <dan.j.williams@intel.com> | 2016-03-03 20:38:00 +0300 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2016-03-05 23:25:45 +0300 |
commit | cfe30b872058f211630eda7f65fb19d83beaaa3c (patch) | |
tree | 44dd4131a1dd92ef45babff885cb6add604746a9 /drivers/nvdimm/pfn_devs.c | |
parent | d9cbe09d39aa13f6924dc5fb88325de7ef01a72e (diff) | |
download | linux-cfe30b872058f211630eda7f65fb19d83beaaa3c.tar.xz |
libnvdimm, pmem: adjust for section collisions with 'System RAM'
On a platform where 'Persistent Memory' and 'System RAM' are mixed
within a given sparsemem section, trim the namespace and notify about the
sub-optimal alignment.
Cc: Toshi Kani <toshi.kani@hpe.com>
Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/nvdimm/pfn_devs.c')
-rw-r--r-- | drivers/nvdimm/pfn_devs.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/nvdimm/pfn_devs.c b/drivers/nvdimm/pfn_devs.c index ae81a2f1da50..75a31a7359fb 100644 --- a/drivers/nvdimm/pfn_devs.c +++ b/drivers/nvdimm/pfn_devs.c @@ -299,6 +299,11 @@ int nd_pfn_validate(struct nd_pfn *nd_pfn) if (memcmp(pfn_sb->parent_uuid, parent_uuid, 16) != 0) return -ENODEV; + if (__le16_to_cpu(pfn_sb->version_minor) < 1) { + pfn_sb->start_pad = 0; + pfn_sb->end_trunc = 0; + } + switch (le32_to_cpu(pfn_sb->mode)) { case PFN_MODE_RAM: case PFN_MODE_PMEM: |