]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/patches/suse-2.6.27.25/patches.xen/xen-x86-pmd-handling
Updated xen patches taken from suse.
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.25 / patches.xen / xen-x86-pmd-handling
similarity index 80%
rename from src/patches/60062_xen-x86-pmd-handling.patch1
rename to src/patches/suse-2.6.27.25/patches.xen/xen-x86-pmd-handling
index 0fc75995b93a4fada510db3163ae52a39e975eb5..a35f1d58ac6f271acc460f991277a82a67f46c32 100644 (file)
@@ -2,11 +2,9 @@ From: jbeulich@novell.com
 Subject: consolidate pmd/pud/pgd entry handling
 Patch-mainline: obsolete
 
-Index: head-2008-12-01/arch/x86/mm/hypervisor.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/mm/hypervisor.c      2008-12-01 12:10:32.000000000 +0100
-+++ head-2008-12-01/arch/x86/mm/hypervisor.c   2008-12-01 12:13:06.000000000 +0100
-@@ -356,31 +356,91 @@ void xen_l1_entry_update(pte_t *ptr, pte
+--- sle11-2009-04-09.orig/arch/x86/mm/hypervisor.c     2009-03-30 12:18:24.000000000 +0200
++++ sle11-2009-04-09/arch/x86/mm/hypervisor.c  2009-03-16 16:40:37.000000000 +0100
+@@ -357,31 +357,91 @@ void xen_l1_entry_update(pte_t *ptr, pte
  }
  EXPORT_SYMBOL_GPL(xen_l1_entry_update);
  
@@ -105,11 +103,9 @@ Index: head-2008-12-01/arch/x86/mm/hypervisor.c
  }
  #endif /* CONFIG_X86_64 */
  
-Index: head-2008-12-01/arch/x86/mm/init_32-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/mm/init_32-xen.c     2008-12-01 11:49:07.000000000 +0100
-+++ head-2008-12-01/arch/x86/mm/init_32-xen.c  2008-12-01 12:13:06.000000000 +0100
-@@ -681,6 +681,8 @@ static void __init zone_sizes_init(void)
+--- sle11-2009-04-09.orig/arch/x86/mm/init_32-xen.c    2009-02-17 18:06:20.000000000 +0100
++++ sle11-2009-04-09/arch/x86/mm/init_32-xen.c 2009-03-16 17:39:12.000000000 +0100
+@@ -728,6 +728,8 @@ static void __init zone_sizes_init(void)
  #endif
  
        free_area_init_nodes(max_zone_pfns);
@@ -118,7 +114,7 @@ Index: head-2008-12-01/arch/x86/mm/init_32-xen.c
  }
  
  void __init setup_bootmem_allocator(void)
-@@ -1040,8 +1042,6 @@ void __init mem_init(void)
+@@ -1089,8 +1091,6 @@ void __init mem_init(void)
        cpa_init();
        save_pg_dir();
        zap_low_mappings();
@@ -127,10 +123,8 @@ Index: head-2008-12-01/arch/x86/mm/init_32-xen.c
  }
  
  #ifdef CONFIG_MEMORY_HOTPLUG
-Index: head-2008-12-01/arch/x86/mm/init_64-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/mm/init_64-xen.c     2008-12-01 11:49:07.000000000 +0100
-+++ head-2008-12-01/arch/x86/mm/init_64-xen.c  2008-12-01 12:13:06.000000000 +0100
+--- sle11-2009-04-09.orig/arch/x86/mm/init_64-xen.c    2009-03-16 16:39:50.000000000 +0100
++++ sle11-2009-04-09/arch/x86/mm/init_64-xen.c 2009-03-16 16:40:37.000000000 +0100
 @@ -195,7 +195,10 @@ set_pte_vaddr_pud(pud_t *pud_page, unsig
        if (pud_none(*pud)) {
                pmd = (pmd_t *) spp_getpage();
@@ -143,15 +137,15 @@ Index: head-2008-12-01/arch/x86/mm/init_64-xen.c
                if (pmd != pmd_offset(pud, 0)) {
                        printk(KERN_ERR "PAGETABLE BUG #01! %p <-> %p\n",
                                pmd, pmd_offset(pud, 0));
-@@ -462,7 +465,6 @@ phys_pmd_init(pmd_t *pmd_page, unsigned 
-                       early_make_page_readonly(pte, XENFEAT_writable_page_tables);
+@@ -478,7 +481,6 @@ phys_pmd_init(pmd_t *pmd_page, unsigned 
+                                                  XENFEAT_writable_page_tables);
                        *pmd = __pmd(pte_phys | _PAGE_TABLE);
                } else {
 -                      make_page_readonly(pte, XENFEAT_writable_page_tables);
                        spin_lock(&init_mm.page_table_lock);
                        pmd_populate_kernel(&init_mm, pmd, __va(pte_phys));
                        spin_unlock(&init_mm.page_table_lock);
-@@ -529,7 +531,6 @@ phys_pud_init(pud_t *pud_page, unsigned 
+@@ -547,7 +549,6 @@ phys_pud_init(pud_t *pud_page, unsigned 
                        else
                                *pud = __pud(pmd_phys | _PAGE_TABLE);
                } else {
@@ -159,15 +153,15 @@ Index: head-2008-12-01/arch/x86/mm/init_64-xen.c
                        spin_lock(&init_mm.page_table_lock);
                        pud_populate(&init_mm, pud, __va(pmd_phys));
                        spin_unlock(&init_mm.page_table_lock);
-@@ -824,7 +825,6 @@ static unsigned long __init kernel_physi
-                       early_make_page_readonly(pud, XENFEAT_writable_page_tables);
+@@ -775,7 +776,6 @@ static unsigned long __meminit kernel_ph
+                                                  XENFEAT_writable_page_tables);
                        xen_l4_entry_update(pgd, __pgd(pud_phys | _PAGE_TABLE));
                } else {
 -                      make_page_readonly(pud, XENFEAT_writable_page_tables);
                        spin_lock(&init_mm.page_table_lock);
                        pgd_populate(&init_mm, pgd, __va(pud_phys));
                        spin_unlock(&init_mm.page_table_lock);
-@@ -1013,7 +1013,7 @@ void __init paging_init(void)
+@@ -1004,7 +1004,7 @@ void __init paging_init(void)
        sparse_init();
        free_area_init_nodes(max_zone_pfns);
  
@@ -176,23 +170,8 @@ Index: head-2008-12-01/arch/x86/mm/init_64-xen.c
  }
  #endif
  
-Index: head-2008-12-01/arch/x86/mm/ioremap-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/mm/ioremap-xen.c     2008-12-01 12:07:15.000000000 +0100
-+++ head-2008-12-01/arch/x86/mm/ioremap-xen.c  2008-12-01 12:13:06.000000000 +0100
-@@ -678,7 +678,7 @@ void __init early_ioremap_clear(void)
-               printk(KERN_INFO "early_ioremap_clear()\n");
-       pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN));
--      pmd_clear(pmd);
-+      xen_l2_entry_update(pmd, __pmd(0));
-       make_lowmem_page_writable(bm_pte, XENFEAT_writable_page_tables);
-       /* paravirt_release_pte(__pa(bm_pte) >> PAGE_SHIFT); */
-       __flush_tlb_all();
-Index: head-2008-12-01/arch/x86/mm/pgtable-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/mm/pgtable-xen.c     2008-12-01 11:49:07.000000000 +0100
-+++ head-2008-12-01/arch/x86/mm/pgtable-xen.c  2008-12-01 12:13:06.000000000 +0100
+--- sle11-2009-04-09.orig/arch/x86/mm/pgtable-xen.c    2009-03-16 16:38:16.000000000 +0100
++++ sle11-2009-04-09/arch/x86/mm/pgtable-xen.c 2009-04-09 14:54:03.000000000 +0200
 @@ -42,16 +42,16 @@ pgtable_t pte_alloc_one(struct mm_struct
  void __pte_free(pgtable_t pte)
  {
@@ -381,7 +360,7 @@ Index: head-2008-12-01/arch/x86/mm/pgtable-xen.c
  
        /*
         * According to Intel App note "TLBs, Paging-Structure Caches,
-@@ -585,13 +637,10 @@ static void pgd_prepopulate_pmd(struct m
+@@ -589,13 +641,10 @@ static void pgd_prepopulate_pmd(struct m
             i++, pud++, addr += PUD_SIZE) {
                pmd_t *pmd = pmds[i];
  
@@ -396,10 +375,8 @@ Index: head-2008-12-01/arch/x86/mm/pgtable-xen.c
  
                /* It is safe to poke machine addresses of pmds under the pgd_lock. */
                pud_populate(mm, pud, pmd);
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/hypervisor.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/hypervisor.h     2008-12-01 12:07:29.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/hypervisor.h  2008-12-01 12:13:06.000000000 +0100
+--- sle11-2009-04-09.orig/include/asm-x86/mach-xen/asm/hypervisor.h    2009-03-12 16:43:54.000000000 +0100
++++ sle11-2009-04-09/include/asm-x86/mach-xen/asm/hypervisor.h 2009-03-16 16:40:37.000000000 +0100
 @@ -94,10 +94,12 @@ void xen_invlpg(unsigned long ptr);
  void xen_l1_entry_update(pte_t *ptr, pte_t val);
  void xen_l2_entry_update(pmd_t *ptr, pmd_t val);
@@ -414,7 +391,7 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/hypervisor.h
  void xen_set_ldt(const void *ptr, unsigned int ents);
  
  #ifdef CONFIG_SMP
-@@ -323,6 +325,18 @@ MULTI_update_va_mapping(
+@@ -331,6 +333,18 @@ MULTI_update_va_mapping(
  }
  
  static inline void
@@ -433,10 +410,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/hypervisor.h
  MULTI_grant_table_op(multicall_entry_t *mcl, unsigned int cmd,
                     void *uop, unsigned int count)
  {
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgalloc.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/pgalloc.h        2008-12-01 11:49:07.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/pgalloc.h     2008-12-01 12:13:06.000000000 +0100
+--- sle11-2009-04-09.orig/include/asm-x86/mach-xen/asm/pgalloc.h       2009-03-16 16:38:16.000000000 +0100
++++ sle11-2009-04-09/include/asm-x86/mach-xen/asm/pgalloc.h    2009-03-16 16:40:37.000000000 +0100
 @@ -64,20 +64,16 @@ static inline void pmd_populate(struct m
                                struct page *pte)
  {
@@ -516,10 +491,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgalloc.h
  }
  
  static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable-3level.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/pgtable-3level.h 2008-12-01 11:49:07.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable-3level.h      2008-12-01 12:13:06.000000000 +0100
+--- sle11-2009-04-09.orig/include/asm-x86/mach-xen/asm/pgtable-3level.h        2009-03-16 16:38:16.000000000 +0100
++++ sle11-2009-04-09/include/asm-x86/mach-xen/asm/pgtable-3level.h     2009-03-16 16:40:37.000000000 +0100
 @@ -76,12 +76,15 @@ static inline void __xen_pte_clear(pte_t
        ptep->pte_high = 0;
  }
@@ -565,10 +538,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable-3level.h
                                  pmd_index(address))
  
  #ifdef CONFIG_SMP
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable_64.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/pgtable_64.h     2008-12-01 11:49:07.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable_64.h  2008-12-01 12:13:06.000000000 +0100
+--- sle11-2009-04-09.orig/include/asm-x86/mach-xen/asm/pgtable_64.h    2009-03-16 16:38:16.000000000 +0100
++++ sle11-2009-04-09/include/asm-x86/mach-xen/asm/pgtable_64.h 2009-03-16 16:40:37.000000000 +0100
 @@ -110,33 +110,41 @@ static inline void xen_set_pmd(pmd_t *pm
        xen_l2_entry_update(pmdp, pmd);
  }