]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.9-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 1 Apr 2017 16:13:17 +0000 (18:13 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 1 Apr 2017 16:13:17 +0000 (18:13 +0200)
added patches:
xen-setup-don-t-relocate-p2m-over-existing-one.patch

queue-4.9/series
queue-4.9/xen-setup-don-t-relocate-p2m-over-existing-one.patch [new file with mode: 0644]

index 903ada642510cb3bc5ba63b8e88c8a799cd7120c..76be2244cf8344037bff02819bdffdaafa8b7c0e 100644 (file)
@@ -1 +1,2 @@
 libceph-force-gfp_noio-for-socket-allocations.patch
+xen-setup-don-t-relocate-p2m-over-existing-one.patch
diff --git a/queue-4.9/xen-setup-don-t-relocate-p2m-over-existing-one.patch b/queue-4.9/xen-setup-don-t-relocate-p2m-over-existing-one.patch
new file mode 100644 (file)
index 0000000..e6a0012
--- /dev/null
@@ -0,0 +1,49 @@
+From 7ecec8503af37de6be4f96b53828d640a968705f Mon Sep 17 00:00:00 2001
+From: Ross Lagerwall <ross.lagerwall@citrix.com>
+Date: Mon, 12 Dec 2016 14:35:13 +0000
+Subject: xen/setup: Don't relocate p2m over existing one
+
+From: Ross Lagerwall <ross.lagerwall@citrix.com>
+
+commit 7ecec8503af37de6be4f96b53828d640a968705f upstream.
+
+When relocating the p2m, take special care not to relocate it so
+that is overlaps with the current location of the p2m/initrd. This is
+needed since the full extent of the current location is not marked as a
+reserved region in the e820.
+
+This was seen to happen to a dom0 with a large initial p2m and a small
+reserved region in the middle of the initial p2m.
+
+Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
+Reviewed-by: Juergen Gross <jgross@suse.com>
+Signed-off-by: Juergen Gross <jgross@suse.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/x86/xen/setup.c |    6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/arch/x86/xen/setup.c
++++ b/arch/x86/xen/setup.c
+@@ -713,10 +713,9 @@ static void __init xen_reserve_xen_mfnli
+               size = PFN_PHYS(xen_start_info->nr_p2m_frames);
+       }
+-      if (!xen_is_e820_reserved(start, size)) {
+-              memblock_reserve(start, size);
++      memblock_reserve(start, size);
++      if (!xen_is_e820_reserved(start, size))
+               return;
+-      }
+ #ifdef CONFIG_X86_32
+       /*
+@@ -727,6 +726,7 @@ static void __init xen_reserve_xen_mfnli
+       BUG();
+ #else
+       xen_relocate_p2m();
++      memblock_free(start, size);
+ #endif
+ }