aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm2708/patches-4.4/0526-x86-boot-Fix-kdump-cleanup-aborted-E820_PRAM-max_pfn.patch
diff options
context:
space:
mode:
authorÁlvaro Fernández Rojas <noltari@gmail.com>2016-12-02 11:50:26 +0100
committerÁlvaro Fernández Rojas <noltari@gmail.com>2016-12-04 12:32:04 +0100
commit011f2c26f1b62e309f2eac6a3101bfe0a3c76c7e (patch)
treebe53d4f11f7625508ee3aea9889e854ab5b5f263 /target/linux/brcm2708/patches-4.4/0526-x86-boot-Fix-kdump-cleanup-aborted-E820_PRAM-max_pfn.patch
parent4257f6548b9480cdb436115b63d5c134c5e91303 (diff)
downloadupstream-011f2c26f1b62e309f2eac6a3101bfe0a3c76c7e.tar.gz
upstream-011f2c26f1b62e309f2eac6a3101bfe0a3c76c7e.tar.bz2
upstream-011f2c26f1b62e309f2eac6a3101bfe0a3c76c7e.zip
brcm2708: update linux 4.4 patches to latest version
As usual these patches were extracted and rebased from the raspberry pi repo: https://github.com/raspberrypi/linux/tree/rpi-4.4.y Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Diffstat (limited to 'target/linux/brcm2708/patches-4.4/0526-x86-boot-Fix-kdump-cleanup-aborted-E820_PRAM-max_pfn.patch')
-rw-r--r--target/linux/brcm2708/patches-4.4/0526-x86-boot-Fix-kdump-cleanup-aborted-E820_PRAM-max_pfn.patch60
1 files changed, 60 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.4/0526-x86-boot-Fix-kdump-cleanup-aborted-E820_PRAM-max_pfn.patch b/target/linux/brcm2708/patches-4.4/0526-x86-boot-Fix-kdump-cleanup-aborted-E820_PRAM-max_pfn.patch
new file mode 100644
index 0000000000..ce125d4b2f
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.4/0526-x86-boot-Fix-kdump-cleanup-aborted-E820_PRAM-max_pfn.patch
@@ -0,0 +1,60 @@
+From be7d40bc3716ddaaff3cc085f0bdd90b26b72aeb Mon Sep 17 00:00:00 2001
+From: Dan Williams <dan.j.williams@intel.com>
+Date: Wed, 21 Sep 2016 12:50:45 -0700
+Subject: [PATCH] x86/boot: Fix kdump, cleanup aborted E820_PRAM max_pfn
+ manipulation
+
+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 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- 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;