Magellan Linux

Contents 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 - (show annotations) (download)
Fri May 23 17:35:37 2008 UTC (15 years, 11 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)