]> xenbits.xensource.com Git - osstest/rumprun.git/commitdiff
pgalloc_align: make page size min alignment
authorAntti Kantee <pooka@iki.fi>
Tue, 17 Nov 2015 11:40:33 +0000 (11:40 +0000)
committerAntti Kantee <pooka@iki.fi>
Tue, 17 Nov 2015 11:40:33 +0000 (11:40 +0000)
Fix callers and tighten assert.

lib/libbmk_core/pgalloc.c
lib/libbmk_rumpuser/rumpuser_mem.c

index 57c580bd08822362007b785d773661e659bd21c8..4c60341965b2a526b14ed14e0a5be423d12df4e0 100644 (file)
@@ -367,7 +367,7 @@ void *
 bmk_pgalloc(int order)
 {
 
-       return bmk_pgalloc_align(order, 1);
+       return bmk_pgalloc_align(order, BMK_PCPU_PAGE_SIZE);
 }
 
 void *
@@ -377,7 +377,7 @@ bmk_pgalloc_align(int order, unsigned long align)
        unsigned long p, len;
        unsigned int bucket;
 
-       bmk_assert((align & (align-1)) == 0);
+       bmk_assert(align >= BMK_PCPU_PAGE_SIZE && (align & (align-1)) == 0);
        bmk_assert((unsigned)order < FREELIST_LEVELS);
 
        for (bucket = order; bucket < FREELIST_LEVELS; bucket++) {
index 922b1363213f291753fd0bffcaa77d0453f1993d..bbcbb630969756f3ab91629f5213a92e19cb281a 100644 (file)
@@ -57,6 +57,9 @@ rumpuser_malloc(size_t len, int alignment, void **retval)
        if (len < BMK_PCPU_PAGE_SIZE) {
                *retval = bmk_memalloc(len, alignment, BMK_MEMWHO_RUMPKERN);
        } else {
+               bmk_assert((alignment & (alignment-1)) == 0);
+               if (alignment < BMK_PCPU_PAGE_SIZE)
+                       alignment = BMK_PCPU_PAGE_SIZE;
                *retval = bmk_pgalloc_align(len2order(len), alignment);
        }
        if (*retval)