Skip to content

Commit e409021

Browse files
Matthew Wilcox (Oracle)tehcaster
authored andcommitted
slab: Remove folio references from kfree()
This should generate identical code to the previous version, but without any dependency on how folios work. Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Link: https://patch.msgid.link/20251113000932.1589073-9-willy@infradead.org Reviewed-by: Harry Yoo <harry.yoo@oracle.com> Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
1 parent f262cfd commit e409021

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

mm/slub.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6817,7 +6817,7 @@ void kvfree_rcu_cb(struct rcu_head *head)
68176817
*/
68186818
void kfree(const void *object)
68196819
{
6820-
struct folio *folio;
6820+
struct page *page;
68216821
struct slab *slab;
68226822
struct kmem_cache *s;
68236823
void *x = (void *)object;
@@ -6827,13 +6827,13 @@ void kfree(const void *object)
68276827
if (unlikely(ZERO_OR_NULL_PTR(object)))
68286828
return;
68296829

6830-
folio = virt_to_folio(object);
6831-
if (unlikely(!folio_test_slab(folio))) {
6832-
free_large_kmalloc(&folio->page, (void *)object);
6830+
page = virt_to_page(object);
6831+
slab = page_slab(page);
6832+
if (!slab) {
6833+
free_large_kmalloc(page, (void *)object);
68336834
return;
68346835
}
68356836

6836-
slab = folio_slab(folio);
68376837
s = slab->slab_cache;
68386838
slab_free(s, slab, x, _RET_IP_);
68396839
}

0 commit comments

Comments
 (0)