Commit e4090216 authored by Matthew Wilcox (Oracle)'s avatar Matthew Wilcox (Oracle) Committed by Vlastimil Babka
Browse files

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: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
Link: https://patch.msgid.link/20251113000932.1589073-9-willy@infradead.org


Reviewed-by: default avatarHarry Yoo <harry.yoo@oracle.com>
Signed-off-by: default avatarVlastimil Babka <vbabka@suse.cz>
parent f262cfd7
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -6817,7 +6817,7 @@ void kvfree_rcu_cb(struct rcu_head *head)
 */
void kfree(const void *object)
{
	struct folio *folio;
	struct page *page;
	struct slab *slab;
	struct kmem_cache *s;
	void *x = (void *)object;
@@ -6827,13 +6827,13 @@ void kfree(const void *object)
	if (unlikely(ZERO_OR_NULL_PTR(object)))
		return;

	folio = virt_to_folio(object);
	if (unlikely(!folio_test_slab(folio))) {
		free_large_kmalloc(&folio->page, (void *)object);
	page = virt_to_page(object);
	slab = page_slab(page);
	if (!slab) {
		free_large_kmalloc(page, (void *)object);
		return;
	}

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