summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--trunk/2.6.18/00000_README8
-rw-r--r--trunk/2.6.18/10002_i386-fix-xen_l1_entry_update-for-highptes.patch24
-rw-r--r--trunk/2.6.18/50007_disable-highpte.patch13
3 files changed, 28 insertions, 17 deletions
diff --git a/trunk/2.6.18/00000_README b/trunk/2.6.18/00000_README
index 2f9cf30..756a4ca 100644
--- a/trunk/2.6.18/00000_README
+++ b/trunk/2.6.18/00000_README
@@ -22,6 +22,10 @@ Patches
10001_xen-3.1.1.patch
Upstream 3.1.1 patch
+10002_i386-fix-xen_l1_entry_update-for-highptes.patch
+ Fix for kernels compiled with CONFIG_HIGHPTE.
+ Pulled from linux-2.6.18-xen.hg, changeset e79729740288.
+
30001_nfnetlink_log-null-deref.patch
[SECURITY] Fix remotely exploitable NULL pointer dereference in
nfulnl_recv_config()
@@ -211,7 +215,3 @@ Patches
50002_always-enable-xen-genapic.patch
Compile fix for non-SMP (UP) kernels. Since UP support is broken in
upstream Xen I'm not sure if I trust it or not. :-P
-
-50007_disable-highpte.patch
- CONFIG_HIGHPTE can cause serious problems so lets save people's
- sanity, avoid killing kittens, and end all war by disabling it.
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);
+ }
diff --git a/trunk/2.6.18/50007_disable-highpte.patch b/trunk/2.6.18/50007_disable-highpte.patch
deleted file mode 100644
index 3d829fc..0000000
--- a/trunk/2.6.18/50007_disable-highpte.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: linux-2.6.18/arch/i386/Kconfig
-===================================================================
---- linux-2.6.18.orig/arch/i386/Kconfig
-+++ linux-2.6.18/arch/i386/Kconfig
-@@ -624,7 +624,7 @@ config HAVE_ARCH_EARLY_PFN_TO_NID
-
- config HIGHPTE
- bool "Allocate 3rd-level pagetables from highmem"
-- depends on HIGHMEM4G || HIGHMEM64G
-+ depends on ( HIGHMEM4G || HIGHMEM64G ) && !X86_XEN
- help
- The VM uses one page table entry for each page of physical memory.
- For systems with a lot of RAM, this can be wasteful of precious