]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit
libnvdimm, dax: fix 1GB-aligned namespaces vs physical misalignment
authorDan Williams <dan.j.williams@intel.com>
Mon, 4 Dec 2017 22:07:43 +0000 (14:07 -0800)
committerDan Williams <dan.j.williams@intel.com>
Tue, 19 Dec 2017 23:37:34 +0000 (15:37 -0800)
commit41fce90f26333c4fa82e8e43b9ace86c4e8a0120
tree3d7083541ddb4e75d8224d4616177895dc9f2c9f
parent19deaa217bc04e83b59b5e8c8229eb0e53ad9efc
libnvdimm, dax: fix 1GB-aligned namespaces vs physical misalignment

The following namespace configuration attempt:

    # ndctl create-namespace -e namespace0.0 -m devdax -a 1G -f
    libndctl: ndctl_dax_enable: dax0.1: failed to enable
      Error: namespace0.0: failed to enable

    failed to reconfigure namespace: No such device or address

...fails when the backing memory range is not physically aligned to 1G:

    # cat /proc/iomem | grep Persistent
    210000000-30fffffff : Persistent Memory (legacy)

In the above example the 4G persistent memory range starts and ends on a
256MB boundary.

We handle this case correctly when needing to handle cases that violate
section alignment (128MB) collisions against "System RAM", and we simply
need to extend that padding/truncation for the 1GB alignment use case.

Cc: <stable@vger.kernel.org>
Fixes: 315c562536c4 ("libnvdimm, pfn: add 'align' attribute...")
Reported-and-tested-by: Jane Chu <jane.chu@oracle.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/nvdimm/pfn_devs.c