Contents of /trunk/kernel26-xen/patches-2.6.25-r1/1029-2.6.25-xen-patch-2.6.25-rc7-rc8.patch
Parent Directory | Revision Log
Revision 609 -
(show annotations)
(download)
Fri May 23 17:35:37 2008 UTC (16 years, 4 months ago) by niro
File size: 6121 byte(s)
Fri May 23 17:35:37 2008 UTC (16 years, 4 months ago) by niro
File size: 6121 byte(s)
-using opensuse xen patchset, updated kernel configs
1 | 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) |