[kernel/rawhide/user/myoung/xendom0] Remove an upstream patch from xen.pvhvm.fixes.patch

myoung myoung at fedoraproject.org
Wed Jan 26 21:01:09 UTC 2011


commit 58d1f03183291c2b6d5353f9a527b8260cb636b4
Author: Michael Young <m.a.young at durham.ac.uk>
Date:   Wed Jan 26 20:59:51 2011 +0000

    Remove an upstream patch from xen.pvhvm.fixes.patch

 kernel.spec           |    1 +
 xen.pvhvm.fixes.patch |   82 -------------------------------------------------
 2 files changed, 1 insertions(+), 82 deletions(-)
---
diff --git a/kernel.spec b/kernel.spec
index 4e21a82..8b0641c 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -1978,6 +1978,7 @@ fi
 %changelog
 * Tue Jan 25 2011 Michael Young <m.a.young at durham.ac.uk>
 - Actually include xen.pvhvm.fixes.patch
+- Remove an upstream patch from xen.pvhvm.fixes.patch
 
 * Tue Jan 25 2011 Kyle McMartin <kmcmartin at redhat.com> 2.6.38-0.rc2.git3.2
 - [x86] Disable TRANSPARENT_HUGEPAGE for now, there be dragons there.
diff --git a/xen.pvhvm.fixes.patch b/xen.pvhvm.fixes.patch
index cf6dc95..1150934 100644
--- a/xen.pvhvm.fixes.patch
+++ b/xen.pvhvm.fixes.patch
@@ -40,88 +40,6 @@ index f25bdf2..74a8559 100644
 1.7.3.4
 
 
-From a7cdabcd381dffb5db72a31c78b65a2bcdec2a04 Mon Sep 17 00:00:00 2001
-From: Stefan Bader <stefan.bader at canonical.com>
-Date: Thu, 20 Jan 2011 15:19:46 +0000
-Subject: [PATCH 2/4] xen: p2m: correctly initialize partial p2m leave
-
-After changing the p2m mapping to a tree by
-
-  commit 58e05027b530ff081ecea68e38de8d59db8f87e0
-    xen: convert p2m to a 3 level tree
-
-and trying to boot a DomU with 615MB of memory, the following crash was
-observed in the dump:
-
-kernel direct mapping tables up to 26f00000 @ 1ec4000-1fff000
-BUG: unable to handle kernel NULL pointer dereference at (null)
-IP: [<c0107397>] xen_set_pte+0x27/0x60
-*pdpt = 0000000000000000 *pde = 0000000000000000
-
-Adding further debug statements showed that when trying to set up
-pfn=0x26700 the returned mapping was invalid.
-
-pfn=0x266ff calling set_pte(0xc1fe77f8, 0x6b3003)
-pfn=0x26700 calling set_pte(0xc1fe7800, 0x3)
-
-Although the last_pfn obtained from the startup info is 0x26700, which
-should in turn not be hit, the additional 8MB which are added as extra
-memory normally seem to be ok. This lead to looking into the initial
-p2m tree construction, which uses the smaller value and assuming that
-there is other code handling the extra memory.
-
-When the p2m tree is set up, the leaves are directly pointed to the
-array which the domain builder set up. But if the mapping is not on a
-boundary that fits into one p2m page, this will result in the last leaf
-being only partially valid. And as the invalid entries are not
-initialized in that case, things go badly wrong.
-
-I am trying to fix that by checking whether the current leaf is a
-complete map and if not, allocate a completely new page and copy only
-the valid pointers there. This may not be the most efficient or elegant
-solution, but at least it seems to allow me booting DomUs with memory
-assignments all over the range.
-
-Signed-off-by: Stefan Bader <stefan.bader at canonical.com>
----
- arch/x86/xen/p2m.c |   20 +++++++++++++++++++-
- 1 files changed, 19 insertions(+), 1 deletions(-)
-
-diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
-index 8f2251d..c9307ec 100644
---- a/arch/x86/xen/p2m.c
-+++ b/arch/x86/xen/p2m.c
-@@ -237,7 +237,25 @@ void __init xen_build_dynamic_phys_to_machine(void)
- 			p2m_top[topidx] = mid;
- 		}
- 
--		p2m_top[topidx][mididx] = &mfn_list[pfn];
-+		/*
-+		 * As long as the mfn_list has enough entries to completely
-+		 * fill a p2m page, pointing into the array is ok. But if
-+		 * not the entries beyond the last pfn will be undefined.
-+		 * And guessing that the 'what-ever-there-is' does not take it
-+		 * too kindly when changing it to invalid markers, a new page
-+		 * is allocated, initialized and filled with the valid part.
-+		 */
-+		if (unlikely(pfn + P2M_PER_PAGE > max_pfn)) {
-+			unsigned long p2midx;
-+			unsigned long **p2m = extend_brk(PAGE_SIZE, PAGE_SIZE);
-+			p2m_init(p2m);
-+
-+			for (p2midx = 0; pfn + p2midx < max_pfn; p2midx++) {
-+				p2m[p2midx] = mfn_list[pfn + p2midx];
-+			}
-+			p2m_top[topidx][mididx] = p2m;
-+		} else
-+			p2m_top[topidx][mididx] = &mfn_list[pfn];
- 	}
- 
- 	m2p_override_init();
--- 
-1.7.3.4
-
-
 From b84683ad1e704c2a296d08ff0cbe29db936f94a7 Mon Sep 17 00:00:00 2001
 From: Stefano Stabellini <stefano.stabellini at eu.citrix.com>
 Date: Tue, 25 Jan 2011 12:03:42 +0000


More information about the scm-commits mailing list