Magellan Linux

Annotation of /trunk/kernel26-xen/patches-2.6.25-r1/1029-2.6.25-xen-patch-2.6.25-rc7-rc8.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 609 - (hide annotations) (download)
Fri May 23 17:35:37 2008 UTC (16 years, 1 month ago) by niro
File size: 6121 byte(s)
-using opensuse xen patchset, updated kernel configs

1 niro 609 From: kernel.org
2     Subject: 2.6.25-rc8
3    
4     ## Automatically generated incremental diff
5     ## From: linux-2.6.25-rc7
6     ## To: linux-2.6.25-rc8
7     ## Robot: $Id: 1029-2.6.25-xen-patch-2.6.25-rc7-rc8.patch,v 1.1 2008-05-23 17:35:36 niro Exp $
8    
9     Automatically created from "patches.kernel.org/patch-2.6.25-rc7-rc8" by xen-port-patches.py
10     Acked-by: jbeulich@novell.com
11    
12     Index: head-2008-04-02/arch/x86/kernel/setup_32-xen.c
13     ===================================================================
14     --- head-2008-04-02.orig/arch/x86/kernel/setup_32-xen.c 2008-04-02 14:25:44.000000000 +0200
15     +++ head-2008-04-02/arch/x86/kernel/setup_32-xen.c 2008-04-02 15:13:11.000000000 +0200
16     @@ -446,8 +446,6 @@ static unsigned long __init setup_memory
17     min_low_pfn = PFN_UP(__pa(xen_start_info->pt_base)) +
18     xen_start_info->nr_pt_frames;
19    
20     - find_max_pfn();
21     -
22     max_low_pfn = find_max_low_pfn();
23    
24     #ifdef CONFIG_HIGHMEM
25     @@ -844,15 +842,16 @@ void __init setup_arch(char **cmdline_p)
26     if (efi_enabled)
27     efi_init();
28    
29     - max_low_pfn = setup_memory();
30     -
31     /* update e820 for memory not covered by WB MTRRs */
32     + find_max_pfn();
33     mtrr_bp_init();
34     #ifndef CONFIG_XEN
35     if (mtrr_trim_uncached_memory(max_pfn))
36     - max_low_pfn = setup_memory();
37     + find_max_pfn();
38     #endif
39    
40     + max_low_pfn = setup_memory();
41     +
42     #ifdef CONFIG_VMI
43     /*
44     * Must be after max_low_pfn is determined, and before kernel
45     Index: head-2008-04-02/arch/x86/kernel/setup_64-xen.c
46     ===================================================================
47     --- head-2008-04-02.orig/arch/x86/kernel/setup_64-xen.c 2008-04-02 14:25:44.000000000 +0200
48     +++ head-2008-04-02/arch/x86/kernel/setup_64-xen.c 2008-04-02 15:08:41.000000000 +0200
49     @@ -1052,7 +1052,7 @@ static void __cpuinit srat_detect_node(v
50     /* Don't do the funky fallback heuristics the AMD version employs
51     for now. */
52     node = apicid_to_node[apicid];
53     - if (node == NUMA_NO_NODE)
54     + if (node == NUMA_NO_NODE || !node_online(node))
55     node = first_node(node_online_map);
56     numa_set_node(cpu, node);
57    
58     Index: head-2008-04-02/arch/x86/mm/fault-xen.c
59     ===================================================================
60     --- head-2008-04-02.orig/arch/x86/mm/fault-xen.c 2008-04-02 14:25:44.000000000 +0200
61     +++ head-2008-04-02/arch/x86/mm/fault-xen.c 2008-04-02 15:08:41.000000000 +0200
62     @@ -91,12 +91,10 @@ static int is_prefetch(struct pt_regs *r
63     int prefetch = 0;
64     unsigned char *max_instr;
65    
66     -#ifdef CONFIG_X86_32
67     - if (!(__supported_pte_mask & _PAGE_NX))
68     - return 0;
69     -#endif
70     -
71     - /* If it was a exec fault on NX page, ignore */
72     + /*
73     + * If it was a exec (instruction fetch) fault on NX page, then
74     + * do not ignore the fault:
75     + */
76     if (error_code & PF_INSTR)
77     return 0;
78    
79     Index: head-2008-04-02/arch/x86/mm/highmem_32-xen.c
80     ===================================================================
81     --- head-2008-04-02.orig/arch/x86/mm/highmem_32-xen.c 2008-04-02 14:25:44.000000000 +0200
82     +++ head-2008-04-02/arch/x86/mm/highmem_32-xen.c 2008-04-02 15:08:41.000000000 +0200
83     @@ -73,15 +73,15 @@ void *kmap_atomic_prot(struct page *page
84     {
85     enum fixed_addresses idx;
86     unsigned long vaddr;
87     - /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */
88     -
89     - debug_kmap_atomic_prot(type);
90    
91     + /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */
92     pagefault_disable();
93    
94     if (!PageHighMem(page))
95     return page_address(page);
96    
97     + debug_kmap_atomic_prot(type);
98     +
99     idx = type + KM_TYPE_NR*smp_processor_id();
100     vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
101     BUG_ON(!pte_none(*(kmap_pte-idx)));
102     Index: head-2008-04-02/arch/x86/mm/ioremap-xen.c
103     ===================================================================
104     --- head-2008-04-02.orig/arch/x86/mm/ioremap-xen.c 2008-04-02 15:58:11.000000000 +0200
105     +++ head-2008-04-02/arch/x86/mm/ioremap-xen.c 2008-04-02 15:58:17.000000000 +0200
106     @@ -302,7 +302,11 @@ static void __iomem *__ioremap(resource_
107     switch (mode) {
108     case IOR_MODE_UNCACHED:
109     default:
110     - prot = PAGE_KERNEL_NOCACHE;
111     + /*
112     + * FIXME: we will use UC MINUS for now, as video fb drivers
113     + * depend on it. Upcoming ioremap_wc() will fix this behavior.
114     + */
115     + prot = PAGE_KERNEL_UC_MINUS;
116     break;
117     case IOR_MODE_CACHED:
118     prot = PAGE_KERNEL;
119     Index: head-2008-04-02/arch/x86/mm/pageattr-xen.c
120     ===================================================================
121     --- head-2008-04-02.orig/arch/x86/mm/pageattr-xen.c 2008-04-02 14:25:44.000000000 +0200
122     +++ head-2008-04-02/arch/x86/mm/pageattr-xen.c 2008-04-02 15:08:41.000000000 +0200
123     @@ -1103,7 +1103,7 @@ static inline int change_page_attr_clear
124     int set_memory_uc(unsigned long addr, int numpages)
125     {
126     return change_page_attr_set(addr, numpages,
127     - __pgprot(_PAGE_PCD | _PAGE_PWT));
128     + __pgprot(_PAGE_PCD));
129     }
130     EXPORT_SYMBOL(set_memory_uc);
131    
132     Index: head-2008-04-02/include/asm-x86/mach-xen/asm/pgtable.h
133     ===================================================================
134     --- head-2008-04-02.orig/include/asm-x86/mach-xen/asm/pgtable.h 2008-04-02 14:47:31.000000000 +0200
135     +++ head-2008-04-02/include/asm-x86/mach-xen/asm/pgtable.h 2008-04-02 15:08:41.000000000 +0200
136     @@ -94,6 +94,7 @@ extern pteval_t __PAGE_KERNEL, __PAGE_KE
137     #define __PAGE_KERNEL_RX (__PAGE_KERNEL_EXEC & ~_PAGE_RW)
138     #define __PAGE_KERNEL_EXEC_NOCACHE (__PAGE_KERNEL_EXEC | _PAGE_PCD | _PAGE_PWT)
139     #define __PAGE_KERNEL_NOCACHE (__PAGE_KERNEL | _PAGE_PCD | _PAGE_PWT)
140     +#define __PAGE_KERNEL_UC_MINUS (__PAGE_KERNEL | _PAGE_PCD)
141     #define __PAGE_KERNEL_VSYSCALL (__PAGE_KERNEL_RX | _PAGE_USER)
142     #define __PAGE_KERNEL_VSYSCALL_NOCACHE (__PAGE_KERNEL_VSYSCALL | _PAGE_PCD | _PAGE_PWT)
143     #define __PAGE_KERNEL_LARGE (__PAGE_KERNEL | _PAGE_PSE)
144     @@ -109,6 +110,7 @@ extern pteval_t __PAGE_KERNEL, __PAGE_KE
145     #define PAGE_KERNEL_EXEC MAKE_GLOBAL(__PAGE_KERNEL_EXEC)
146     #define PAGE_KERNEL_RX MAKE_GLOBAL(__PAGE_KERNEL_RX)
147     #define PAGE_KERNEL_NOCACHE MAKE_GLOBAL(__PAGE_KERNEL_NOCACHE)
148     +#define PAGE_KERNEL_UC_MINUS MAKE_GLOBAL(__PAGE_KERNEL_UC_MINUS)
149     #define PAGE_KERNEL_EXEC_NOCACHE MAKE_GLOBAL(__PAGE_KERNEL_EXEC_NOCACHE)
150     #define PAGE_KERNEL_LARGE MAKE_GLOBAL(__PAGE_KERNEL_LARGE)
151     #define PAGE_KERNEL_LARGE_EXEC MAKE_GLOBAL(__PAGE_KERNEL_LARGE_EXEC)