This makes SLUB and SLAB use their own kmem_cache_free_bulk() (instead of __kmem_cache_free_bulk()) when kmem_cache_alloc_bulk() failed. And then it moves generic __kmem_cache_{alloc,free}_bulk to SLOB. This is suggested by Matthew WilCox. Hyeonggon Yoo (2): mm/sl[au]b: use own bulk free function when bulk alloc failed mm/slab_common: move generic bulk alloc/free functions to SLOB mm/slab.c | 2 +- mm/slab.h | 9 --------- mm/slab_common.c | 27 --------------------------- mm/slob.c | 25 +++++++++++++++++++++---- mm/slub.c | 4 ++-- 5 files changed, 24 insertions(+), 43 deletions(-) -- 2.32.0