sandbox: vm: fix vm_cache.c_hdr_size not being calculated
This commit is contained in:
@@ -16,9 +16,9 @@ vm_cache_t *vm_cache_create(const char *name, size_t objsz, vm_cache_flags_t fla
|
||||
new_cache->c_name = name;
|
||||
new_cache->c_obj_size = objsz;
|
||||
new_cache->c_flags = flags;
|
||||
|
||||
|
||||
vm_cache_init(new_cache);
|
||||
|
||||
|
||||
return new_cache;
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ void vm_cache_init(vm_cache_t *cache)
|
||||
|
||||
size_t available = vm_page_order_to_bytes(cache->c_page_order);
|
||||
size_t space_per_item = cache->c_obj_size;
|
||||
|
||||
|
||||
/* align to 16-byte boundary */
|
||||
if (space_per_item & 0xF) {
|
||||
space_per_item &= ~0xF;
|
||||
@@ -43,7 +43,7 @@ void vm_cache_init(vm_cache_t *cache)
|
||||
if (!(cache->c_flags & VM_CACHE_OFFSLAB)) {
|
||||
available -= sizeof(vm_slab_t);
|
||||
}
|
||||
|
||||
|
||||
/* one entry in the freelist per object slot */
|
||||
space_per_item += sizeof(unsigned int);
|
||||
|
||||
@@ -51,6 +51,8 @@ void vm_cache_init(vm_cache_t *cache)
|
||||
cache->c_slabs_full = QUEUE_INIT;
|
||||
cache->c_slabs_partial = QUEUE_INIT;
|
||||
cache->c_slabs_empty = QUEUE_INIT;
|
||||
|
||||
cache->c_hdr_size = sizeof(vm_slab_t) + (sizeof(unsigned int) * cache->c_obj_count);
|
||||
}
|
||||
|
||||
void vm_cache_destroy(vm_cache_t *cache)
|
||||
|
||||
Reference in New Issue
Block a user