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

slab: Remove folio references from ___kmalloc_large_node()



There's no need to use folio APIs here; just use a page directly.

Signed-off-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: default avatarHarry Yoo <harry.yoo@oracle.com>
Link: https://patch.msgid.link/20251113000932.1589073-6-willy@infradead.org


Signed-off-by: default avatarVlastimil Babka <vbabka@suse.cz>
parent 09fa19e2
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -5571,7 +5571,7 @@ unsigned int kmem_cache_sheaf_size(struct slab_sheaf *sheaf)
 */
static void *___kmalloc_large_node(size_t size, gfp_t flags, int node)
{
	struct folio *folio;
	struct page *page;
	void *ptr = NULL;
	unsigned int order = get_order(size);

@@ -5581,15 +5581,15 @@ static void *___kmalloc_large_node(size_t size, gfp_t flags, int node)
	flags |= __GFP_COMP;

	if (node == NUMA_NO_NODE)
		folio = (struct folio *)alloc_frozen_pages_noprof(flags, order);
		page = alloc_frozen_pages_noprof(flags, order);
	else
		folio = (struct folio *)__alloc_frozen_pages_noprof(flags, order, node, NULL);
		page = __alloc_frozen_pages_noprof(flags, order, node, NULL);

	if (folio) {
		ptr = folio_address(folio);
		lruvec_stat_mod_folio(folio, NR_SLAB_UNRECLAIMABLE_B,
	if (page) {
		ptr = page_address(page);
		mod_lruvec_page_state(page, NR_SLAB_UNRECLAIMABLE_B,
				      PAGE_SIZE << order);
		__folio_set_large_kmalloc(folio);
		__SetPageLargeKmalloc(page);
	}

	ptr = kasan_kmalloc_large(ptr, size, flags);