Neither setup_object() nor setup_object_debug() used their struct page argument, so delete it instead of converting to struct slab. Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> --- mm/slub.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/mm/slub.c b/mm/slub.c index 14a423250611..16ce9aeccdc8 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -1240,8 +1240,7 @@ static inline void dec_slabs_node(struct kmem_cache *s, int node, int objects) } /* Object debug checks for alloc/free paths */ -static void setup_object_debug(struct kmem_cache *s, struct page *page, - void *object) +static void setup_object_debug(struct kmem_cache *s, void *object) { if (!kmem_cache_debug_flags(s, SLAB_STORE_USER|SLAB_RED_ZONE|__OBJECT_POISON)) return; @@ -1600,8 +1599,7 @@ slab_flags_t kmem_cache_flags(unsigned int object_size, return flags | slub_debug_local; } #else /* !CONFIG_SLUB_DEBUG */ -static inline void setup_object_debug(struct kmem_cache *s, - struct page *page, void *object) {} +static inline void setup_object_debug(struct kmem_cache *s, void *object) {} static inline void setup_page_debug(struct kmem_cache *s, struct page *page, void *addr) {} @@ -1737,10 +1735,9 @@ static inline bool slab_free_freelist_hook(struct kmem_cache *s, return *head != NULL; } -static void *setup_object(struct kmem_cache *s, struct page *page, - void *object) +static void *setup_object(struct kmem_cache *s, void *object) { - setup_object_debug(s, page, object); + setup_object_debug(s, object); object = kasan_init_slab_obj(s, object); if (unlikely(s->ctor)) { kasan_unpoison_object_data(s, object); @@ -1849,13 +1846,13 @@ static bool shuffle_freelist(struct kmem_cache *s, struct slab *slab) /* First entry is used as the base of the freelist */ cur = next_freelist_entry(s, &pos, start, slab_limit, freelist_count); - cur = setup_object(s, slab_page(slab), cur); + cur = setup_object(s, cur); slab->freelist = cur; for (idx = 1; idx < slab->objects; idx++) { next = next_freelist_entry(s, &pos, start, slab_limit, freelist_count); - next = setup_object(s, slab_page(slab), next); + next = setup_object(s, next); set_freepointer(s, cur, next); cur = next; } @@ -1929,11 +1926,11 @@ static struct slab *allocate_slab(struct kmem_cache *s, gfp_t flags, int node) if (!shuffle) { start = fixup_red_left(s, start); - start = setup_object(s, slab_page(slab), start); + start = setup_object(s, start); slab->freelist = start; for (idx = 0, p = start; idx < slab->objects - 1; idx++) { next = p + s->size; - next = setup_object(s, slab_page(slab), next); + next = setup_object(s, next); set_freepointer(s, p, next); p = next; } -- 2.32.0