summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Marineau <marineam@gentoo.org>2007-10-15 21:05:53 +0000
committerMichael Marineau <marineam@gentoo.org>2007-10-15 21:05:53 +0000
commit59bbc6eaf240bc9d0d42136171134915be26df9e (patch)
tree7afc7e018567db10bd3080d8f6d2e589fd078a1b /trunk/2.6.18/10002_i386-fix-xen_l1_entry_update-for-highptes.patch
parentSync 2.6.18 patchset with Xen 3.1.1, note that amd64-zero-extend-32bit-ptrace... (diff)
downloadxen-59bbc6eaf240bc9d0d42136171134915be26df9e.tar.gz
xen-59bbc6eaf240bc9d0d42136171134915be26df9e.tar.bz2
xen-59bbc6eaf240bc9d0d42136171134915be26df9e.zip
Add the real fix for CONFIG_HIGHPTE, remove the disable patch
svn path=/patches/; revision=54
Diffstat (limited to 'trunk/2.6.18/10002_i386-fix-xen_l1_entry_update-for-highptes.patch')
-rw-r--r--trunk/2.6.18/10002_i386-fix-xen_l1_entry_update-for-highptes.patch24
1 files changed, 24 insertions, 0 deletions
diff --git a/trunk/2.6.18/10002_i386-fix-xen_l1_entry_update-for-highptes.patch b/trunk/2.6.18/10002_i386-fix-xen_l1_entry_update-for-highptes.patch
new file mode 100644
index 0000000..d4c059c
--- /dev/null
+++ b/trunk/2.6.18/10002_i386-fix-xen_l1_entry_update-for-highptes.patch
@@ -0,0 +1,24 @@
+# HG changeset patch
+# User Keir Fraser <keir@xensource.com>
+# Date 1192114936 -3600
+# Node ID e797297402885cc19e0799c7bcaf3e1acb427523
+# Parent 48a6d8bc31b8717c4218fc5e3c5bc9d848703db4
+i386: Fix xen_l1_entry_update() for highptes.
+Signed-off-by: Keir Fraser <keir@xensource.com>
+
+diff -r 48a6d8bc31b8 -r e79729740288 arch/i386/mm/hypervisor.c
+--- a/arch/i386/mm/hypervisor.c Wed Oct 10 11:32:15 2007 +0100
++++ b/arch/i386/mm/hypervisor.c Thu Oct 11 16:02:16 2007 +0100
+@@ -47,7 +47,12 @@ void xen_l1_entry_update(pte_t *ptr, pte
+ void xen_l1_entry_update(pte_t *ptr, pte_t val)
+ {
+ mmu_update_t u;
++#ifdef CONFIG_HIGHPTE
++ u.ptr = ((unsigned long)ptr >= (unsigned long)high_memory) ?
++ arbitrary_virt_to_machine(ptr) : virt_to_machine(ptr);
++#else
+ u.ptr = virt_to_machine(ptr);
++#endif
+ u.val = __pte_val(val);
+ BUG_ON(HYPERVISOR_mmu_update(&u, 1, NULL, DOMID_SELF) < 0);
+ }