blob: dcffacf96b584ae49913c248733dfcd7cba3e06c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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);
}
|