]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 15 May 2017 09:02:05 +0000 (11:02 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 15 May 2017 09:02:05 +0000 (11:02 +0200)
added patches:
xen-adjust-early-dom0-p2m-handling-to-xen-hypervisor-behavior.patch

queue-3.18/series [new file with mode: 0644]
queue-4.10/series [new file with mode: 0644]
queue-4.10/xen-adjust-early-dom0-p2m-handling-to-xen-hypervisor-behavior.patch [new file with mode: 0644]
queue-4.11/series [new file with mode: 0644]
queue-4.4/series [new file with mode: 0644]
queue-4.9/series [new file with mode: 0644]

diff --git a/queue-3.18/series b/queue-3.18/series
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/queue-4.10/series b/queue-4.10/series
new file mode 100644 (file)
index 0000000..ca0ac41
--- /dev/null
@@ -0,0 +1 @@
+xen-adjust-early-dom0-p2m-handling-to-xen-hypervisor-behavior.patch
diff --git a/queue-4.10/xen-adjust-early-dom0-p2m-handling-to-xen-hypervisor-behavior.patch b/queue-4.10/xen-adjust-early-dom0-p2m-handling-to-xen-hypervisor-behavior.patch
new file mode 100644 (file)
index 0000000..97ae8dc
--- /dev/null
@@ -0,0 +1,58 @@
+From 69861e0a52f8733355ce246f0db15e1b240ad667 Mon Sep 17 00:00:00 2001
+From: Juergen Gross <jgross@suse.com>
+Date: Wed, 10 May 2017 06:08:44 +0200
+Subject: xen: adjust early dom0 p2m handling to xen hypervisor behavior
+
+From: Juergen Gross <jgross@suse.com>
+
+commit 69861e0a52f8733355ce246f0db15e1b240ad667 upstream.
+
+When booted as pv-guest the p2m list presented by the Xen is already
+mapped to virtual addresses. In dom0 case the hypervisor might make use
+of 2M- or 1G-pages for this mapping. Unfortunately while being properly
+aligned in virtual and machine address space, those pages might not be
+aligned properly in guest physical address space.
+
+So when trying to obtain the guest physical address of such a page
+pud_pfn() and pmd_pfn() must be avoided as those will mask away guest
+physical address bits not being zero in this special case.
+
+Signed-off-by: Juergen Gross <jgross@suse.com>
+Reviewed-by: Jan Beulich <jbeulich@suse.com>
+Signed-off-by: Juergen Gross <jgross@suse.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/x86/xen/mmu.c |    7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+--- a/arch/x86/xen/mmu.c
++++ b/arch/x86/xen/mmu.c
+@@ -2028,7 +2028,8 @@ static unsigned long __init xen_read_phy
+ /*
+  * Translate a virtual address to a physical one without relying on mapped
+- * page tables.
++ * page tables. Don't rely on big pages being aligned in (guest) physical
++ * space!
+  */
+ static phys_addr_t __init xen_early_virt_to_phys(unsigned long vaddr)
+ {
+@@ -2049,7 +2050,7 @@ static phys_addr_t __init xen_early_virt
+                                                      sizeof(pud)));
+       if (!pud_present(pud))
+               return 0;
+-      pa = pud_pfn(pud) << PAGE_SHIFT;
++      pa = pud_val(pud) & PTE_PFN_MASK;
+       if (pud_large(pud))
+               return pa + (vaddr & ~PUD_MASK);
+@@ -2057,7 +2058,7 @@ static phys_addr_t __init xen_early_virt
+                                                      sizeof(pmd)));
+       if (!pmd_present(pmd))
+               return 0;
+-      pa = pmd_pfn(pmd) << PAGE_SHIFT;
++      pa = pmd_val(pmd) & PTE_PFN_MASK;
+       if (pmd_large(pmd))
+               return pa + (vaddr & ~PMD_MASK);
diff --git a/queue-4.11/series b/queue-4.11/series
new file mode 100644 (file)
index 0000000..ca0ac41
--- /dev/null
@@ -0,0 +1 @@
+xen-adjust-early-dom0-p2m-handling-to-xen-hypervisor-behavior.patch
diff --git a/queue-4.4/series b/queue-4.4/series
new file mode 100644 (file)
index 0000000..ca0ac41
--- /dev/null
@@ -0,0 +1 @@
+xen-adjust-early-dom0-p2m-handling-to-xen-hypervisor-behavior.patch
diff --git a/queue-4.9/series b/queue-4.9/series
new file mode 100644 (file)
index 0000000..ca0ac41
--- /dev/null
@@ -0,0 +1 @@
+xen-adjust-early-dom0-p2m-handling-to-xen-hypervisor-behavior.patch