Annotation 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 -
(hide 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 | 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) |