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

slab: Remove folio references from kfree_nolock()



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


Reviewed-by: default avatarHarry Yoo <harry.yoo@oracle.com>
Signed-off-by: default avatarVlastimil Babka <vbabka@suse.cz>
parent 7d26842f
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -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);