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_name = name;
|
||||||
new_cache->c_obj_size = objsz;
|
new_cache->c_obj_size = objsz;
|
||||||
new_cache->c_flags = flags;
|
new_cache->c_flags = flags;
|
||||||
|
|
||||||
vm_cache_init(new_cache);
|
vm_cache_init(new_cache);
|
||||||
|
|
||||||
return 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 available = vm_page_order_to_bytes(cache->c_page_order);
|
||||||
size_t space_per_item = cache->c_obj_size;
|
size_t space_per_item = cache->c_obj_size;
|
||||||
|
|
||||||
/* align to 16-byte boundary */
|
/* align to 16-byte boundary */
|
||||||
if (space_per_item & 0xF) {
|
if (space_per_item & 0xF) {
|
||||||
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)) {
|
if (!(cache->c_flags & VM_CACHE_OFFSLAB)) {
|
||||||
available -= sizeof(vm_slab_t);
|
available -= sizeof(vm_slab_t);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* one entry in the freelist per object slot */
|
/* one entry in the freelist per object slot */
|
||||||
space_per_item += sizeof(unsigned int);
|
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_full = QUEUE_INIT;
|
||||||
cache->c_slabs_partial = QUEUE_INIT;
|
cache->c_slabs_partial = QUEUE_INIT;
|
||||||
cache->c_slabs_empty = 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)
|
void vm_cache_destroy(vm_cache_t *cache)
|
||||||
|
|||||||
Reference in New Issue
Block a user