From abab315534fe565c773164af81b65968f2cd1d57 Mon Sep 17 00:00:00 2001 From: Michael Young Date: Jan 25 2011 22:57:25 +0000 Subject: Remove a patch from xen.pvhvm.fixes.patch which might break i686 compile --- diff --git a/xen.pvhvm.fixes.patch b/xen.pvhvm.fixes.patch index cf6dc95..3500374 100644 --- a/xen.pvhvm.fixes.patch +++ b/xen.pvhvm.fixes.patch @@ -153,45 +153,3 @@ index b5a7f92..a3d28a1 100644 1.7.3.4 -From daed469760dabbf6ae81c9869a263535fb587e63 Mon Sep 17 00:00:00 2001 -From: Stefano Stabellini -Date: Tue, 25 Jan 2011 12:05:11 +0000 -Subject: [PATCH 4/4] When destroying mappings between _brk_end and _end, do not go over _end - -Signed-off-by: Stefano Stabellini ---- - arch/x86/mm/init.c | 15 ++++++++++++++- - 1 files changed, 14 insertions(+), 1 deletions(-) - -diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c -index 947f42a..ebc0221 100644 ---- a/arch/x86/mm/init.c -+++ b/arch/x86/mm/init.c -@@ -291,10 +291,23 @@ unsigned long __init_refok init_memory_mapping(unsigned long start, - * located on different 2M pages. cleanup_highmap(), however, - * can only consider _end when it runs, so destroy any - * mappings beyond _brk_end here. -+ * Be careful not to go over _end. - */ - pud = pud_offset(pgd_offset_k(_brk_end), _brk_end); - pmd = pmd_offset(pud, _brk_end - 1); -- while (++pmd <= pmd_offset(pud, (unsigned long)_end - 1)) -+ while (++pmd < pmd_offset(pud, (unsigned long)_end - 1)) -+ pmd_clear(pmd); -+ if (((unsigned long)_end) & ~PMD_MASK) { -+ pte_t *pte; -+ unsigned long addr; -+ for (addr = ((unsigned long)_end) & PMD_MASK; -+ addr < ((unsigned long)_end); -+ addr += PAGE_SIZE) { -+ pte = pte_offset_map(pmd, addr); -+ pte_clear(&init_mm, addr, pte); -+ pte_unmap(pte); -+ } -+ } else - pmd_clear(pmd); - } - #endif --- -1.7.3.4 -