From 1d1ffc69f9bd0be8964404a7e65af1fbf1c386f3 Mon Sep 17 00:00:00 2001 From: "Matthew Wilcox (Oracle)" Date: Tue, 9 Aug 2022 11:46:56 -0400 Subject: [PATCH] mm/page_alloc: Cache page_zone() result in free_unref_page() Save 17 bytes of text by calculating page_zone() once instead of twice. Signed-off-by: Matthew Wilcox (Oracle) --- mm/page_alloc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 5f24eff14b967..cbfc989b557fa 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -3474,16 +3474,16 @@ void free_unref_page(struct page *page, unsigned int order) * areas back if necessary. Otherwise, we may have to free * excessively into the page allocator */ + zone = page_zone(page); migratetype = get_pcppage_migratetype(page); if (unlikely(migratetype >= MIGRATE_PCPTYPES)) { if (unlikely(is_migrate_isolate(migratetype))) { - free_one_page(page_zone(page), page, pfn, order, migratetype, FPI_NONE); + free_one_page(zone, page, pfn, order, migratetype, FPI_NONE); return; } migratetype = MIGRATE_MOVABLE; } - zone = page_zone(page); pcp_trylock_prepare(UP_flags); pcp = pcp_spin_trylock(zone->per_cpu_pageset); if (pcp) { -- 2.50.1