Thread (45 messages) 45 messages, 7 authors, 2026-05-21

Re: [PATCH 2/8] mm/bootmem_info: drop initialization of page->lru

From: Lance Yang <lance.yang@linux.dev>
Date: 2026-05-18 07:49:54
Also in: linux-mm, linux-s390, lkml, sparclinux

On Mon, May 11, 2026 at 04:05:30PM +0200, David Hildenbrand (Arm) wrote:
quoted hunk ↗ jump to hunk
In the past, we used to store the type in page->lru.next, introduced by
commit 5f24ce5fd34c ("thp: remove PG_buddy"). The location changed over
the years; ever since commit 0386aaa6e9c8 ("bootmem: stop using
page->index"), we store it alongside the info in page->private.

Consequently, there is no need to reset page->lru anymore.

Signed-off-by: David Hildenbrand (Arm) <david@kernel.org>
---
mm/bootmem_info.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/mm/bootmem_info.c b/mm/bootmem_info.c
index 3d7675a3ae04..a0a1ecdec8d0 100644
--- a/mm/bootmem_info.c
+++ b/mm/bootmem_info.c
@@ -34,7 +34,6 @@ void put_page_bootmem(struct page *page)
	if (page_ref_dec_return(page) == 1) {
		ClearPagePrivate(page);
		set_page_private(page, 0);
-		INIT_LIST_HEAD(&page->lru);
Yep, that old INIT_LIST_HEAD() call was dead cleanup. page->lru and
page->buddy_list are in the same union:

			union {
				struct list_head lru;

				/* Or, free page */
				struct list_head buddy_list;
			};

and free_reserved_page() passes the page to the buddy allocator. The
later buddy list insertion will overwrite the values written by
INIT_LIST_HEAD(&page->lru) anyway.
		kmemleak_free_part_phys(PFN_PHYS(page_to_pfn(page)), PAGE_SIZE);
		free_reserved_page(page);
	}
LGTM, feel free to add:
Reviewed-by: Lance Yang <lance.yang@linux.dev>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help