Skip to contentSkip to conversation

Patch "mm, meminit: ensure node is online before checking whether pages are uninitialised" has been added to the 4.6-stable tree

PATCH [email protected] 1 participant 1 message Aug 2, 2016

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

mm, meminit: ensure node is online before checking whether pages are uninitialised

to the 4.6-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
mm-meminit-ensure-node-is-online-before-checking-whether-pages-are-uninitialised.patch
and it can be found in the queue-4.6 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From ef70b6f41cda6270165a6f27b2548ed31cfa3cb2 Mon Sep 17 00:00:00 2001

From: Mel Gorman <[email protected]>
Date: Thu, 14 Jul 2016 12:07:23 -0700
Subject: mm, meminit: ensure node is online before checking whether pages are uninitialised

From: Mel Gorman <[email protected]>

commit ef70b6f41cda6270165a6f27b2548ed31cfa3cb2 upstream.

early_page_uninitialised looks up an arbitrary PFN. While a machine without node 0 will boot with "mm, page_alloc: Always return a valid node from early_pfn_to_nid", it works because it assumes that nodes are always in PFN order. This is not guaranteed so this patch adds robustness by always checking if the node being checked is online.

---
 mm/page_alloc.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
mm/page_alloc.c +3 -1
@@ -286,7 +286,9 @@ static inline void reset_deferred_memini
 /* Returns true if the struct page for the pfn is uninitialised */
 static inline bool __meminit early_page_uninitialised(unsigned long pfn)
 {
-	if (pfn >= NODE_DATA(early_pfn_to_nid(pfn))->first_deferred_pfn)
+	int nid = early_pfn_to_nid(pfn);
+
+	if (node_online(nid) && pfn >= NODE_DATA(nid)->first_deferred_pfn)
 		return true;
 
 	return false;

Patches currently in stable-queue which might be from [email protected] are

queue-4.6/mm-compaction-abort-free-scanner-if-split-fails.patch queue-4.6/sched-debug-fix-deadlock-when-enabling-sched-events.patch queue-4.6/mm-compaction-prevent-vm_bug_on-when-terminating-freeing-scanner.patch queue-4.6/mm-meminit-always-return-a-valid-node-from-early_pfn_to_nid.patch queue-4.6/mm-meminit-ensure-node-is-online-before-checking-whether-pages-are-uninitialised.patch queue-4.6/mm-slb-add-__gfp_atomic-to-the-gfp-reclaim-mask.patch