vec_free (fn);
vec_free (ssvm->name);
- munmap ((void *) ssvm->requested_va, ssvm->ssvm_size);
+ munmap ((void *) ssvm->sh, ssvm->ssvm_size);
}
/**
u32 rnd_size = 0;
u8 *heap;
- rnd_size = (ssvm->ssvm_size + (pagesize - 1)) & ~(pagesize - 1);
- rnd_size = clib_min (rnd_size, ((u64) 1 << 32) - pagesize);
+ rnd_size = clib_max (ssvm->ssvm_size + (pagesize - 1), ssvm->ssvm_size);
+ rnd_size &= ~(pagesize - 1);
#if USE_DLMALLOC == 0
{
}
#else
heap = create_mspace (rnd_size, 1 /* locked */ );
+ mspace_disable_expand (heap);
#endif
ssvm->ssvm_size = rnd_size;
sh->heap = heap;
sh->ssvm_va = pointer_to_uword (heap);
sh->type = SSVM_SEGMENT_PRIVATE;
+ sh->name = ssvm->name;
return 0;
}