summaryrefslogtreecommitdiffstats
path: root/drivers/nvdimm
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2022-03-10 04:49:21 +0100
committerDan Williams <dan.j.williams@intel.com>2022-03-12 00:53:12 +0100
commitd9d290d7e659e9db3e4518040cc18b97f5535f4a (patch)
treeb7c12e13408391f9199e5fa288cd4b0750a9fe65 /drivers/nvdimm
parentdocs: ABI: sysfs-bus-nvdimm: Document sysfs event format entries for nvdimm pmu (diff)
downloadlinux-d9d290d7e659e9db3e4518040cc18b97f5535f4a.tar.xz
linux-d9d290d7e659e9db3e4518040cc18b97f5535f4a.zip
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 <hch@lst.de> Link: https://lore.kernel.org/r/164688416128.2879318.17890707310125575258.stgit@dwillia2-desk3.amr.corp.intel.com Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/nvdimm')
-rw-r--r--drivers/nvdimm/region_devs.c3
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)