diff options
-rw-r--r-- | kern/slab.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/kern/slab.c b/kern/slab.c index e8451a8..19ebfed 100644 --- a/kern/slab.c +++ b/kern/slab.c @@ -702,7 +702,7 @@ static void kmem_cache_error(struct kmem_cache *cache, void *buf, int error, */ static void kmem_cache_compute_sizes(struct kmem_cache *cache, int flags) { - size_t i, buffers, buf_size, slab_size, free_slab_size, optimal_size; + size_t i, buffers, buf_size, slab_size, free_slab_size, optimal_size = 0; size_t waste, waste_min; int embed, optimal_embed = 0; @@ -745,6 +745,7 @@ static void kmem_cache_compute_sizes(struct kmem_cache *cache, int flags) } while ((buffers < KMEM_MIN_BUFS_PER_SLAB) && (slab_size < KMEM_SLAB_SIZE_THRESHOLD)); + assert(optimal_size > 0); assert(!(flags & KMEM_CACHE_NOOFFSLAB) || optimal_embed); cache->slab_size = optimal_size; |