]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
slab: Remove folio references from kfree_nolock()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Thu, 13 Nov 2025 00:09:26 +0000 (00:09 +0000)
committerVlastimil Babka <vbabka@suse.cz>
Thu, 13 Nov 2025 10:01:08 +0000 (11:01 +0100)
In preparation for splitting struct slab from struct page and struct
folio, remove mentions of struct folio from this function.  Since large
kmalloc objects are not supported here, we can just use virt_to_slab().

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Link: https://patch.msgid.link/20251113000932.1589073-13-willy@infradead.org
Reviewed-by: Harry Yoo <harry.yoo@oracle.com>
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
mm/slub.c

index 3ada9421c65dd7e05b398fa488f6c9ea0ff06842..8e5da7b6efe496c43c5e98767cad5b8e9b1fc31d 100644 (file)
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -6850,7 +6850,6 @@ EXPORT_SYMBOL(kfree);
  */
 void kfree_nolock(const void *object)
 {
-       struct folio *folio;
        struct slab *slab;
        struct kmem_cache *s;
        void *x = (void *)object;
@@ -6858,13 +6857,12 @@ void kfree_nolock(const void *object)
        if (unlikely(ZERO_OR_NULL_PTR(object)))
                return;
 
-       folio = virt_to_folio(object);
-       if (unlikely(!folio_test_slab(folio))) {
+       slab = virt_to_slab(object);
+       if (unlikely(!slab)) {
                WARN_ONCE(1, "large_kmalloc is not supported by kfree_nolock()");
                return;
        }
 
-       slab = folio_slab(folio);
        s = slab->slab_cache;
 
        memcg_slab_free_hook(s, slab, &x, 1);