diff options
author | Florin Coras <fcoras@cisco.com> | 2018-07-12 01:45:13 -0700 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2018-07-17 09:01:46 +0000 |
commit | 5da96a77a84ae5414debbc46d390464d51010113 (patch) | |
tree | 5895f437c915ea7a5db7288afa2f2c68820ed0b8 /src/svm/ssvm.c | |
parent | 208c29aac523231af2420a95ba7e5d361698780b (diff) |
session: make sure segment sizes are page aligned
Change-Id: Ibbba75d069ca1bbf9e5a1b8bd2f405d32021c656
Signed-off-by: Florin Coras <fcoras@cisco.com>
Diffstat (limited to 'src/svm/ssvm.c')
-rw-r--r-- | src/svm/ssvm.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/svm/ssvm.c b/src/svm/ssvm.c index dfb68c039ad..c005b61144b 100644 --- a/src/svm/ssvm.c +++ b/src/svm/ssvm.c @@ -331,10 +331,11 @@ ssvm_master_init_private (ssvm_private_t * ssvm) u32 pagesize = clib_mem_get_page_size (); ssvm_shared_header_t *sh; mheap_t *heap_header; - u32 rnd_size = 0; + u64 rnd_size = 0; u8 *heap; - rnd_size = (ssvm->ssvm_size + (pagesize - 1)) & ~pagesize; + rnd_size = (ssvm->ssvm_size + (pagesize - 1)) & ~(pagesize - 1); + rnd_size = clib_min (rnd_size, ((u64) 1 << 32) - pagesize); heap = mheap_alloc (0, rnd_size); if (heap == 0) { |