]> www.infradead.org Git - users/willy/pagecache.git/commitdiff
mm/page_alloc: Cache page_zone() result in free_unref_page()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Tue, 9 Aug 2022 15:46:56 +0000 (11:46 -0400)
committerMatthew Wilcox (Oracle) <willy@infradead.org>
Tue, 3 Jan 2023 14:00:32 +0000 (09:00 -0500)
Save 17 bytes of text by calculating page_zone() once instead of twice.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
mm/page_alloc.c

index 5f24eff14b96760bce1952dc8f7a8997ca032fb1..cbfc989b557fac512dd146c7f6c2a3929660e335 100644 (file)
@@ -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) {