Commit d9d290d7 authored by Dan Williams's avatar Dan Williams
Browse files

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: 2522afb8 ("libnvdimm/region: Introduce an 'align' attribute")
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/164688416128.2879318.17890707310125575258.stgit@dwillia2-desk3.amr.corp.intel.com


Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
parent 2bec6d9a
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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)