linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] mm/page_alloc: make calling prep_compound_head more reliable
@ 2022-06-07 14:41 Miaohe Lin
  2022-06-07 18:32 ` Andrew Morton
  0 siblings, 1 reply; 8+ messages in thread
From: Miaohe Lin @ 2022-06-07 14:41 UTC (permalink / raw)
  To: akpm; +Cc: linux-mm, linux-kernel, linmiaohe

compound_pincount_ptr is stored at first tail page instead of second tail
page now. And if it or some other field changes again in the future, data
overwritten might happen. Calling prep_compound_head() outside the loop
to prevent such possible issue. No functional change intended.

Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
---
 mm/page_alloc.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 0243a21e69b1..fc3770f28d1a 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -6772,17 +6772,8 @@ static void __ref memmap_init_compound(struct page *head,
 		__init_zone_device_page(page, pfn, zone_idx, nid, pgmap);
 		prep_compound_tail(head, pfn - head_pfn);
 		set_page_count(page, 0);
-
-		/*
-		 * The first tail page stores compound_mapcount_ptr() and
-		 * compound_order() and the second tail page stores
-		 * compound_pincount_ptr(). Call prep_compound_head() after
-		 * the first and second tail pages have been initialized to
-		 * not have the data overwritten.
-		 */
-		if (pfn == head_pfn + 2)
-			prep_compound_head(head, order);
 	}
+	prep_compound_head(head, order);
 }
 
 void __ref memmap_init_zone_device(struct zone *zone,
-- 
2.23.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-06-16  3:22 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-07 14:41 [PATCH] mm/page_alloc: make calling prep_compound_head more reliable Miaohe Lin
2022-06-07 18:32 ` Andrew Morton
2022-06-07 19:17   ` Joao Martins
2022-06-08 12:17     ` Miaohe Lin
2022-06-14 13:13       ` Matthew Wilcox
2022-06-15  7:44         ` Miaohe Lin
2022-06-15 12:42           ` Matthew Wilcox
2022-06-16  3:21             ` Miaohe Lin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).