From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.linuxfoundation.org ([140.211.169.12]:56814 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756229AbcHBHHV (ORCPT ); Tue, 2 Aug 2016 03:07:21 -0400 Subject: Patch "mm, meminit: always return a valid node from early_pfn_to_nid" has been added to the 4.6-stable tree To: mgorman@techsingularity.net, akpm@linux-foundation.org, gregkh@linuxfoundation.org, rientjes@google.com, torvalds@linux-foundation.org Cc: , From: Date: Tue, 02 Aug 2016 09:04:37 +0200 Message-ID: <147012147719718@kroah.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: 8bit Sender: stable-owner@vger.kernel.org List-ID: This is a note to let you know that I've just added the patch titled mm, meminit: always return a valid node from early_pfn_to_nid 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-always-return-a-valid-node-from-early_pfn_to_nid.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 know about it. >>From e4568d3803852d00effd41dcdd489e726b998879 Mon Sep 17 00:00:00 2001 From: Mel Gorman Date: Thu, 14 Jul 2016 12:07:20 -0700 Subject: mm, meminit: always return a valid node from early_pfn_to_nid From: Mel Gorman commit e4568d3803852d00effd41dcdd489e726b998879 upstream. early_pfn_to_nid can return node 0 if a PFN is invalid on machines that has no node 0. A machine with only node 1 was observed to crash with the following message: BUG: unable to handle kernel paging request at 000000000002a3c8 PGD 0 Modules linked in: Hardware name: Supermicro H8DSP-8/H8DSP-8, BIOS 080011 06/30/2006 task: ffffffff81c0d500 ti: ffffffff81c00000 task.ti: ffffffff81c00000 RIP: reserve_bootmem_region+0x6a/0xef CR2: 000000000002a3c8 CR3: 0000000001c06000 CR4: 00000000000006b0 Call Trace: free_all_bootmem+0x4b/0x12a mem_init+0x70/0xa3 start_kernel+0x25b/0x49b The problem is that early_page_uninitialised uses the early_pfn_to_nid helper which returns node 0 for invalid PFNs. No caller of early_pfn_to_nid cares except early_page_uninitialised. This patch has early_pfn_to_nid always return a valid node. Link: http://lkml.kernel.org/r/1468008031-3848-3-git-send-email-mgorman@techsingularity.net Signed-off-by: Mel Gorman Acked-by: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Greg Kroah-Hartman --- mm/page_alloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1110,7 +1110,7 @@ int __meminit early_pfn_to_nid(unsigned spin_lock(&early_pfn_lock); nid = __early_pfn_to_nid(pfn, &early_pfnnid_cache); if (nid < 0) - nid = 0; + nid = first_online_node; spin_unlock(&early_pfn_lock); return nid; Patches currently in stable-queue which might be from mgorman@techsingularity.net 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