Index: sys/vm/uma_core.c =================================================================== --- sys/vm/uma_core.c +++ sys/vm/uma_core.c @@ -2312,16 +2312,18 @@ * fragmentation. */ if (keg->uk_free > reserve) { - if (!LIST_EMPTY(&keg->uk_part_slab)) { + if (!LIST_EMPTY(&keg->uk_part_slab)) slab = LIST_FIRST(&keg->uk_part_slab); - } else { + else if (!LIST_EMPTY(&keg->uk_free_slab)) { slab = LIST_FIRST(&keg->uk_free_slab); LIST_REMOVE(slab, us_link); LIST_INSERT_HEAD(&keg->uk_part_slab, slab, us_link); } - MPASS(slab->us_keg == keg); - return (slab); + if (slab != NULL) { + MPASS(slab->us_keg == keg); + return (slab); + } } /*