Restrict supported alignment for malloc_domainset_aligned(9) to PAGE_SIZE.
UMA page_alloc() does not take an alignment, so UMA can only handle alignment less then page size. Noted by: alc Reviewed by: alc, markj (previous version) Discussed with: jrtc27 Tested by: pho (previous version) MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D28219
This commit is contained in:
parent
e6d795d154
commit
0781c79d48
@ -772,7 +772,7 @@ malloc_domainset_aligned(size_t size, size_t align,
|
||||
KASSERT(align != 0 && powerof2(align),
|
||||
("malloc_domainset_aligned: wrong align %#zx size %#zx",
|
||||
align, size));
|
||||
KASSERT(align <= kmemzones[nitems(kmemzones) - 2].kz_size,
|
||||
KASSERT(align <= PAGE_SIZE,
|
||||
("malloc_domainset_aligned: align %#zx (size %#zx) too large",
|
||||
align, size));
|
||||
|
||||
@ -1173,7 +1173,7 @@ mallocinit(void *dummy)
|
||||
|
||||
align = UMA_ALIGN_PTR;
|
||||
if (powerof2(size) && size > sizeof(void *))
|
||||
align = size - 1;
|
||||
align = MIN(size, PAGE_SIZE) - 1;
|
||||
for (subzone = 0; subzone < numzones; subzone++) {
|
||||
kmemzones[indx].kz_zone[subzone] =
|
||||
uma_zcreate(name, size,
|
||||
|
Loading…
Reference in New Issue
Block a user