diff options
author | Dan Williams <[email protected]> | 2022-03-09 19:49:21 -0800 |
---|---|---|
committer | Dan Williams <[email protected]> | 2022-03-11 15:53:12 -0800 |
commit | d9d290d7e659e9db3e4518040cc18b97f5535f4a (patch) | |
tree | b7c12e13408391f9199e5fa288cd4b0750a9fe65 | |
parent | 2bec6d9aa89cbe97deb6fbc64708212b780605a4 (diff) |
nvdimm/region: Fix default alignment for small regions
In preparation for removing BLK aperture support the NVDIMM unit tests
discovered that the default alignment can be set higher than the
capacity of the region. Fall back to PAGE_SIZE in that case.
Given this has not been seen in the wild, elide notifying -stable.
Fixes: 2522afb86a8c ("libnvdimm/region: Introduce an 'align' attribute")
Reviewed-by: Christoph Hellwig <[email protected]>
Link: https://lore.kernel.org/r/164688416128.2879318.17890707310125575258.stgit@dwillia2-desk3.amr.corp.intel.com
Signed-off-by: Dan Williams <[email protected]>
-rw-r--r-- | drivers/nvdimm/region_devs.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/nvdimm/region_devs.c b/drivers/nvdimm/region_devs.c index 9ccf3d608799..70ad891a76ba 100644 --- a/drivers/nvdimm/region_devs.c +++ b/drivers/nvdimm/region_devs.c @@ -1025,6 +1025,9 @@ static unsigned long default_align(struct nd_region *nd_region) } } + if (nd_region->ndr_size < MEMREMAP_COMPAT_ALIGN_MAX) + align = PAGE_SIZE; + mappings = max_t(u16, 1, nd_region->ndr_mappings); div_u64_rem(align, mappings, &remainder); if (remainder) |