mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Zhang Yi <yizhan@redhat.com>,
	Jeff Moyer <jmoyer@redhat.com>,
	Dan Williams <dan.j.williams@intel.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Boaz Harrosh <boaz@plexistor.com>, Christoph Hellwig <hch@lst.de>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Ross Zwisler <ross.zwisler@linux.intel.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	linux-nvdimm@ml01.01.org, Ingo Molnar <mingo@kernel.org>
Subject: [PATCH 4.4 13/21] x86/boot: Fix kdump, cleanup aborted E820_PRAM max_pfn manipulation
Date: Fri, 14 Oct 2016 13:40:51 +0200	[thread overview]
Message-ID: <20161014114025.321710789@linuxfoundation.org> (raw)
In-Reply-To: <20161014114024.667943585@linuxfoundation.org>

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Dan Williams <dan.j.williams@intel.com>

commit 917db484dc6a69969d317b3e57add4208a8d9d42 upstream.

In commit:

  ec776ef6bbe1 ("x86/mm: Add support for the non-standard protected e820 type")

Christoph references the original patch I wrote implementing pmem support.
The intent of the 'max_pfn' changes in that commit were to enable persistent
memory ranges to be covered by the struct page memmap by default.

However, that approach was abandoned when Christoph ported the patches [1], and
that functionality has since been replaced by devm_memremap_pages().

In the meantime, this max_pfn manipulation is confusing kdump [2] that
assumes that everything covered by the max_pfn is "System RAM".  This
results in kdump hanging or crashing.

 [1]: https://lists.01.org/pipermail/linux-nvdimm/2015-March/000348.html
 [2]: https://bugzilla.redhat.com/show_bug.cgi?id=1351098

So fix it.

Reported-by: Zhang Yi <yizhan@redhat.com>
Reported-by: Jeff Moyer <jmoyer@redhat.com>
Tested-by: Zhang Yi <yizhan@redhat.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Reviewed-by: Jeff Moyer <jmoyer@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Boaz Harrosh <boaz@plexistor.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-nvdimm@lists.01.org
Fixes: ec776ef6bbe1 ("x86/mm: Add support for the non-standard protected e820 type")
Link: http://lkml.kernel.org/r/147448744538.34910.11287693517367139607.stgit@dwillia2-desk3.amr.corp.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/x86/kernel/e820.c |   14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

--- a/arch/x86/kernel/e820.c
+++ b/arch/x86/kernel/e820.c
@@ -347,7 +347,7 @@ int __init sanitize_e820_map(struct e820
 		 * continue building up new bios map based on this
 		 * information
 		 */
-		if (current_type != last_type || current_type == E820_PRAM) {
+		if (current_type != last_type) {
 			if (last_type != 0)	 {
 				new_bios[new_bios_entry].size =
 					change_point[chgidx]->addr - last_addr;
@@ -753,7 +753,7 @@ u64 __init early_reserve_e820(u64 size,
 /*
  * Find the highest page frame number we have available
  */
-static unsigned long __init e820_end_pfn(unsigned long limit_pfn)
+static unsigned long __init e820_end_pfn(unsigned long limit_pfn, unsigned type)
 {
 	int i;
 	unsigned long last_pfn = 0;
@@ -764,11 +764,7 @@ static unsigned long __init e820_end_pfn
 		unsigned long start_pfn;
 		unsigned long end_pfn;
 
-		/*
-		 * Persistent memory is accounted as ram for purposes of
-		 * establishing max_pfn and mem_map.
-		 */
-		if (ei->type != E820_RAM && ei->type != E820_PRAM)
+		if (ei->type != type)
 			continue;
 
 		start_pfn = ei->addr >> PAGE_SHIFT;
@@ -793,12 +789,12 @@ static unsigned long __init e820_end_pfn
 }
 unsigned long __init e820_end_of_ram_pfn(void)
 {
-	return e820_end_pfn(MAX_ARCH_PFN);
+	return e820_end_pfn(MAX_ARCH_PFN, E820_RAM);
 }
 
 unsigned long __init e820_end_of_low_ram_pfn(void)
 {
-	return e820_end_pfn(1UL << (32-PAGE_SHIFT));
+	return e820_end_pfn(1UL << (32 - PAGE_SHIFT), E820_RAM);
 }
 
 static void early_panic(char *msg)

  parent reply	other threads:[~2016-10-14 11:41 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20161014114058uscas1p2f11cd323e19fe39c72c2e1b1246b89ef@uscas1p2.samsung.com>
2016-10-14 11:40 ` [PATCH 4.4 00/21] 4.4.25-stable review Greg Kroah-Hartman
2016-10-14 11:40   ` [PATCH 4.4 01/21] time: Add cycles to nanoseconds translation Greg Kroah-Hartman
2016-10-14 11:40   ` [PATCH 4.4 02/21] timekeeping: Fix __ktime_get_fast_ns() regression Greg Kroah-Hartman
2016-10-14 11:40   ` [PATCH 4.4 03/21] ALSA: ali5451: Fix out-of-bound position reporting Greg Kroah-Hartman
2016-10-14 11:40   ` [PATCH 4.4 04/21] ALSA: usb-audio: Extend DragonFly dB scale quirk to cover other variants Greg Kroah-Hartman
2016-10-14 11:40   ` [PATCH 4.4 05/21] ALSA: usb-line6: use the same declaration as definition in header for MIDI manufacturer ID Greg Kroah-Hartman
2016-10-14 11:40   ` [PATCH 4.4 06/21] mfd: rtsx_usb: Avoid setting ucr->current_sg.status Greg Kroah-Hartman
2016-10-14 11:40   ` [PATCH 4.4 07/21] mfd: atmel-hlcdc: Do not sleep in atomic context Greg Kroah-Hartman
2016-10-14 11:40   ` [PATCH 4.4 08/21] mfd: 88pm80x: Double shifting bug in suspend/resume Greg Kroah-Hartman
2016-10-14 11:40   ` [PATCH 4.4 10/21] KVM: PPC: Book3s PR: Allow access to unprivileged MMCR2 register Greg Kroah-Hartman
2016-10-14 11:40   ` [PATCH 4.4 12/21] KVM: PPC: BookE: Fix a sanity check Greg Kroah-Hartman
2016-10-14 11:40   ` Greg Kroah-Hartman [this message]
2016-10-14 11:40   ` [PATCH 4.4 14/21] x86/irq: Prevent force migration of irqs which are not in the vector domain Greg Kroah-Hartman
2016-10-14 11:40   ` [PATCH 4.4 15/21] x86/dumpstack: Fix x86_32 kernel_stack_pointer() previous stack access Greg Kroah-Hartman
2016-10-14 11:40   ` [PATCH 4.4 16/21] ARM: dts: mvebu: armada-390: add missing compatibility string and bracket Greg Kroah-Hartman
2016-10-14 11:40   ` [PATCH 4.4 18/21] ARM: cpuidle: Fix error return code Greg Kroah-Hartman
2016-10-14 11:40   ` [PATCH 4.4 19/21] ima: use file_dentry() Greg Kroah-Hartman
2016-10-14 11:40   ` [PATCH 4.4 20/21] tpm: fix a race condition in tpm2_unseal_trusted() Greg Kroah-Hartman
2016-10-14 11:40   ` [PATCH 4.4 21/21] tpm_crb: fix crb_req_canceled behavior Greg Kroah-Hartman
2016-10-14 18:46   ` [PATCH 4.4 00/21] 4.4.25-stable review Shuah Khan
2016-10-14 19:15   ` Guenter Roeck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20161014114025.321710789@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=akpm@linux-foundation.org \
    --cc=boaz@plexistor.com \
    --cc=dan.j.williams@intel.com \
    --cc=hch@lst.de \
    --cc=jmoyer@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nvdimm@ml01.01.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=ross.zwisler@linux.intel.com \
    --cc=stable@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=yizhan@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome