diff --git a/mm/slub.c b/mm/slub.c index a94b9f46261b..e309ed140fd1 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -2912,8 +2912,7 @@ static inline int slab_order(int size, int min_objects, if (order_objects(min_order, size, reserved) > MAX_OBJS_PER_PAGE) return get_order(size * MAX_OBJS_PER_PAGE) - 1; - for (order = max(min_order, - fls(min_objects * size - 1) - PAGE_SHIFT); + for (order = max(min_order, get_order(min_objects * size)); order <= max_order; order++) { unsigned long slab_size = PAGE_SIZE << order;