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

slab: Remove folio references from __do_krealloc()



One slight tweak I made is to calculate 'ks' earlier, which means we
can reuse it in the warning rather than calculating the object size twice.

Signed-off-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
Link: https://patch.msgid.link/20251113000932.1589073-10-willy@infradead.org


Reviewed-by: default avatarHarry Yoo <harry.yoo@oracle.com>
Signed-off-by: default avatarVlastimil Babka <vbabka@suse.cz>
parent e4090216
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -6932,16 +6932,16 @@ __do_krealloc(const void *p, size_t new_size, unsigned long align, gfp_t flags,
	if (is_kfence_address(p)) {
		ks = orig_size = kfence_ksize(p);
	} else {
		struct folio *folio;
		struct page *page = virt_to_page(p);
		struct slab *slab = page_slab(page);

		folio = virt_to_folio(p);
		if (unlikely(!folio_test_slab(folio))) {
		if (!slab) {
			/* Big kmalloc object */
			WARN_ON(folio_size(folio) <= KMALLOC_MAX_CACHE_SIZE);
			WARN_ON(p != folio_address(folio));
			ks = folio_size(folio);
			ks = page_size(page);
			WARN_ON(ks <= KMALLOC_MAX_CACHE_SIZE);
			WARN_ON(p != page_address(page));
		} else {
			s = folio_slab(folio)->slab_cache;
			s = slab->slab_cache;
			orig_size = get_orig_size(s, (void *)p);
			ks = s->object_size;
		}