summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/2.6.22/20038_252-l1-entry-update-highpte.patch1')
-rw-r--r--trunk/2.6.22/20038_252-l1-entry-update-highpte.patch127
1 files changed, 27 insertions, 0 deletions
diff --git a/trunk/2.6.22/20038_252-l1-entry-update-highpte.patch1 b/trunk/2.6.22/20038_252-l1-entry-update-highpte.patch1
new file mode 100644
index 0000000..dcffacf
--- /dev/null
+++ b/trunk/2.6.22/20038_252-l1-entry-update-highpte.patch1
@@ -0,0 +1,27 @@
+# HG changeset 252 patch
+# User Keir Fraser <keir@xensource.com>
+# Date 1192114936 -3600
+# Node ID e797297402885cc19e0799c7bcaf3e1acb427523
+# Parent 48a6d8bc31b8717c4218fc5e3c5bc9d848703db4
+Subject: i386: Fix xen_l1_entry_update() for highptes.
+Signed-off-by: Keir Fraser <keir@xensource.com>
+
+Acked-by: jbeulich@novell.com
+
+Index: 10.3-2007-10-22/arch/i386/mm/hypervisor.c
+===================================================================
+--- 10.3-2007-10-22.orig/arch/i386/mm/hypervisor.c 2007-10-22 13:48:11.000000000 +0200
++++ 10.3-2007-10-22/arch/i386/mm/hypervisor.c 2007-10-22 13:49:28.000000000 +0200
+@@ -57,7 +57,12 @@
+ 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_ma(val);
+ BUG_ON(HYPERVISOR_mmu_update(&u, 1, NULL, DOMID_SELF) < 0);
+ }