1 |
diff -Naur linux-2.6.25/arch/x86/ia32/ia32entry-xen.S linux-2.6.25-xen/arch/x86/ia32/ia32entry-xen.S |
From: www.kernel.org |
2 |
--- linux-2.6.25/arch/x86/ia32/ia32entry-xen.S 2008-05-23 20:51:11.000000000 +0200 |
Subject: Linux 2.6.19 |
3 |
+++ linux-2.6.25-xen/arch/x86/ia32/ia32entry-xen.S 2008-05-23 20:39:03.000000000 +0200 |
Patch-mainline: 2.6.19 |
4 |
|
|
5 |
|
Automatically created from "patches.kernel.org/patch-2.6.19" by xen-port-patches.py |
6 |
|
|
7 |
|
Acked-by: jbeulich@novell.com |
8 |
|
|
9 |
|
--- |
10 |
|
arch/x86/Kconfig | 1 |
11 |
|
arch/x86/ia32/ia32entry-xen.S | 9 |
12 |
|
arch/x86/kernel/Makefile | 5 |
13 |
|
arch/x86/kernel/apic_32-xen.c | 9 |
14 |
|
arch/x86/kernel/apic_64-xen.c | 20 |
15 |
|
arch/x86/kernel/cpu/common-xen.c | 20 |
16 |
|
arch/x86/kernel/e820_64-xen.c | 320 +++--- |
17 |
|
arch/x86/kernel/early_printk-xen.c | 20 |
18 |
|
arch/x86/kernel/entry_32-xen.S | 139 +- |
19 |
|
arch/x86/kernel/entry_64-xen.S | 106 -- |
20 |
|
arch/x86/kernel/genapic_xen_64.c | 9 |
21 |
|
arch/x86/kernel/head64-xen.c | 44 |
22 |
|
arch/x86/kernel/head_32-xen.S | 2 |
23 |
|
arch/x86/kernel/head_64-xen.S | 5 |
24 |
|
arch/x86/kernel/io_apic_32-xen.c | 750 +++++++++------ |
25 |
|
arch/x86/kernel/io_apic_64-xen.c | 1250 +++++++++++--------------- |
26 |
|
arch/x86/kernel/ioport_64-xen.c | 1 |
27 |
|
arch/x86/kernel/irq_32-xen.c | 19 |
28 |
|
arch/x86/kernel/irq_64-xen.c | 35 |
29 |
|
arch/x86/kernel/ldt_32-xen.c | 2 |
30 |
|
arch/x86/kernel/microcode-xen.c | 85 + |
31 |
|
arch/x86/kernel/mpparse_32-xen.c | 70 - |
32 |
|
arch/x86/kernel/mpparse_64-xen.c | 313 +----- |
33 |
|
arch/x86/kernel/pci-dma_32-xen.c | 16 |
34 |
|
arch/x86/kernel/pci-swiotlb_64-xen.c | 3 |
35 |
|
arch/x86/kernel/process_32-xen.c | 29 |
36 |
|
arch/x86/kernel/process_64-xen.c | 90 + |
37 |
|
arch/x86/kernel/setup64-xen.c | 41 |
38 |
|
arch/x86/kernel/setup_32-xen.c | 430 +++----- |
39 |
|
arch/x86/kernel/setup_64-xen.c | 271 +---- |
40 |
|
arch/x86/kernel/smp_32-xen.c | 75 + |
41 |
|
arch/x86/kernel/smp_64-xen.c | 35 |
42 |
|
arch/x86/kernel/time_32-xen.c | 86 - |
43 |
|
arch/x86/kernel/traps_32-xen.c | 238 +++- |
44 |
|
arch/x86/kernel/traps_64-xen.c | 220 +++- |
45 |
|
arch/x86/kernel/vsyscall_64-xen.c | 117 ++ |
46 |
|
arch/x86/mach-xen/setup.c | 6 |
47 |
|
arch/x86/mm/fault_32-xen.c | 29 |
48 |
|
arch/x86/mm/fault_64-xen.c | 34 |
49 |
|
arch/x86/mm/highmem_32-xen.c | 31 |
50 |
|
arch/x86/mm/hypervisor.c | 9 |
51 |
|
arch/x86/mm/init_32-xen.c | 89 + |
52 |
|
arch/x86/mm/init_64-xen.c | 184 +-- |
53 |
|
arch/x86/mm/ioremap_32-xen.c | 10 |
54 |
|
arch/x86/mm/pageattr_64-xen.c | 24 |
55 |
|
arch/x86/mm/pgtable_32-xen.c | 31 |
56 |
|
arch/x86/pci/irq-xen.c | 38 |
57 |
|
drivers/char/tpm/tpm_xen.c | 5 |
58 |
|
drivers/pci/Kconfig | 2 |
59 |
|
drivers/xen/Kconfig | 3 |
60 |
|
drivers/xen/balloon/balloon.c | 2 |
61 |
|
drivers/xen/blkback/blkback.c | 2 |
62 |
|
drivers/xen/blkback/common.h | 2 |
63 |
|
drivers/xen/blkfront/blkfront.c | 4 |
64 |
|
drivers/xen/blktap/blktap.c | 2 |
65 |
|
drivers/xen/blktap/common.h | 2 |
66 |
|
drivers/xen/console/console.c | 10 |
67 |
|
drivers/xen/console/xencons_ring.c | 4 |
68 |
|
drivers/xen/core/evtchn.c | 50 - |
69 |
|
drivers/xen/core/reboot.c | 3 |
70 |
|
drivers/xen/core/smpboot.c | 6 |
71 |
|
drivers/xen/fbfront/xenfb.c | 3 |
72 |
|
drivers/xen/fbfront/xenkbd.c | 2 |
73 |
|
drivers/xen/gntdev/gntdev.c | 11 |
74 |
|
drivers/xen/netback/accel.c | 2 |
75 |
|
drivers/xen/netback/common.h | 2 |
76 |
|
drivers/xen/netback/loopback.c | 2 |
77 |
|
drivers/xen/netback/netback.c | 6 |
78 |
|
drivers/xen/netfront/netfront.c | 8 |
79 |
|
drivers/xen/pciback/pciback.h | 2 |
80 |
|
drivers/xen/pciback/pciback_ops.c | 2 |
81 |
|
drivers/xen/pcifront/pci_op.c | 8 |
82 |
|
drivers/xen/privcmd/compat_privcmd.c | 1 |
83 |
|
drivers/xen/privcmd/privcmd.c | 2 |
84 |
|
drivers/xen/sfc_netback/accel_xenbus.c | 6 |
85 |
|
drivers/xen/sfc_netfront/accel.h | 6 |
86 |
|
drivers/xen/sfc_netfront/accel_msg.c | 6 |
87 |
|
drivers/xen/sfc_netfront/accel_tso.c | 2 |
88 |
|
drivers/xen/sfc_netfront/accel_vi.c | 4 |
89 |
|
drivers/xen/tpmback/common.h | 2 |
90 |
|
drivers/xen/tpmback/tpmback.c | 4 |
91 |
|
drivers/xen/xenbus/xenbus_comms.c | 2 |
92 |
|
drivers/xen/xenoprof/xenoprofile.c | 2 |
93 |
|
include/asm-generic/pgtable.h | 2 |
94 |
|
include/asm-x86/mach-xen/asm/desc_32.h | 127 +- |
95 |
|
include/asm-x86/mach-xen/asm/dma-mapping_64.h | 7 |
96 |
|
include/asm-x86/mach-xen/asm/e820_64.h | 15 |
97 |
|
include/asm-x86/mach-xen/asm/fixmap_32.h | 5 |
98 |
|
include/asm-x86/mach-xen/asm/fixmap_64.h | 2 |
99 |
|
include/asm-x86/mach-xen/asm/hw_irq_32.h | 8 |
100 |
|
include/asm-x86/mach-xen/asm/hw_irq_64.h | 10 |
101 |
|
include/asm-x86/mach-xen/asm/io_32.h | 27 |
102 |
|
include/asm-x86/mach-xen/asm/io_64.h | 27 |
103 |
|
include/asm-x86/mach-xen/asm/pgtable-2level.h | 12 |
104 |
|
include/asm-x86/mach-xen/asm/pgtable-3level.h | 14 |
105 |
|
include/asm-x86/mach-xen/asm/pgtable_32.h | 143 +- |
106 |
|
include/asm-x86/mach-xen/asm/pgtable_64.h | 86 + |
107 |
|
include/asm-x86/mach-xen/asm/processor_32.h | 62 - |
108 |
|
include/asm-x86/mach-xen/asm/processor_64.h | 2 |
109 |
|
include/asm-x86/mach-xen/asm/segment_32.h | 19 |
110 |
|
include/asm-x86/mach-xen/asm/smp_32.h | 25 |
111 |
|
include/asm-x86/mach-xen/asm/smp_64.h | 27 |
112 |
|
include/asm-x86/mach-xen/asm/system_32.h | 36 |
113 |
|
include/asm-x86/mach-xen/asm/system_64.h | 1 |
114 |
|
include/asm-x86/mach-xen/asm/tlbflush_32.h | 2 |
115 |
|
include/asm-x86/mach-xen/asm/tlbflush_64.h | 3 |
116 |
|
include/asm-x86/thread_info_64.h | 4 |
117 |
|
include/linux/skbuff.h | 7 |
118 |
|
include/xen/evtchn.h | 10 |
119 |
|
include/xen/xencons.h | 2 |
120 |
|
mm/mprotect.c | 2 |
121 |
|
net/core/dev.c | 8 |
122 |
|
112 files changed, 3102 insertions(+), 3145 deletions(-) |
123 |
|
|
124 |
|
--- a/arch/x86/Kconfig |
125 |
|
+++ b/arch/x86/Kconfig |
126 |
|
@@ -390,6 +390,7 @@ |
127 |
|
|
128 |
|
menuconfig PARAVIRT_GUEST |
129 |
|
bool "Paravirtualized guest support" |
130 |
|
+ depends on !X86_XEN && !X86_64_XEN |
131 |
|
help |
132 |
|
Say Y here to get to see options related to running Linux under |
133 |
|
various hypervisors. This option alone does not add any kernel code. |
134 |
|
--- a/arch/x86/ia32/ia32entry-xen.S |
135 |
|
+++ b/arch/x86/ia32/ia32entry-xen.S |
136 |
@@ -83,6 +83,7 @@ |
@@ -83,6 +83,7 @@ |
137 |
*/ |
*/ |
138 |
ENTRY(ia32_sysenter_target) |
ENTRY(ia32_sysenter_target) |
182 |
.quad compat_sys_move_pages |
.quad compat_sys_move_pages |
183 |
+ .quad sys_getcpu |
+ .quad sys_getcpu |
184 |
ia32_syscall_end: |
ia32_syscall_end: |
185 |
diff -Naur linux-2.6.25/arch/x86/Kconfig linux-2.6.25-xen/arch/x86/Kconfig |
--- a/arch/x86/kernel/Makefile |
186 |
--- linux-2.6.25/arch/x86/Kconfig 2008-05-23 20:51:22.000000000 +0200 |
+++ b/arch/x86/kernel/Makefile |
187 |
+++ linux-2.6.25-xen/arch/x86/Kconfig 2008-05-23 20:39:03.000000000 +0200 |
@@ -91,7 +91,7 @@ |
188 |
@@ -390,6 +390,7 @@ |
### |
189 |
|
# 64 bit specific files |
190 |
|
ifeq ($(CONFIG_X86_64),y) |
191 |
|
- obj-y += genapic_64.o genapic_flat_64.o |
192 |
|
+ obj-$(CONFIG_X86_LOCAL_APIC) += genapic_64.o genapic_flat_64.o |
193 |
|
obj-$(CONFIG_X86_XEN_GENAPIC) += genapic_64.o genapic_xen_64.o |
194 |
|
obj-$(CONFIG_X86_PM_TIMER) += pmtimer_64.o |
195 |
|
obj-$(CONFIG_AUDIT) += audit_64.o |
196 |
|
@@ -104,5 +104,6 @@ |
197 |
|
pci-dma_64-$(CONFIG_XEN) += pci-dma_32.o |
198 |
|
endif |
199 |
|
|
200 |
menuconfig PARAVIRT_GUEST |
-disabled-obj-$(CONFIG_XEN) := i8253.o i8259_$(BITS).o reboot.o smpboot_$(BITS).o tsc_$(BITS).o |
201 |
bool "Paravirtualized guest support" |
+disabled-obj-$(CONFIG_XEN) := early-quirks.o i8253.o i8259_$(BITS).o reboot.o \ |
202 |
+ depends on !X86_XEN && !X86_64_XEN |
+ smpboot_$(BITS).o tsc_$(BITS).o |
203 |
help |
%/head_$(BITS).o %/head_$(BITS).s: $(if $(CONFIG_XEN),EXTRA_AFLAGS,dummy) := |
204 |
Say Y here to get to see options related to running Linux under |
--- a/arch/x86/kernel/apic_32-xen.c |
205 |
various hypervisors. This option alone does not add any kernel code. |
+++ b/arch/x86/kernel/apic_32-xen.c |
|
diff -Naur linux-2.6.25/arch/x86/kernel/apic_32-xen.c linux-2.6.25-xen/arch/x86/kernel/apic_32-xen.c |
|
|
--- linux-2.6.25/arch/x86/kernel/apic_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
|
|
+++ linux-2.6.25-xen/arch/x86/kernel/apic_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
206 |
@@ -54,7 +54,6 @@ |
@@ -54,7 +54,6 @@ |
207 |
/* |
/* |
208 |
* Knob to control our willingness to enable the local APIC. |
* Knob to control our willingness to enable the local APIC. |
243 |
#endif |
#endif |
244 |
} |
} |
245 |
} |
} |
246 |
diff -Naur linux-2.6.25/arch/x86/kernel/apic_64-xen.c linux-2.6.25-xen/arch/x86/kernel/apic_64-xen.c |
--- a/arch/x86/kernel/apic_64-xen.c |
247 |
--- linux-2.6.25/arch/x86/kernel/apic_64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/kernel/apic_64-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/kernel/apic_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
248 |
@@ -43,7 +43,7 @@ |
@@ -43,7 +43,7 @@ |
249 |
*/ |
*/ |
250 |
void ack_bad_irq(unsigned int irq) |
void ack_bad_irq(unsigned int irq) |
310 |
#endif |
#endif |
311 |
|
|
312 |
return 1; |
return 1; |
313 |
diff -Naur linux-2.6.25/arch/x86/kernel/cpu/common-xen.c linux-2.6.25-xen/arch/x86/kernel/cpu/common-xen.c |
--- a/arch/x86/kernel/cpu/common-xen.c |
314 |
--- linux-2.6.25/arch/x86/kernel/cpu/common-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/kernel/cpu/common-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/kernel/cpu/common-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
315 |
@@ -43,7 +43,7 @@ |
@@ -43,7 +43,7 @@ |
316 |
|
|
317 |
extern int disable_pse; |
extern int disable_pse; |
375 |
|
|
376 |
/* Clear all 6 debug registers: */ |
/* Clear all 6 debug registers: */ |
377 |
set_debugreg(0, 0); |
set_debugreg(0, 0); |
378 |
diff -Naur linux-2.6.25/arch/x86/kernel/e820_64-xen.c linux-2.6.25-xen/arch/x86/kernel/e820_64-xen.c |
--- a/arch/x86/kernel/e820_64-xen.c |
379 |
--- linux-2.6.25/arch/x86/kernel/e820_64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/kernel/e820_64-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/kernel/e820_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
380 |
@@ -16,6 +16,7 @@ |
@@ -16,6 +16,7 @@ |
381 |
#include <linux/string.h> |
#include <linux/string.h> |
382 |
#include <linux/kexec.h> |
#include <linux/kexec.h> |
857 |
} |
} |
858 |
|
|
859 |
unsigned long pci_mem_start = 0xaeedbabe; |
unsigned long pci_mem_start = 0xaeedbabe; |
860 |
diff -Naur linux-2.6.25/arch/x86/kernel/early_printk-xen.c linux-2.6.25-xen/arch/x86/kernel/early_printk-xen.c |
--- a/arch/x86/kernel/early_printk-xen.c |
861 |
--- linux-2.6.25/arch/x86/kernel/early_printk-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/kernel/early_printk-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/kernel/early_printk-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
862 |
@@ -244,20 +244,16 @@ |
@@ -244,20 +244,16 @@ |
863 |
|
|
864 |
static int __initdata keep_early; |
static int __initdata keep_early; |
905 |
} |
} |
906 |
|
|
907 |
-__setup("earlyprintk=", setup_early_printk); |
-__setup("earlyprintk=", setup_early_printk); |
908 |
diff -Naur linux-2.6.25/arch/x86/kernel/entry_32-xen.S linux-2.6.25-xen/arch/x86/kernel/entry_32-xen.S |
--- a/arch/x86/kernel/entry_32-xen.S |
909 |
--- linux-2.6.25/arch/x86/kernel/entry_32-xen.S 2008-05-23 20:51:22.000000000 +0200 |
+++ b/arch/x86/kernel/entry_32-xen.S |
|
+++ linux-2.6.25-xen/arch/x86/kernel/entry_32-xen.S 2008-05-23 20:39:03.000000000 +0200 |
|
910 |
@@ -80,8 +80,12 @@ |
@@ -80,8 +80,12 @@ |
911 |
NMI_MASK = 0x80000000 |
NMI_MASK = 0x80000000 |
912 |
|
|
1279 |
.section .rodata,"a" |
.section .rodata,"a" |
1280 |
#include "syscall_table.S" |
#include "syscall_table.S" |
1281 |
|
|
1282 |
diff -Naur linux-2.6.25/arch/x86/kernel/entry_64-xen.S linux-2.6.25-xen/arch/x86/kernel/entry_64-xen.S |
--- a/arch/x86/kernel/entry_64-xen.S |
1283 |
--- linux-2.6.25/arch/x86/kernel/entry_64-xen.S 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/kernel/entry_64-xen.S |
|
+++ linux-2.6.25-xen/arch/x86/kernel/entry_64-xen.S 2008-05-23 20:47:55.000000000 +0200 |
|
|
@@ -4,9 +4,6 @@ |
|
|
* Copyright (C) 1991, 1992 Linus Torvalds |
|
|
* Copyright (C) 2000, 2001, 2002 Andi Kleen SuSE Labs |
|
|
* Copyright (C) 2000 Pavel Machek <pavel@suse.cz> |
|
|
- * |
|
|
- * $Id: 1020-2.6.25-xen-patch-2.6.19.patch,v 1.2 2008-05-23 18:49:01 niro Exp $ |
|
|
- * |
|
|
* Jun Nakajima <jun.nakajima@intel.com> |
|
|
* Asit Mallick <asit.k.mallick@intel.com> |
|
|
* Modified for Xen |
|
1284 |
@@ -26,15 +23,25 @@ |
@@ -26,15 +23,25 @@ |
1285 |
* at the top of the kernel process stack. |
* at the top of the kernel process stack. |
1286 |
* - partial stack frame: partially saved registers upto R11. |
* - partial stack frame: partially saved registers upto R11. |
1328 |
CFI_DEF_CFA rsp,SS+8-\ref |
CFI_DEF_CFA rsp,SS+8-\ref |
1329 |
/*CFI_REL_OFFSET ss,SS-\ref*/ |
/*CFI_REL_OFFSET ss,SS-\ref*/ |
1330 |
CFI_REL_OFFSET rsp,RSP-\ref |
CFI_REL_OFFSET rsp,RSP-\ref |
1331 |
@@ -255,6 +264,8 @@ |
@@ -334,6 +343,8 @@ |
1332 |
CFI_REMEMBER_STATE |
LOAD_ARGS ARGOFFSET /* reload args from stack in case ptrace changed it */ |
1333 |
jnz tracesys |
RESTORE_REST |
1334 |
cmpq $__NR_syscall_max,%rax |
cmpq $__NR_syscall_max,%rax |
1335 |
+ movq $-ENOSYS,%rcx |
+ movq $-ENOSYS,%rcx |
1336 |
+ cmova %rcx,%rax |
+ cmova %rcx,%rax |
1337 |
ja badsys |
ja 1f |
1338 |
movq %r10,%rcx |
movq %r10,%rcx /* fixup for C */ |
1339 |
call *sys_call_table(,%rax,8) # XXX: rip relative |
call *sys_call_table(,%rax,8) |
1340 |
@@ -349,6 +360,7 @@ |
@@ -349,6 +360,7 @@ |
1341 |
*/ |
*/ |
1342 |
ENTRY(int_ret_from_sys_call) |
ENTRY(int_ret_from_sys_call) |
1513 |
|
|
1514 |
ENTRY(alignment_check) |
ENTRY(alignment_check) |
1515 |
errorentry do_alignment_check |
errorentry do_alignment_check |
1516 |
diff -Naur linux-2.6.25/arch/x86/kernel/genapic_xen_64.c linux-2.6.25-xen/arch/x86/kernel/genapic_xen_64.c |
--- a/arch/x86/kernel/genapic_xen_64.c |
1517 |
--- linux-2.6.25/arch/x86/kernel/genapic_xen_64.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/kernel/genapic_xen_64.c |
|
+++ linux-2.6.25-xen/arch/x86/kernel/genapic_xen_64.c 2008-05-23 20:39:03.000000000 +0200 |
|
1518 |
@@ -71,6 +71,13 @@ |
@@ -71,6 +71,13 @@ |
1519 |
return cpu_online_map; |
return cpu_online_map; |
1520 |
} |
} |
1539 |
#ifdef CONFIG_XEN_PRIVILEGED_GUEST |
#ifdef CONFIG_XEN_PRIVILEGED_GUEST |
1540 |
.apic_id_registered = xen_apic_id_registered, |
.apic_id_registered = xen_apic_id_registered, |
1541 |
#endif |
#endif |
1542 |
diff -Naur linux-2.6.25/arch/x86/kernel/head_32-xen.S linux-2.6.25-xen/arch/x86/kernel/head_32-xen.S |
--- a/arch/x86/kernel/head64-xen.c |
1543 |
--- linux-2.6.25/arch/x86/kernel/head_32-xen.S 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/kernel/head64-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/kernel/head_32-xen.S 2008-05-23 20:39:03.000000000 +0200 |
|
|
@@ -62,7 +62,7 @@ |
|
|
movl %eax,%gs |
|
|
cld # gcc2 wants the direction flag cleared at all times |
|
|
|
|
|
- pushl %eax # fake return address |
|
|
+ pushl $0 # fake return address for unwinder |
|
|
jmp start_kernel |
|
|
|
|
|
#define HYPERCALL_PAGE_OFFSET 0x1000 |
|
|
diff -Naur linux-2.6.25/arch/x86/kernel/head64-xen.c linux-2.6.25-xen/arch/x86/kernel/head64-xen.c |
|
|
--- linux-2.6.25/arch/x86/kernel/head64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
|
|
+++ linux-2.6.25-xen/arch/x86/kernel/head64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
1544 |
@@ -54,11 +54,9 @@ |
@@ -54,11 +54,9 @@ |
1545 |
new_data = *(int *) (x86_boot_params + NEW_CL_POINTER); |
new_data = *(int *) (x86_boot_params + NEW_CL_POINTER); |
1546 |
if (!new_data) { |
if (!new_data) { |
1622 |
- setup_boot_cpu_data(); |
- setup_boot_cpu_data(); |
1623 |
start_kernel(); |
start_kernel(); |
1624 |
} |
} |
1625 |
diff -Naur linux-2.6.25/arch/x86/kernel/head_64-xen.S linux-2.6.25-xen/arch/x86/kernel/head_64-xen.S |
--- a/arch/x86/kernel/head_32-xen.S |
1626 |
--- linux-2.6.25/arch/x86/kernel/head_64-xen.S 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/kernel/head_32-xen.S |
1627 |
+++ linux-2.6.25-xen/arch/x86/kernel/head_64-xen.S 2008-05-23 20:49:19.000000000 +0200 |
@@ -62,7 +62,7 @@ |
1628 |
@@ -5,9 +5,6 @@ |
movl %eax,%gs |
1629 |
* Copyright (C) 2000 Pavel Machek <pavel@suse.cz> |
cld # gcc2 wants the direction flag cleared at all times |
1630 |
* Copyright (C) 2000 Karsten Keil <kkeil@suse.de> |
|
1631 |
* Copyright (C) 2001,2002 Andi Kleen <ak@suse.de> |
- pushl %eax # fake return address |
1632 |
- * |
+ pushl $0 # fake return address for unwinder |
1633 |
- * $Id: 1020-2.6.25-xen-patch-2.6.19.patch,v 1.2 2008-05-23 18:49:01 niro Exp $ |
jmp start_kernel |
1634 |
- * |
|
1635 |
* Jun Nakajima <jun.nakajima@intel.com> |
#define HYPERCALL_PAGE_OFFSET 0x1000 |
1636 |
* Modified for Xen |
--- a/arch/x86/kernel/head_64-xen.S |
1637 |
*/ |
+++ b/arch/x86/kernel/head_64-xen.S |
1638 |
@@ -149,7 +146,7 @@ |
@@ -149,7 +146,7 @@ |
1639 |
.quad 0,0 /* TSS */ |
.quad 0,0 /* TSS */ |
1640 |
.quad 0,0 /* LDT */ |
.quad 0,0 /* LDT */ |
1644 |
gdt_end: |
gdt_end: |
1645 |
/* asm/segment.h:GDT_ENTRIES must match this */ |
/* asm/segment.h:GDT_ENTRIES must match this */ |
1646 |
/* This should be a multiple of the cache line size */ |
/* This should be a multiple of the cache line size */ |
1647 |
diff -Naur linux-2.6.25/arch/x86/kernel/io_apic_32-xen.c linux-2.6.25-xen/arch/x86/kernel/io_apic_32-xen.c |
--- a/arch/x86/kernel/io_apic_32-xen.c |
1648 |
--- linux-2.6.25/arch/x86/kernel/io_apic_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/kernel/io_apic_32-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/kernel/io_apic_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
1649 |
@@ -31,6 +31,9 @@ |
@@ -31,6 +31,9 @@ |
1650 |
#include <linux/acpi.h> |
#include <linux/acpi.h> |
1651 |
#include <linux/module.h> |
#include <linux/module.h> |
2720 |
+ return 0; |
+ return 0; |
2721 |
+} |
+} |
2722 |
+early_param("noapic", parse_noapic); |
+early_param("noapic", parse_noapic); |
2723 |
diff -Naur linux-2.6.25/arch/x86/kernel/io_apic_64-xen.c linux-2.6.25-xen/arch/x86/kernel/io_apic_64-xen.c |
--- a/arch/x86/kernel/io_apic_64-xen.c |
2724 |
--- linux-2.6.25/arch/x86/kernel/io_apic_64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/kernel/io_apic_64-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/kernel/io_apic_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
2725 |
@@ -26,9 +26,12 @@ |
@@ -26,9 +26,12 @@ |
2726 |
#include <linux/delay.h> |
#include <linux/delay.h> |
2727 |
#include <linux/sched.h> |
#include <linux/sched.h> |
2849 |
apic_op.value = value; |
apic_op.value = value; |
2850 |
WARN_ON(HYPERVISOR_physdev_op(PHYSDEVOP_apic_write, &apic_op)); |
WARN_ON(HYPERVISOR_physdev_op(PHYSDEVOP_apic_write, &apic_op)); |
2851 |
+#endif |
+#endif |
2852 |
+} |
} |
2853 |
+ |
|
2854 |
|
-#define io_apic_read(a,r) xen_io_apic_read(a,r) |
2855 |
|
-#define io_apic_write(a,r,v) xen_io_apic_write(a,r,v) |
2856 |
+#ifndef CONFIG_XEN |
+#ifndef CONFIG_XEN |
2857 |
+/* |
+/* |
2858 |
+ * Re-write a value: to be used for read-modify-write |
+ * Re-write a value: to be used for read-modify-write |
2862 |
+{ |
+{ |
2863 |
+ struct io_apic __iomem *io_apic = io_apic_base(apic); |
+ struct io_apic __iomem *io_apic = io_apic_base(apic); |
2864 |
+ writel(value, &io_apic->data); |
+ writel(value, &io_apic->data); |
2865 |
} |
+} |
2866 |
+#else |
+#else |
2867 |
+#define io_apic_modify io_apic_write |
+#define io_apic_modify io_apic_write |
2868 |
+#endif |
+#endif |
2869 |
|
|
2870 |
-#define io_apic_read(a,r) xen_io_apic_read(a,r) |
-#define clear_IO_APIC() ((void)0) |
|
-#define io_apic_write(a,r,v) xen_io_apic_write(a,r,v) |
|
2871 |
+/* |
+/* |
2872 |
+ * Synchronize the IO-APIC and the CPU by doing |
+ * Synchronize the IO-APIC and the CPU by doing |
2873 |
+ * a dummy read from the IO-APIC |
+ * a dummy read from the IO-APIC |
2880 |
+#endif |
+#endif |
2881 |
+} |
+} |
2882 |
|
|
2883 |
-#define clear_IO_APIC() ((void)0) |
-#else |
2884 |
+union entry_union { |
+union entry_union { |
2885 |
+ struct { u32 w1, w2; }; |
+ struct { u32 w1, w2; }; |
2886 |
+ struct IO_APIC_route_entry entry; |
+ struct IO_APIC_route_entry entry; |
2887 |
+}; |
+}; |
2888 |
|
+ |
|
-#else |
|
2889 |
+static struct IO_APIC_route_entry ioapic_read_entry(int apic, int pin) |
+static struct IO_APIC_route_entry ioapic_read_entry(int apic, int pin) |
2890 |
+{ |
+{ |
2891 |
+ union entry_union eu; |
+ union entry_union eu; |
4413 |
spin_unlock_irqrestore(&ioapic_lock, flags); |
spin_unlock_irqrestore(&ioapic_lock, flags); |
4414 |
|
|
4415 |
return 0; |
return 0; |
4416 |
diff -Naur linux-2.6.25/arch/x86/kernel/ioport_64-xen.c linux-2.6.25-xen/arch/x86/kernel/ioport_64-xen.c |
--- a/arch/x86/kernel/ioport_64-xen.c |
4417 |
--- linux-2.6.25/arch/x86/kernel/ioport_64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/kernel/ioport_64-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/kernel/ioport_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
4418 |
@@ -58,6 +58,7 @@ |
@@ -58,6 +58,7 @@ |
4419 |
|
|
4420 |
memset(bitmap, 0xff, IO_BITMAP_BYTES); |
memset(bitmap, 0xff, IO_BITMAP_BYTES); |
4423 |
|
|
4424 |
set_xen_guest_handle(set_iobitmap.bitmap, (char *)bitmap); |
set_xen_guest_handle(set_iobitmap.bitmap, (char *)bitmap); |
4425 |
set_iobitmap.nr_ports = IO_BITMAP_BITS; |
set_iobitmap.nr_ports = IO_BITMAP_BITS; |
4426 |
diff -Naur linux-2.6.25/arch/x86/kernel/irq_32-xen.c linux-2.6.25-xen/arch/x86/kernel/irq_32-xen.c |
--- a/arch/x86/kernel/irq_32-xen.c |
4427 |
--- linux-2.6.25/arch/x86/kernel/irq_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/kernel/irq_32-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/kernel/irq_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
4428 |
@@ -53,8 +53,10 @@ |
@@ -53,8 +53,10 @@ |
4429 |
*/ |
*/ |
4430 |
fastcall unsigned int do_IRQ(struct pt_regs *regs) |
fastcall unsigned int do_IRQ(struct pt_regs *regs) |
4481 |
seq_printf(p, " %s", action->name); |
seq_printf(p, " %s", action->name); |
4482 |
|
|
4483 |
for (action=action->next; action; action = action->next) |
for (action=action->next; action; action = action->next) |
4484 |
diff -Naur linux-2.6.25/arch/x86/kernel/irq_64-xen.c linux-2.6.25-xen/arch/x86/kernel/irq_64-xen.c |
--- a/arch/x86/kernel/irq_64-xen.c |
4485 |
--- linux-2.6.25/arch/x86/kernel/irq_64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/kernel/irq_64-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/kernel/irq_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
4486 |
@@ -20,11 +20,6 @@ |
@@ -20,11 +20,6 @@ |
4487 |
#include <asm/idle.h> |
#include <asm/idle.h> |
4488 |
|
|
4562 |
+ printk("unexpected IRQ trap at irq %02x\n", irq); |
+ printk("unexpected IRQ trap at irq %02x\n", irq); |
4563 |
} |
} |
4564 |
#endif |
#endif |
4565 |
diff -Naur linux-2.6.25/arch/x86/kernel/ldt_32-xen.c linux-2.6.25-xen/arch/x86/kernel/ldt_32-xen.c |
--- a/arch/x86/kernel/ldt_32-xen.c |
4566 |
--- linux-2.6.25/arch/x86/kernel/ldt_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/kernel/ldt_32-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/kernel/ldt_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
4567 |
@@ -1,5 +1,5 @@ |
@@ -1,5 +1,5 @@ |
4568 |
/* |
/* |
4569 |
- * linux/kernel/ldt.c |
- * linux/kernel/ldt.c |
4571 |
* |
* |
4572 |
* Copyright (C) 1992 Krishna Balasubramanian and Linus Torvalds |
* Copyright (C) 1992 Krishna Balasubramanian and Linus Torvalds |
4573 |
* Copyright (C) 1999 Ingo Molnar <mingo@redhat.com> |
* Copyright (C) 1999 Ingo Molnar <mingo@redhat.com> |
4574 |
diff -Naur linux-2.6.25/arch/x86/kernel/Makefile linux-2.6.25-xen/arch/x86/kernel/Makefile |
--- a/arch/x86/kernel/microcode-xen.c |
4575 |
--- linux-2.6.25/arch/x86/kernel/Makefile 2008-05-23 20:51:22.000000000 +0200 |
+++ b/arch/x86/kernel/microcode-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/kernel/Makefile 2008-05-23 20:39:03.000000000 +0200 |
|
|
@@ -91,7 +91,7 @@ |
|
|
### |
|
|
# 64 bit specific files |
|
|
ifeq ($(CONFIG_X86_64),y) |
|
|
- obj-y += genapic_64.o genapic_flat_64.o |
|
|
+ obj-$(CONFIG_X86_LOCAL_APIC) += genapic_64.o genapic_flat_64.o |
|
|
obj-$(CONFIG_X86_XEN_GENAPIC) += genapic_64.o genapic_xen_64.o |
|
|
obj-$(CONFIG_X86_PM_TIMER) += pmtimer_64.o |
|
|
obj-$(CONFIG_AUDIT) += audit_64.o |
|
|
@@ -104,5 +104,6 @@ |
|
|
pci-dma_64-$(CONFIG_XEN) += pci-dma_32.o |
|
|
endif |
|
|
|
|
|
-disabled-obj-$(CONFIG_XEN) := i8253.o i8259_$(BITS).o reboot.o smpboot_$(BITS).o tsc_$(BITS).o |
|
|
+disabled-obj-$(CONFIG_XEN) := early-quirks.o i8253.o i8259_$(BITS).o reboot.o \ |
|
|
+ smpboot_$(BITS).o tsc_$(BITS).o |
|
|
%/head_$(BITS).o %/head_$(BITS).s: $(if $(CONFIG_XEN),EXTRA_AFLAGS,dummy) := |
|
|
diff -Naur linux-2.6.25/arch/x86/kernel/microcode-xen.c linux-2.6.25-xen/arch/x86/kernel/microcode-xen.c |
|
|
--- linux-2.6.25/arch/x86/kernel/microcode-xen.c 2008-05-23 20:51:11.000000000 +0200 |
|
|
+++ linux-2.6.25-xen/arch/x86/kernel/microcode-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
4576 |
@@ -2,6 +2,7 @@ |
@@ -2,6 +2,7 @@ |
4577 |
* Intel CPU Microcode Update Driver for Linux |
* Intel CPU Microcode Update Driver for Linux |
4578 |
* |
* |
4708 |
module_init(microcode_init) |
module_init(microcode_init) |
4709 |
module_exit(microcode_exit) |
module_exit(microcode_exit) |
4710 |
-MODULE_ALIAS_MISCDEV(MICROCODE_MINOR); |
-MODULE_ALIAS_MISCDEV(MICROCODE_MINOR); |
4711 |
diff -Naur linux-2.6.25/arch/x86/kernel/mpparse_32-xen.c linux-2.6.25-xen/arch/x86/kernel/mpparse_32-xen.c |
--- a/arch/x86/kernel/mpparse_32-xen.c |
4712 |
--- linux-2.6.25/arch/x86/kernel/mpparse_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/kernel/mpparse_32-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/kernel/mpparse_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
4713 |
@@ -30,6 +30,7 @@ |
@@ -30,6 +30,7 @@ |
4714 |
#include <asm/io_apic.h> |
#include <asm/io_apic.h> |
4715 |
|
|
4876 |
/* |
/* |
4877 |
* Mapping between Global System Interrups, which |
* Mapping between Global System Interrups, which |
4878 |
* represent all possible interrupts, and IRQs |
* represent all possible interrupts, and IRQs |
4879 |
diff -Naur linux-2.6.25/arch/x86/kernel/mpparse_64-xen.c linux-2.6.25-xen/arch/x86/kernel/mpparse_64-xen.c |
--- a/arch/x86/kernel/mpparse_64-xen.c |
4880 |
--- linux-2.6.25/arch/x86/kernel/mpparse_64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/kernel/mpparse_64-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/kernel/mpparse_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
4881 |
@@ -41,8 +41,7 @@ |
@@ -41,8 +41,7 @@ |
4882 |
* Various Linux-internal data structures created from the |
* Various Linux-internal data structures created from the |
4883 |
* MP-table. |
* MP-table. |
5491 |
- |
- |
5492 |
-#endif /*CONFIG_X86_IO_APIC*/ |
-#endif /*CONFIG_X86_IO_APIC*/ |
5493 |
#endif /*CONFIG_ACPI*/ |
#endif /*CONFIG_ACPI*/ |
5494 |
diff -Naur linux-2.6.25/arch/x86/kernel/pci-dma_32-xen.c linux-2.6.25-xen/arch/x86/kernel/pci-dma_32-xen.c |
--- a/arch/x86/kernel/pci-dma_32-xen.c |
5495 |
--- linux-2.6.25/arch/x86/kernel/pci-dma_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/kernel/pci-dma_32-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/kernel/pci-dma_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
5496 |
@@ -116,8 +116,7 @@ |
@@ -116,8 +116,7 @@ |
5497 |
{ |
{ |
5498 |
int i, rc; |
int i, rc; |
5551 |
if (swiotlb) |
if (swiotlb) |
5552 |
swiotlb_unmap_single(dev, dma_addr, size, direction); |
swiotlb_unmap_single(dev, dma_addr, size, direction); |
5553 |
else |
else |
5554 |
diff -Naur linux-2.6.25/arch/x86/kernel/pci-swiotlb_64-xen.c linux-2.6.25-xen/arch/x86/kernel/pci-swiotlb_64-xen.c |
--- a/arch/x86/kernel/pci-swiotlb_64-xen.c |
5555 |
--- linux-2.6.25/arch/x86/kernel/pci-swiotlb_64-xen.c 2008-05-23 20:51:21.000000000 +0200 |
+++ b/arch/x86/kernel/pci-swiotlb_64-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/kernel/pci-swiotlb_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
5556 |
@@ -3,7 +3,8 @@ |
@@ -3,7 +3,8 @@ |
5557 |
#include <linux/pci.h> |
#include <linux/pci.h> |
5558 |
#include <linux/cache.h> |
#include <linux/cache.h> |
5563 |
#include <asm/proto.h> |
#include <asm/proto.h> |
5564 |
#include <asm/swiotlb.h> |
#include <asm/swiotlb.h> |
5565 |
#include <asm/dma.h> |
#include <asm/dma.h> |
5566 |
diff -Naur linux-2.6.25/arch/x86/kernel/process_32-xen.c linux-2.6.25-xen/arch/x86/kernel/process_32-xen.c |
--- a/arch/x86/kernel/process_32-xen.c |
5567 |
--- linux-2.6.25/arch/x86/kernel/process_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/kernel/process_32-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/kernel/process_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
5568 |
@@ -37,6 +37,7 @@ |
@@ -37,6 +37,7 @@ |
5569 |
#include <linux/kallsyms.h> |
#include <linux/kallsyms.h> |
5570 |
#include <linux/ptrace.h> |
#include <linux/ptrace.h> |
5654 |
sp -= get_random_int() % 8192; |
sp -= get_random_int() % 8192; |
5655 |
return sp & ~0xf; |
return sp & ~0xf; |
5656 |
} |
} |
5657 |
diff -Naur linux-2.6.25/arch/x86/kernel/process_64-xen.c linux-2.6.25-xen/arch/x86/kernel/process_64-xen.c |
--- a/arch/x86/kernel/process_64-xen.c |
5658 |
--- linux-2.6.25/arch/x86/kernel/process_64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/kernel/process_64-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/kernel/process_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
5659 |
@@ -89,25 +89,24 @@ |
@@ -89,25 +89,24 @@ |
5660 |
} |
} |
5661 |
EXPORT_SYMBOL(idle_notifier_unregister); |
EXPORT_SYMBOL(idle_notifier_unregister); |
5862 |
sp -= get_random_int() % 8192; |
sp -= get_random_int() % 8192; |
5863 |
return sp & ~0xf; |
return sp & ~0xf; |
5864 |
} |
} |
5865 |
diff -Naur linux-2.6.25/arch/x86/kernel/setup_32-xen.c linux-2.6.25-xen/arch/x86/kernel/setup_32-xen.c |
--- a/arch/x86/kernel/setup64-xen.c |
5866 |
--- linux-2.6.25/arch/x86/kernel/setup_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/kernel/setup64-xen.c |
5867 |
+++ linux-2.6.25-xen/arch/x86/kernel/setup_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
@@ -31,7 +31,7 @@ |
5868 |
|
#include <asm/hypervisor.h> |
5869 |
|
#endif |
5870 |
|
|
5871 |
|
-char x86_boot_params[BOOT_PARAM_SIZE] __initdata = {0,}; |
5872 |
|
+char x86_boot_params[BOOT_PARAM_SIZE] __initdata; |
5873 |
|
|
5874 |
|
cpumask_t cpu_initialized __cpuinitdata = CPU_MASK_NONE; |
5875 |
|
|
5876 |
|
@@ -55,8 +55,10 @@ |
5877 |
|
on Enable(default) |
5878 |
|
off Disable |
5879 |
|
*/ |
5880 |
|
-int __init nonx_setup(char *str) |
5881 |
|
+static int __init nonx_setup(char *str) |
5882 |
|
{ |
5883 |
|
+ if (!str) |
5884 |
|
+ return -EINVAL; |
5885 |
|
if (!strncmp(str, "on", 2)) { |
5886 |
|
__supported_pte_mask |= _PAGE_NX; |
5887 |
|
do_not_nx = 0; |
5888 |
|
@@ -64,9 +66,9 @@ |
5889 |
|
do_not_nx = 1; |
5890 |
|
__supported_pte_mask &= ~_PAGE_NX; |
5891 |
|
} |
5892 |
|
- return 1; |
5893 |
|
+ return 0; |
5894 |
|
} |
5895 |
|
-__setup("noexec=", nonx_setup); /* parsed early actually */ |
5896 |
|
+early_param("noexec", nonx_setup); |
5897 |
|
|
5898 |
|
int force_personality32 = 0; |
5899 |
|
|
5900 |
|
@@ -102,12 +104,9 @@ |
5901 |
|
#endif |
5902 |
|
|
5903 |
|
/* Copy section for each CPU (we discard the original) */ |
5904 |
|
- size = ALIGN(__per_cpu_end - __per_cpu_start, SMP_CACHE_BYTES); |
5905 |
|
-#ifdef CONFIG_MODULES |
5906 |
|
- if (size < PERCPU_ENOUGH_ROOM) |
5907 |
|
- size = PERCPU_ENOUGH_ROOM; |
5908 |
|
-#endif |
5909 |
|
+ size = PERCPU_ENOUGH_ROOM; |
5910 |
|
|
5911 |
|
+ printk(KERN_INFO "PERCPU: Allocating %lu bytes of per cpu data\n", size); |
5912 |
|
for_each_cpu_mask (i, cpu_possible_map) { |
5913 |
|
char *ptr; |
5914 |
|
|
5915 |
|
@@ -169,7 +168,10 @@ |
5916 |
|
/* Setup up data that may be needed in __get_free_pages early */ |
5917 |
|
asm volatile("movl %0,%%fs ; movl %0,%%gs" :: "r" (0)); |
5918 |
|
#ifndef CONFIG_XEN |
5919 |
|
+ /* Memory clobbers used to order PDA accessed */ |
5920 |
|
+ mb(); |
5921 |
|
wrmsrl(MSR_GS_BASE, pda); |
5922 |
|
+ mb(); |
5923 |
|
#else |
5924 |
|
if (HYPERVISOR_set_segment_base(SEGBASE_GS_KERNEL, |
5925 |
|
(unsigned long)pda)) |
5926 |
|
@@ -302,28 +304,17 @@ |
5927 |
|
* set up and load the per-CPU TSS |
5928 |
|
*/ |
5929 |
|
for (v = 0; v < N_EXCEPTION_STACKS; v++) { |
5930 |
|
+ static const unsigned int order[N_EXCEPTION_STACKS] = { |
5931 |
|
+ [0 ... N_EXCEPTION_STACKS - 1] = EXCEPTION_STACK_ORDER, |
5932 |
|
+ [DEBUG_STACK - 1] = DEBUG_STACK_ORDER |
5933 |
|
+ }; |
5934 |
|
if (cpu) { |
5935 |
|
- static const unsigned int order[N_EXCEPTION_STACKS] = { |
5936 |
|
- [0 ... N_EXCEPTION_STACKS - 1] = EXCEPTION_STACK_ORDER, |
5937 |
|
- [DEBUG_STACK - 1] = DEBUG_STACK_ORDER |
5938 |
|
- }; |
5939 |
|
- |
5940 |
|
estacks = (char *)__get_free_pages(GFP_ATOMIC, order[v]); |
5941 |
|
if (!estacks) |
5942 |
|
panic("Cannot allocate exception stack %ld %d\n", |
5943 |
|
v, cpu); |
5944 |
|
} |
5945 |
|
- switch (v + 1) { |
5946 |
|
-#if DEBUG_STKSZ > EXCEPTION_STKSZ |
5947 |
|
- case DEBUG_STACK: |
5948 |
|
- cpu_pda(cpu)->debugstack = (unsigned long)estacks; |
5949 |
|
- estacks += DEBUG_STKSZ; |
5950 |
|
- break; |
5951 |
|
-#endif |
5952 |
|
- default: |
5953 |
|
- estacks += EXCEPTION_STKSZ; |
5954 |
|
- break; |
5955 |
|
- } |
5956 |
|
+ estacks += PAGE_SIZE << order[v]; |
5957 |
|
orig_ist->ist[v] = t->ist[v] = (unsigned long)estacks; |
5958 |
|
} |
5959 |
|
|
5960 |
|
--- a/arch/x86/kernel/setup_32-xen.c |
5961 |
|
+++ b/arch/x86/kernel/setup_32-xen.c |
5962 |
@@ -56,6 +56,7 @@ |
@@ -56,6 +56,7 @@ |
5963 |
#include <asm/apic.h> |
#include <asm/apic.h> |
5964 |
#include <asm/e820.h> |
#include <asm/e820.h> |
6240 |
|
|
6241 |
- else if (!memcmp(from, "acpi_sci=edge", 13)) |
- else if (!memcmp(from, "acpi_sci=edge", 13)) |
6242 |
- acpi_sci_flags.trigger = 1; |
- acpi_sci_flags.trigger = 1; |
|
- |
|
|
- else if (!memcmp(from, "acpi_sci=level", 14)) |
|
|
- acpi_sci_flags.trigger = 3; |
|
6243 |
+#ifdef CONFIG_PROC_VMCORE |
+#ifdef CONFIG_PROC_VMCORE |
6244 |
+/* elfcorehdr= specifies the location of elf core header |
+/* elfcorehdr= specifies the location of elf core header |
6245 |
+ * stored by the crashed kernel. |
+ * stored by the crashed kernel. |
6249 |
+ if (!arg) |
+ if (!arg) |
6250 |
+ return -EINVAL; |
+ return -EINVAL; |
6251 |
|
|
6252 |
- else if (!memcmp(from, "acpi_sci=high", 13)) |
- else if (!memcmp(from, "acpi_sci=level", 14)) |
6253 |
- acpi_sci_flags.polarity = 1; |
- acpi_sci_flags.trigger = 3; |
6254 |
+ elfcorehdr_addr = memparse(arg, &arg); |
+ elfcorehdr_addr = memparse(arg, &arg); |
6255 |
+ return 0; |
+ return 0; |
6256 |
+} |
+} |
6257 |
+early_param("elfcorehdr", parse_elfcorehdr); |
+early_param("elfcorehdr", parse_elfcorehdr); |
6258 |
+#endif /* CONFIG_PROC_VMCORE */ |
+#endif /* CONFIG_PROC_VMCORE */ |
6259 |
|
|
6260 |
- else if (!memcmp(from, "acpi_sci=low", 12)) |
- else if (!memcmp(from, "acpi_sci=high", 13)) |
6261 |
- acpi_sci_flags.polarity = 3; |
- acpi_sci_flags.polarity = 1; |
6262 |
+/* |
+/* |
6263 |
+ * highmem=size forces highmem to be exactly 'size' bytes. |
+ * highmem=size forces highmem to be exactly 'size' bytes. |
6264 |
+ * This works even on boxes that have no highmem otherwise. |
+ * This works even on boxes that have no highmem otherwise. |
6269 |
+ if (!arg) |
+ if (!arg) |
6270 |
+ return -EINVAL; |
+ return -EINVAL; |
6271 |
|
|
6272 |
-#ifdef CONFIG_X86_IO_APIC |
- else if (!memcmp(from, "acpi_sci=low", 12)) |
6273 |
- else if (!memcmp(from, "acpi_skip_timer_override", 24)) |
- acpi_sci_flags.polarity = 3; |
|
- acpi_skip_timer_override = 1; |
|
6274 |
+ highmem_pages = memparse(arg, &arg) >> PAGE_SHIFT; |
+ highmem_pages = memparse(arg, &arg) >> PAGE_SHIFT; |
6275 |
+ return 0; |
+ return 0; |
6276 |
+} |
+} |
6277 |
+early_param("highmem", parse_highmem); |
+early_param("highmem", parse_highmem); |
6278 |
|
|
6279 |
- if (!memcmp(from, "disable_timer_pin_1", 19)) |
-#ifdef CONFIG_X86_IO_APIC |
6280 |
- disable_timer_pin_1 = 1; |
- else if (!memcmp(from, "acpi_skip_timer_override", 24)) |
6281 |
- if (!memcmp(from, "enable_timer_pin_1", 18)) |
- acpi_skip_timer_override = 1; |
|
- disable_timer_pin_1 = -1; |
|
|
- |
|
|
- /* disable IO-APIC */ |
|
|
- else if (!memcmp(from, "noapic", 6)) |
|
|
- disable_ioapic_setup(); |
|
|
-#endif /* CONFIG_X86_IO_APIC */ |
|
|
-#endif /* CONFIG_ACPI */ |
|
6282 |
+/* |
+/* |
6283 |
+ * vmalloc=size forces the vmalloc area to be exactly 'size' |
+ * vmalloc=size forces the vmalloc area to be exactly 'size' |
6284 |
+ * bytes. This can be used to increase (or decrease) the |
+ * bytes. This can be used to increase (or decrease) the |
6289 |
+ if (!arg) |
+ if (!arg) |
6290 |
+ return -EINVAL; |
+ return -EINVAL; |
6291 |
|
|
6292 |
|
- if (!memcmp(from, "disable_timer_pin_1", 19)) |
6293 |
|
- disable_timer_pin_1 = 1; |
6294 |
|
- if (!memcmp(from, "enable_timer_pin_1", 18)) |
6295 |
|
- disable_timer_pin_1 = -1; |
6296 |
|
- |
6297 |
|
- /* disable IO-APIC */ |
6298 |
|
- else if (!memcmp(from, "noapic", 6)) |
6299 |
|
- disable_ioapic_setup(); |
6300 |
|
-#endif /* CONFIG_X86_IO_APIC */ |
6301 |
|
-#endif /* CONFIG_ACPI */ |
6302 |
|
- |
6303 |
-#ifdef CONFIG_X86_LOCAL_APIC |
-#ifdef CONFIG_X86_LOCAL_APIC |
6304 |
- /* enable local APIC */ |
- /* enable local APIC */ |
6305 |
- else if (!memcmp(from, "lapic", 5)) |
- else if (!memcmp(from, "lapic", 5)) |
6521 |
|
|
6522 |
#ifdef CONFIG_ACPI |
#ifdef CONFIG_ACPI |
6523 |
acpi_boot_init(); |
acpi_boot_init(); |
6524 |
diff -Naur linux-2.6.25/arch/x86/kernel/setup64-xen.c linux-2.6.25-xen/arch/x86/kernel/setup64-xen.c |
--- a/arch/x86/kernel/setup_64-xen.c |
6525 |
--- linux-2.6.25/arch/x86/kernel/setup64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/kernel/setup_64-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/kernel/setup64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
|
@@ -31,7 +31,7 @@ |
|
|
#include <asm/hypervisor.h> |
|
|
#endif |
|
|
|
|
|
-char x86_boot_params[BOOT_PARAM_SIZE] __initdata = {0,}; |
|
|
+char x86_boot_params[BOOT_PARAM_SIZE] __initdata; |
|
|
|
|
|
cpumask_t cpu_initialized __cpuinitdata = CPU_MASK_NONE; |
|
|
|
|
|
@@ -55,8 +55,10 @@ |
|
|
on Enable(default) |
|
|
off Disable |
|
|
*/ |
|
|
-int __init nonx_setup(char *str) |
|
|
+static int __init nonx_setup(char *str) |
|
|
{ |
|
|
+ if (!str) |
|
|
+ return -EINVAL; |
|
|
if (!strncmp(str, "on", 2)) { |
|
|
__supported_pte_mask |= _PAGE_NX; |
|
|
do_not_nx = 0; |
|
|
@@ -64,9 +66,9 @@ |
|
|
do_not_nx = 1; |
|
|
__supported_pte_mask &= ~_PAGE_NX; |
|
|
} |
|
|
- return 1; |
|
|
+ return 0; |
|
|
} |
|
|
-__setup("noexec=", nonx_setup); /* parsed early actually */ |
|
|
+early_param("noexec", nonx_setup); |
|
|
|
|
|
int force_personality32 = 0; |
|
|
|
|
|
@@ -102,12 +104,9 @@ |
|
|
#endif |
|
|
|
|
|
/* Copy section for each CPU (we discard the original) */ |
|
|
- size = ALIGN(__per_cpu_end - __per_cpu_start, SMP_CACHE_BYTES); |
|
|
-#ifdef CONFIG_MODULES |
|
|
- if (size < PERCPU_ENOUGH_ROOM) |
|
|
- size = PERCPU_ENOUGH_ROOM; |
|
|
-#endif |
|
|
+ size = PERCPU_ENOUGH_ROOM; |
|
|
|
|
|
+ printk(KERN_INFO "PERCPU: Allocating %lu bytes of per cpu data\n", size); |
|
|
for_each_cpu_mask (i, cpu_possible_map) { |
|
|
char *ptr; |
|
|
|
|
|
@@ -169,7 +168,10 @@ |
|
|
/* Setup up data that may be needed in __get_free_pages early */ |
|
|
asm volatile("movl %0,%%fs ; movl %0,%%gs" :: "r" (0)); |
|
|
#ifndef CONFIG_XEN |
|
|
+ /* Memory clobbers used to order PDA accessed */ |
|
|
+ mb(); |
|
|
wrmsrl(MSR_GS_BASE, pda); |
|
|
+ mb(); |
|
|
#else |
|
|
if (HYPERVISOR_set_segment_base(SEGBASE_GS_KERNEL, |
|
|
(unsigned long)pda)) |
|
|
@@ -302,28 +304,17 @@ |
|
|
* set up and load the per-CPU TSS |
|
|
*/ |
|
|
for (v = 0; v < N_EXCEPTION_STACKS; v++) { |
|
|
+ static const unsigned int order[N_EXCEPTION_STACKS] = { |
|
|
+ [0 ... N_EXCEPTION_STACKS - 1] = EXCEPTION_STACK_ORDER, |
|
|
+ [DEBUG_STACK - 1] = DEBUG_STACK_ORDER |
|
|
+ }; |
|
|
if (cpu) { |
|
|
- static const unsigned int order[N_EXCEPTION_STACKS] = { |
|
|
- [0 ... N_EXCEPTION_STACKS - 1] = EXCEPTION_STACK_ORDER, |
|
|
- [DEBUG_STACK - 1] = DEBUG_STACK_ORDER |
|
|
- }; |
|
|
- |
|
|
estacks = (char *)__get_free_pages(GFP_ATOMIC, order[v]); |
|
|
if (!estacks) |
|
|
panic("Cannot allocate exception stack %ld %d\n", |
|
|
v, cpu); |
|
|
} |
|
|
- switch (v + 1) { |
|
|
-#if DEBUG_STKSZ > EXCEPTION_STKSZ |
|
|
- case DEBUG_STACK: |
|
|
- cpu_pda(cpu)->debugstack = (unsigned long)estacks; |
|
|
- estacks += DEBUG_STKSZ; |
|
|
- break; |
|
|
-#endif |
|
|
- default: |
|
|
- estacks += EXCEPTION_STKSZ; |
|
|
- break; |
|
|
- } |
|
|
+ estacks += PAGE_SIZE << order[v]; |
|
|
orig_ist->ist[v] = t->ist[v] = (unsigned long)estacks; |
|
|
} |
|
|
|
|
|
diff -Naur linux-2.6.25/arch/x86/kernel/setup_64-xen.c linux-2.6.25-xen/arch/x86/kernel/setup_64-xen.c |
|
|
--- linux-2.6.25/arch/x86/kernel/setup_64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
|
|
+++ linux-2.6.25-xen/arch/x86/kernel/setup_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
6526 |
@@ -118,16 +118,6 @@ |
@@ -118,16 +118,6 @@ |
6527 |
|
|
6528 |
unsigned long mmu_cr4_features; |
unsigned long mmu_cr4_features; |
6946 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
6947 |
|
|
6948 |
/* VIA/Cyrix/Centaur-defined */ |
/* VIA/Cyrix/Centaur-defined */ |
6949 |
diff -Naur linux-2.6.25/arch/x86/kernel/smp_32-xen.c linux-2.6.25-xen/arch/x86/kernel/smp_32-xen.c |
--- a/arch/x86/kernel/smp_32-xen.c |
6950 |
--- linux-2.6.25/arch/x86/kernel/smp_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/kernel/smp_32-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/kernel/smp_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
6951 |
@@ -279,8 +279,7 @@ |
@@ -279,8 +279,7 @@ |
6952 |
* 2) Leave the mm if we are in the lazy tlb mode. |
* 2) Leave the mm if we are in the lazy tlb mode. |
6953 |
*/ |
*/ |
7047 |
+ return 0; |
+ return 0; |
7048 |
+} |
+} |
7049 |
+EXPORT_SYMBOL(smp_call_function_single); |
+EXPORT_SYMBOL(smp_call_function_single); |
7050 |
diff -Naur linux-2.6.25/arch/x86/kernel/smp_64-xen.c linux-2.6.25-xen/arch/x86/kernel/smp_64-xen.c |
--- a/arch/x86/kernel/smp_64-xen.c |
7051 |
--- linux-2.6.25/arch/x86/kernel/smp_64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/kernel/smp_64-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/kernel/smp_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
7052 |
@@ -381,9 +381,8 @@ |
@@ -381,9 +381,8 @@ |
7053 |
/* prevent preemption and reschedule on another processor */ |
/* prevent preemption and reschedule on another processor */ |
7054 |
int me = get_cpu(); |
int me = get_cpu(); |
7110 |
- return 0; /* Should not happen */ |
- return 0; /* Should not happen */ |
7111 |
-#endif |
-#endif |
7112 |
-} |
-} |
7113 |
diff -Naur linux-2.6.25/arch/x86/kernel/time_32-xen.c linux-2.6.25-xen/arch/x86/kernel/time_32-xen.c |
--- a/arch/x86/kernel/time_32-xen.c |
7114 |
--- linux-2.6.25/arch/x86/kernel/time_32-xen.c 2008-05-23 20:51:22.000000000 +0200 |
+++ b/arch/x86/kernel/time_32-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/kernel/time_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
7115 |
@@ -89,7 +89,6 @@ |
@@ -89,7 +89,6 @@ |
7116 |
unsigned long vxtime_hz = PIT_TICK_RATE; |
unsigned long vxtime_hz = PIT_TICK_RATE; |
7117 |
struct vxtime_data __vxtime __section_vxtime; /* for vsyscalls */ |
struct vxtime_data __vxtime __section_vxtime; /* for vsyscalls */ |
7294 |
|
|
7295 |
if ((hpet_enable() >= 0) && hpet_use_timer) { |
if ((hpet_enable() >= 0) && hpet_use_timer) { |
7296 |
printk("Using HPET for base-timer\n"); |
printk("Using HPET for base-timer\n"); |
7297 |
diff -Naur linux-2.6.25/arch/x86/kernel/traps_32-xen.c linux-2.6.25-xen/arch/x86/kernel/traps_32-xen.c |
--- a/arch/x86/kernel/traps_32-xen.c |
7298 |
--- linux-2.6.25/arch/x86/kernel/traps_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/kernel/traps_32-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/kernel/traps_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
7299 |
@@ -28,6 +28,7 @@ |
@@ -28,6 +28,7 @@ |
7300 |
#include <linux/kprobes.h> |
#include <linux/kprobes.h> |
7301 |
#include <linux/kexec.h> |
#include <linux/kexec.h> |
7498 |
} |
} |
7499 |
} |
} |
7500 |
+EXPORT_SYMBOL(dump_trace); |
+EXPORT_SYMBOL(dump_trace); |
7501 |
+ |
|
7502 |
|
-void show_trace(struct task_struct *task, struct pt_regs *regs, unsigned long * stack) |
7503 |
+static void |
+static void |
7504 |
+print_trace_warning_symbol(void *data, char *msg, unsigned long symbol) |
+print_trace_warning_symbol(void *data, char *msg, unsigned long symbol) |
7505 |
+{ |
+{ |
7512 |
+{ |
+{ |
7513 |
+ printk("%s%s\n", (char *)data, msg); |
+ printk("%s%s\n", (char *)data, msg); |
7514 |
+} |
+} |
7515 |
|
+ |
|
-void show_trace(struct task_struct *task, struct pt_regs *regs, unsigned long * stack) |
|
7516 |
+static int print_trace_stack(void *data, char *name) |
+static int print_trace_stack(void *data, char *name) |
7517 |
+{ |
+{ |
7518 |
+ return 0; |
+ return 0; |
7742 |
#ifdef CONFIG_KPROBES |
#ifdef CONFIG_KPROBES |
7743 |
fastcall void __kprobes do_int3(struct pt_regs *regs, long error_code) |
fastcall void __kprobes do_int3(struct pt_regs *regs, long error_code) |
7744 |
{ |
{ |
7745 |
diff -Naur linux-2.6.25/arch/x86/kernel/traps_64-xen.c linux-2.6.25-xen/arch/x86/kernel/traps_64-xen.c |
--- a/arch/x86/kernel/traps_64-xen.c |
7746 |
--- linux-2.6.25/arch/x86/kernel/traps_64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/kernel/traps_64-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/kernel/traps_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
7747 |
@@ -23,6 +23,7 @@ |
@@ -23,6 +23,7 @@ |
7748 |
#include <linux/delay.h> |
#include <linux/delay.h> |
7749 |
#include <linux/spinlock.h> |
#include <linux/spinlock.h> |
8197 |
-__setup("call_trace=", call_trace_setup); |
-__setup("call_trace=", call_trace_setup); |
8198 |
+early_param("call_trace", call_trace_setup); |
+early_param("call_trace", call_trace_setup); |
8199 |
#endif |
#endif |
8200 |
diff -Naur linux-2.6.25/arch/x86/kernel/vsyscall_64-xen.c linux-2.6.25-xen/arch/x86/kernel/vsyscall_64-xen.c |
--- a/arch/x86/kernel/vsyscall_64-xen.c |
8201 |
--- linux-2.6.25/arch/x86/kernel/vsyscall_64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/kernel/vsyscall_64-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/kernel/vsyscall_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
8202 |
@@ -26,6 +26,10 @@ |
@@ -26,6 +26,10 @@ |
8203 |
#include <linux/seqlock.h> |
#include <linux/seqlock.h> |
8204 |
#include <linux/jiffies.h> |
#include <linux/jiffies.h> |
8392 |
return 0; |
return 0; |
8393 |
} |
} |
8394 |
|
|
8395 |
diff -Naur linux-2.6.25/arch/x86/mach-xen/setup.c linux-2.6.25-xen/arch/x86/mach-xen/setup.c |
--- a/arch/x86/mach-xen/setup.c |
8396 |
--- linux-2.6.25/arch/x86/mach-xen/setup.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/mach-xen/setup.c |
|
+++ linux-2.6.25-xen/arch/x86/mach-xen/setup.c 2008-05-23 20:39:03.000000000 +0200 |
|
8397 |
@@ -103,8 +103,10 @@ |
@@ -103,8 +103,10 @@ |
8398 |
|
|
8399 |
setup_xen_features(); |
setup_xen_features(); |
8407 |
|
|
8408 |
if (HYPERVISOR_memory_op(XENMEM_machphys_mapping, &mapping) == 0) { |
if (HYPERVISOR_memory_op(XENMEM_machphys_mapping, &mapping) == 0) { |
8409 |
machine_to_phys_mapping = (unsigned long *)mapping.v_start; |
machine_to_phys_mapping = (unsigned long *)mapping.v_start; |
8410 |
diff -Naur linux-2.6.25/arch/x86/mm/fault_32-xen.c linux-2.6.25-xen/arch/x86/mm/fault_32-xen.c |
--- a/arch/x86/mm/fault_32-xen.c |
8411 |
--- linux-2.6.25/arch/x86/mm/fault_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/mm/fault_32-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/mm/fault_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
8412 |
@@ -27,21 +27,24 @@ |
@@ -27,21 +27,24 @@ |
8413 |
#include <asm/uaccess.h> |
#include <asm/uaccess.h> |
8414 |
#include <asm/desc.h> |
#include <asm/desc.h> |
8495 |
yield(); |
yield(); |
8496 |
down_read(&mm->mmap_sem); |
down_read(&mm->mmap_sem); |
8497 |
goto survive; |
goto survive; |
8498 |
diff -Naur linux-2.6.25/arch/x86/mm/fault_64-xen.c linux-2.6.25-xen/arch/x86/mm/fault_64-xen.c |
--- a/arch/x86/mm/fault_64-xen.c |
8499 |
--- linux-2.6.25/arch/x86/mm/fault_64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/mm/fault_64-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/mm/fault_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
8500 |
@@ -40,8 +40,7 @@ |
@@ -40,8 +40,7 @@ |
8501 |
#define PF_RSVD (1<<3) |
#define PF_RSVD (1<<3) |
8502 |
#define PF_INSTR (1<<4) |
#define PF_INSTR (1<<4) |
8634 |
} |
} |
8635 |
spin_unlock(&pgd_lock); |
spin_unlock(&pgd_lock); |
8636 |
set_bit(pgd_index(address), insync); |
set_bit(pgd_index(address), insync); |
8637 |
diff -Naur linux-2.6.25/arch/x86/mm/highmem_32-xen.c linux-2.6.25-xen/arch/x86/mm/highmem_32-xen.c |
--- a/arch/x86/mm/highmem_32-xen.c |
8638 |
--- linux-2.6.25/arch/x86/mm/highmem_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/mm/highmem_32-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/mm/highmem_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
8639 |
@@ -38,11 +38,9 @@ |
@@ -38,11 +38,9 @@ |
8640 |
|
|
8641 |
idx = type + KM_TYPE_NR*smp_processor_id(); |
idx = type + KM_TYPE_NR*smp_processor_id(); |
8702 |
|
|
8703 |
return (void*) vaddr; |
return (void*) vaddr; |
8704 |
} |
} |
8705 |
diff -Naur linux-2.6.25/arch/x86/mm/hypervisor.c linux-2.6.25-xen/arch/x86/mm/hypervisor.c |
--- a/arch/x86/mm/hypervisor.c |
8706 |
--- linux-2.6.25/arch/x86/mm/hypervisor.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/mm/hypervisor.c |
|
+++ linux-2.6.25-xen/arch/x86/mm/hypervisor.c 2008-05-23 20:39:03.000000000 +0200 |
|
8707 |
@@ -569,7 +569,8 @@ |
@@ -569,7 +569,8 @@ |
8708 |
#define MAX_BATCHED_FULL_PTES 32 |
#define MAX_BATCHED_FULL_PTES 32 |
8709 |
|
|
8730 |
if (++i == MAX_BATCHED_FULL_PTES) { |
if (++i == MAX_BATCHED_FULL_PTES) { |
8731 |
if ((rc = HYPERVISOR_mmu_update( |
if ((rc = HYPERVISOR_mmu_update( |
8732 |
&u[0], i, NULL, DOMID_SELF)) != 0) |
&u[0], i, NULL, DOMID_SELF)) != 0) |
8733 |
diff -Naur linux-2.6.25/arch/x86/mm/init_32-xen.c linux-2.6.25-xen/arch/x86/mm/init_32-xen.c |
--- a/arch/x86/mm/init_32-xen.c |
8734 |
--- linux-2.6.25/arch/x86/mm/init_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/mm/init_32-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/mm/init_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
8735 |
@@ -464,16 +464,22 @@ |
@@ -464,16 +464,22 @@ |
8736 |
* on Enable |
* on Enable |
8737 |
* off Disable |
* off Disable |
8874 |
unsigned long start_pfn = start >> PAGE_SHIFT; |
unsigned long start_pfn = start >> PAGE_SHIFT; |
8875 |
unsigned long nr_pages = size >> PAGE_SHIFT; |
unsigned long nr_pages = size >> PAGE_SHIFT; |
8876 |
|
|
8877 |
diff -Naur linux-2.6.25/arch/x86/mm/init_64-xen.c linux-2.6.25-xen/arch/x86/mm/init_64-xen.c |
--- a/arch/x86/mm/init_64-xen.c |
8878 |
--- linux-2.6.25/arch/x86/mm/init_64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/mm/init_64-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/mm/init_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
8879 |
@@ -61,8 +61,6 @@ |
@@ -61,8 +61,6 @@ |
8880 |
|
|
8881 |
extern unsigned long *contiguous_bitmap; |
extern unsigned long *contiguous_bitmap; |
9187 |
} |
} |
9188 |
|
|
9189 |
int kern_addr_valid(unsigned long addr) |
int kern_addr_valid(unsigned long addr) |
9190 |
diff -Naur linux-2.6.25/arch/x86/mm/ioremap_32-xen.c linux-2.6.25-xen/arch/x86/mm/ioremap_32-xen.c |
--- a/arch/x86/mm/ioremap_32-xen.c |
9191 |
--- linux-2.6.25/arch/x86/mm/ioremap_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/mm/ioremap_32-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/mm/ioremap_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
9192 |
@@ -12,7 +12,7 @@ |
@@ -12,7 +12,7 @@ |
9193 |
#include <linux/init.h> |
#include <linux/init.h> |
9194 |
#include <linux/slab.h> |
#include <linux/slab.h> |
9236 |
vunmap((void __force *) addr); |
vunmap((void __force *) addr); |
9237 |
return NULL; |
return NULL; |
9238 |
} |
} |
9239 |
diff -Naur linux-2.6.25/arch/x86/mm/pageattr_64-xen.c linux-2.6.25-xen/arch/x86/mm/pageattr_64-xen.c |
--- a/arch/x86/mm/pageattr_64-xen.c |
9240 |
--- linux-2.6.25/arch/x86/mm/pageattr_64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/mm/pageattr_64-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/mm/pageattr_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
9241 |
@@ -371,8 +371,8 @@ |
@@ -371,8 +371,8 @@ |
9242 |
BUG_ON(pud_none(*pud)); |
BUG_ON(pud_none(*pud)); |
9243 |
pmd = pmd_offset(pud, address); |
pmd = pmd_offset(pud, address); |
9302 |
} |
} |
9303 |
} |
} |
9304 |
up_write(&init_mm.mmap_sem); |
up_write(&init_mm.mmap_sem); |
9305 |
diff -Naur linux-2.6.25/arch/x86/mm/pgtable_32-xen.c linux-2.6.25-xen/arch/x86/mm/pgtable_32-xen.c |
--- a/arch/x86/mm/pgtable_32-xen.c |
9306 |
--- linux-2.6.25/arch/x86/mm/pgtable_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/mm/pgtable_32-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/mm/pgtable_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
9307 |
@@ -68,7 +68,9 @@ |
@@ -68,7 +68,9 @@ |
9308 |
printk(KERN_INFO "%lu pages writeback\n", |
printk(KERN_INFO "%lu pages writeback\n", |
9309 |
global_page_state(NR_WRITEBACK)); |
global_page_state(NR_WRITEBACK)); |
9359 |
} |
} |
9360 |
|
|
9361 |
pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address) |
pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address) |
9362 |
diff -Naur linux-2.6.25/arch/x86/pci/irq-xen.c linux-2.6.25-xen/arch/x86/pci/irq-xen.c |
--- a/arch/x86/pci/irq-xen.c |
9363 |
--- linux-2.6.25/arch/x86/pci/irq-xen.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/arch/x86/pci/irq-xen.c |
|
+++ linux-2.6.25-xen/arch/x86/pci/irq-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
9364 |
@@ -991,10 +991,6 @@ |
@@ -991,10 +991,6 @@ |
9365 |
pci_name(bridge), 'A' + pin, irq); |
pci_name(bridge), 'A' + pin, irq); |
9366 |
} |
} |
9417 |
- |
- |
9418 |
- return count; |
- return count; |
9419 |
-} |
-} |
9420 |
diff -Naur linux-2.6.25/drivers/char/tpm/tpm_xen.c linux-2.6.25-xen/drivers/char/tpm/tpm_xen.c |
--- a/drivers/char/tpm/tpm_xen.c |
9421 |
--- linux-2.6.25/drivers/char/tpm/tpm_xen.c 2008-05-23 20:51:15.000000000 +0200 |
+++ b/drivers/char/tpm/tpm_xen.c |
|
+++ linux-2.6.25-xen/drivers/char/tpm/tpm_xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
9422 |
@@ -85,8 +85,7 @@ |
@@ -85,8 +85,7 @@ |
9423 |
|
|
9424 |
/* local function prototypes */ |
/* local function prototypes */ |
9438 |
{ |
{ |
9439 |
struct tpm_private *tp = tpm_priv; |
struct tpm_private *tp = tpm_priv; |
9440 |
unsigned long flags; |
unsigned long flags; |
9441 |
diff -Naur linux-2.6.25/drivers/pci/Kconfig linux-2.6.25-xen/drivers/pci/Kconfig |
--- a/drivers/pci/Kconfig |
9442 |
--- linux-2.6.25/drivers/pci/Kconfig 2008-04-17 04:49:44.000000000 +0200 |
+++ b/drivers/pci/Kconfig |
|
+++ linux-2.6.25-xen/drivers/pci/Kconfig 2008-05-23 20:39:03.000000000 +0200 |
|
9443 |
@@ -45,7 +45,7 @@ |
@@ -45,7 +45,7 @@ |
9444 |
config HT_IRQ |
config HT_IRQ |
9445 |
bool "Interrupts on hypertransport devices" |
bool "Interrupts on hypertransport devices" |
9449 |
help |
help |
9450 |
This allows native hypertransport devices to use interrupts. |
This allows native hypertransport devices to use interrupts. |
9451 |
|
|
9452 |
diff -Naur linux-2.6.25/drivers/xen/balloon/balloon.c linux-2.6.25-xen/drivers/xen/balloon/balloon.c |
--- a/drivers/xen/Kconfig |
9453 |
--- linux-2.6.25/drivers/xen/balloon/balloon.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/Kconfig |
9454 |
+++ linux-2.6.25-xen/drivers/xen/balloon/balloon.c 2008-05-23 20:39:03.000000000 +0200 |
@@ -278,6 +278,9 @@ |
9455 |
|
config HAVE_IRQ_IGNORE_UNHANDLED |
9456 |
|
def_bool y |
9457 |
|
|
9458 |
|
+config GENERIC_HARDIRQS_NO__DO_IRQ |
9459 |
|
+ def_bool y |
9460 |
|
+ |
9461 |
|
config NO_IDLE_HZ |
9462 |
|
def_bool y |
9463 |
|
|
9464 |
|
--- a/drivers/xen/balloon/balloon.c |
9465 |
|
+++ b/drivers/xen/balloon/balloon.c |
9466 |
@@ -84,7 +84,7 @@ |
@@ -84,7 +84,7 @@ |
9467 |
/* VM /proc information for memory */ |
/* VM /proc information for memory */ |
9468 |
extern unsigned long totalram_pages; |
extern unsigned long totalram_pages; |
9472 |
extern unsigned long totalhigh_pages; |
extern unsigned long totalhigh_pages; |
9473 |
#define inc_totalhigh_pages() (totalhigh_pages++) |
#define inc_totalhigh_pages() (totalhigh_pages++) |
9474 |
#define dec_totalhigh_pages() (totalhigh_pages--) |
#define dec_totalhigh_pages() (totalhigh_pages--) |
9475 |
diff -Naur linux-2.6.25/drivers/xen/blkback/blkback.c linux-2.6.25-xen/drivers/xen/blkback/blkback.c |
--- a/drivers/xen/blkback/blkback.c |
9476 |
--- linux-2.6.25/drivers/xen/blkback/blkback.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/blkback/blkback.c |
|
+++ linux-2.6.25-xen/drivers/xen/blkback/blkback.c 2008-05-23 20:39:03.000000000 +0200 |
|
9477 |
@@ -288,7 +288,7 @@ |
@@ -288,7 +288,7 @@ |
9478 |
wake_up(&blkif->wq); |
wake_up(&blkif->wq); |
9479 |
} |
} |
9483 |
{ |
{ |
9484 |
blkif_notify_work(dev_id); |
blkif_notify_work(dev_id); |
9485 |
return IRQ_HANDLED; |
return IRQ_HANDLED; |
9486 |
diff -Naur linux-2.6.25/drivers/xen/blkback/common.h linux-2.6.25-xen/drivers/xen/blkback/common.h |
--- a/drivers/xen/blkback/common.h |
9487 |
--- linux-2.6.25/drivers/xen/blkback/common.h 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/blkback/common.h |
|
+++ linux-2.6.25-xen/drivers/xen/blkback/common.h 2008-05-23 20:39:03.000000000 +0200 |
|
9488 |
@@ -130,7 +130,7 @@ |
@@ -130,7 +130,7 @@ |
9489 |
|
|
9490 |
void blkif_xenbus_init(void); |
void blkif_xenbus_init(void); |
9494 |
int blkif_schedule(void *arg); |
int blkif_schedule(void *arg); |
9495 |
|
|
9496 |
int blkback_barrier(struct xenbus_transaction xbt, |
int blkback_barrier(struct xenbus_transaction xbt, |
9497 |
diff -Naur linux-2.6.25/drivers/xen/blkfront/blkfront.c linux-2.6.25-xen/drivers/xen/blkfront/blkfront.c |
--- a/drivers/xen/blkfront/blkfront.c |
9498 |
--- linux-2.6.25/drivers/xen/blkfront/blkfront.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/blkfront/blkfront.c |
|
+++ linux-2.6.25-xen/drivers/xen/blkfront/blkfront.c 2008-05-23 20:39:03.000000000 +0200 |
|
9499 |
@@ -69,7 +69,7 @@ |
@@ -69,7 +69,7 @@ |
9500 |
|
|
9501 |
static void kick_pending_request_queues(struct blkfront_info *); |
static void kick_pending_request_queues(struct blkfront_info *); |
9514 |
{ |
{ |
9515 |
struct request *req; |
struct request *req; |
9516 |
blkif_response_t *bret; |
blkif_response_t *bret; |
9517 |
diff -Naur linux-2.6.25/drivers/xen/blktap/blktap.c linux-2.6.25-xen/drivers/xen/blktap/blktap.c |
--- a/drivers/xen/blktap/blktap.c |
9518 |
--- linux-2.6.25/drivers/xen/blktap/blktap.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/blktap/blktap.c |
|
+++ linux-2.6.25-xen/drivers/xen/blktap/blktap.c 2008-05-23 20:39:03.000000000 +0200 |
|
9519 |
@@ -1175,7 +1175,7 @@ |
@@ -1175,7 +1175,7 @@ |
9520 |
wake_up(&blkif->wq); |
wake_up(&blkif->wq); |
9521 |
} |
} |
9525 |
{ |
{ |
9526 |
blkif_notify_work(dev_id); |
blkif_notify_work(dev_id); |
9527 |
return IRQ_HANDLED; |
return IRQ_HANDLED; |
9528 |
diff -Naur linux-2.6.25/drivers/xen/blktap/common.h linux-2.6.25-xen/drivers/xen/blktap/common.h |
--- a/drivers/xen/blktap/common.h |
9529 |
--- linux-2.6.25/drivers/xen/blktap/common.h 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/blktap/common.h |
|
+++ linux-2.6.25-xen/drivers/xen/blktap/common.h 2008-05-23 20:39:03.000000000 +0200 |
|
9530 |
@@ -112,7 +112,7 @@ |
@@ -112,7 +112,7 @@ |
9531 |
|
|
9532 |
void tap_blkif_xenbus_init(void); |
void tap_blkif_xenbus_init(void); |
9536 |
int tap_blkif_schedule(void *arg); |
int tap_blkif_schedule(void *arg); |
9537 |
|
|
9538 |
int dom_to_devid(domid_t domid, int xenbus_id, blkif_t *blkif); |
int dom_to_devid(domid_t domid, int xenbus_id, blkif_t *blkif); |
9539 |
diff -Naur linux-2.6.25/drivers/xen/console/console.c linux-2.6.25-xen/drivers/xen/console/console.c |
--- a/drivers/xen/console/console.c |
9540 |
--- linux-2.6.25/drivers/xen/console/console.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/console/console.c |
|
+++ linux-2.6.25-xen/drivers/xen/console/console.c 2008-05-23 20:39:03.000000000 +0200 |
|
9541 |
@@ -345,7 +345,7 @@ |
@@ -345,7 +345,7 @@ |
9542 |
static int xencons_priv_irq; |
static int xencons_priv_irq; |
9543 |
static char x_char; |
static char x_char; |
9574 |
|
|
9575 |
xencons_tx(); |
xencons_tx(); |
9576 |
|
|
9577 |
diff -Naur linux-2.6.25/drivers/xen/console/xencons_ring.c linux-2.6.25-xen/drivers/xen/console/xencons_ring.c |
--- a/drivers/xen/console/xencons_ring.c |
9578 |
--- linux-2.6.25/drivers/xen/console/xencons_ring.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/console/xencons_ring.c |
|
+++ linux-2.6.25-xen/drivers/xen/console/xencons_ring.c 2008-05-23 20:39:03.000000000 +0200 |
|
9579 |
@@ -83,7 +83,7 @@ |
@@ -83,7 +83,7 @@ |
9580 |
return sent; |
return sent; |
9581 |
} |
} |
9594 |
cons++; |
cons++; |
9595 |
} |
} |
9596 |
|
|
9597 |
diff -Naur linux-2.6.25/drivers/xen/core/evtchn.c linux-2.6.25-xen/drivers/xen/core/evtchn.c |
--- a/drivers/xen/core/evtchn.c |
9598 |
--- linux-2.6.25/drivers/xen/core/evtchn.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/core/evtchn.c |
|
+++ linux-2.6.25-xen/drivers/xen/core/evtchn.c 2008-05-23 20:39:03.000000000 +0200 |
|
9599 |
@@ -507,7 +507,7 @@ |
@@ -507,7 +507,7 @@ |
9600 |
|
|
9601 |
int bind_caller_port_to_irqhandler( |
int bind_caller_port_to_irqhandler( |
9737 |
+ handle_level_irq, "level"); |
+ handle_level_irq, "level"); |
9738 |
} |
} |
9739 |
} |
} |
9740 |
diff -Naur linux-2.6.25/drivers/xen/core/reboot.c linux-2.6.25-xen/drivers/xen/core/reboot.c |
--- a/drivers/xen/core/reboot.c |
9741 |
--- linux-2.6.25/drivers/xen/core/reboot.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/core/reboot.c |
|
+++ linux-2.6.25-xen/drivers/xen/core/reboot.c 2008-05-23 20:39:03.000000000 +0200 |
|
9742 |
@@ -13,6 +13,7 @@ |
@@ -13,6 +13,7 @@ |
9743 |
|
|
9744 |
#ifdef HAVE_XEN_PLATFORM_COMPAT_H |
#ifdef HAVE_XEN_PLATFORM_COMPAT_H |
9756 |
#endif |
#endif |
9757 |
} |
} |
9758 |
|
|
9759 |
diff -Naur linux-2.6.25/drivers/xen/core/smpboot.c linux-2.6.25-xen/drivers/xen/core/smpboot.c |
--- a/drivers/xen/core/smpboot.c |
9760 |
--- linux-2.6.25/drivers/xen/core/smpboot.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/core/smpboot.c |
|
+++ linux-2.6.25-xen/drivers/xen/core/smpboot.c 2008-05-23 20:39:03.000000000 +0200 |
|
9761 |
@@ -25,8 +25,8 @@ |
@@ -25,8 +25,8 @@ |
9762 |
#include <xen/cpu_hotplug.h> |
#include <xen/cpu_hotplug.h> |
9763 |
#include <xen/xenbus.h> |
#include <xen/xenbus.h> |
9778 |
#endif |
#endif |
9779 |
|
|
9780 |
void __init prefill_possible_map(void) |
void __init prefill_possible_map(void) |
9781 |
diff -Naur linux-2.6.25/drivers/xen/fbfront/xenfb.c linux-2.6.25-xen/drivers/xen/fbfront/xenfb.c |
--- a/drivers/xen/fbfront/xenfb.c |
9782 |
--- linux-2.6.25/drivers/xen/fbfront/xenfb.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/fbfront/xenfb.c |
|
+++ linux-2.6.25-xen/drivers/xen/fbfront/xenfb.c 2008-05-23 20:39:03.000000000 +0200 |
|
9783 |
@@ -523,8 +523,7 @@ |
@@ -523,8 +523,7 @@ |
9784 |
.fb_set_par = xenfb_set_par, |
.fb_set_par = xenfb_set_par, |
9785 |
}; |
}; |
9790 |
{ |
{ |
9791 |
/* |
/* |
9792 |
* No in events recognized, simply ignore them all. |
* No in events recognized, simply ignore them all. |
9793 |
diff -Naur linux-2.6.25/drivers/xen/fbfront/xenkbd.c linux-2.6.25-xen/drivers/xen/fbfront/xenkbd.c |
--- a/drivers/xen/fbfront/xenkbd.c |
9794 |
--- linux-2.6.25/drivers/xen/fbfront/xenkbd.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/fbfront/xenkbd.c |
|
+++ linux-2.6.25-xen/drivers/xen/fbfront/xenkbd.c 2008-05-23 20:39:03.000000000 +0200 |
|
9795 |
@@ -46,7 +46,7 @@ |
@@ -46,7 +46,7 @@ |
9796 |
* to do that. |
* to do that. |
9797 |
*/ |
*/ |
9801 |
{ |
{ |
9802 |
struct xenkbd_info *info = dev_id; |
struct xenkbd_info *info = dev_id; |
9803 |
struct xenkbd_page *page = info->page; |
struct xenkbd_page *page = info->page; |
9804 |
diff -Naur linux-2.6.25/drivers/xen/gntdev/gntdev.c linux-2.6.25-xen/drivers/xen/gntdev/gntdev.c |
--- a/drivers/xen/gntdev/gntdev.c |
9805 |
--- linux-2.6.25/drivers/xen/gntdev/gntdev.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/gntdev/gntdev.c |
|
+++ linux-2.6.25-xen/drivers/xen/gntdev/gntdev.c 2008-05-23 20:39:03.000000000 +0200 |
|
9806 |
@@ -755,9 +755,6 @@ |
@@ -755,9 +755,6 @@ |
9807 |
BUG(); |
BUG(); |
9808 |
} |
} |
9842 |
} |
} |
9843 |
|
|
9844 |
return copy; |
return copy; |
9845 |
diff -Naur linux-2.6.25/drivers/xen/Kconfig linux-2.6.25-xen/drivers/xen/Kconfig |
--- a/drivers/xen/netback/accel.c |
9846 |
--- linux-2.6.25/drivers/xen/Kconfig 2008-05-23 20:51:14.000000000 +0200 |
+++ b/drivers/xen/netback/accel.c |
|
+++ linux-2.6.25-xen/drivers/xen/Kconfig 2008-05-23 20:39:03.000000000 +0200 |
|
|
@@ -278,6 +278,9 @@ |
|
|
config HAVE_IRQ_IGNORE_UNHANDLED |
|
|
def_bool y |
|
|
|
|
|
+config GENERIC_HARDIRQS_NO__DO_IRQ |
|
|
+ def_bool y |
|
|
+ |
|
|
config NO_IDLE_HZ |
|
|
def_bool y |
|
|
|
|
|
diff -Naur linux-2.6.25/drivers/xen/netback/accel.c linux-2.6.25-xen/drivers/xen/netback/accel.c |
|
|
--- linux-2.6.25/drivers/xen/netback/accel.c 2008-05-23 20:51:11.000000000 +0200 |
|
|
+++ linux-2.6.25-xen/drivers/xen/netback/accel.c 2008-05-23 20:39:03.000000000 +0200 |
|
9847 |
@@ -65,7 +65,7 @@ |
@@ -65,7 +65,7 @@ |
9848 |
|
|
9849 |
if (IS_ERR(eth_name)) { |
if (IS_ERR(eth_name)) { |
9853 |
__FUNCTION__, PTR_ERR(eth_name)); |
__FUNCTION__, PTR_ERR(eth_name)); |
9854 |
return 0; |
return 0; |
9855 |
} else { |
} else { |
9856 |
diff -Naur linux-2.6.25/drivers/xen/netback/common.h linux-2.6.25-xen/drivers/xen/netback/common.h |
--- a/drivers/xen/netback/common.h |
9857 |
--- linux-2.6.25/drivers/xen/netback/common.h 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/netback/common.h |
|
+++ linux-2.6.25-xen/drivers/xen/netback/common.h 2008-05-23 20:39:03.000000000 +0200 |
|
9858 |
@@ -200,7 +200,7 @@ |
@@ -200,7 +200,7 @@ |
9859 |
|
|
9860 |
int netif_be_start_xmit(struct sk_buff *skb, struct net_device *dev); |
int netif_be_start_xmit(struct sk_buff *skb, struct net_device *dev); |
9864 |
|
|
9865 |
static inline int netbk_can_queue(struct net_device *dev) |
static inline int netbk_can_queue(struct net_device *dev) |
9866 |
{ |
{ |
9867 |
diff -Naur linux-2.6.25/drivers/xen/netback/loopback.c linux-2.6.25-xen/drivers/xen/netback/loopback.c |
--- a/drivers/xen/netback/loopback.c |
9868 |
--- linux-2.6.25/drivers/xen/netback/loopback.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/netback/loopback.c |
|
+++ linux-2.6.25-xen/drivers/xen/netback/loopback.c 2008-05-23 20:39:03.000000000 +0200 |
|
9869 |
@@ -151,7 +151,7 @@ |
@@ -151,7 +151,7 @@ |
9870 |
np->stats.rx_bytes += skb->len; |
np->stats.rx_bytes += skb->len; |
9871 |
np->stats.rx_packets++; |
np->stats.rx_packets++; |
9875 |
/* Defer checksum calculation. */ |
/* Defer checksum calculation. */ |
9876 |
skb->proto_csum_blank = 1; |
skb->proto_csum_blank = 1; |
9877 |
/* Must be a local packet: assert its integrity. */ |
/* Must be a local packet: assert its integrity. */ |
9878 |
diff -Naur linux-2.6.25/drivers/xen/netback/netback.c linux-2.6.25-xen/drivers/xen/netback/netback.c |
--- a/drivers/xen/netback/netback.c |
9879 |
--- linux-2.6.25/drivers/xen/netback/netback.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/netback/netback.c |
|
+++ linux-2.6.25-xen/drivers/xen/netback/netback.c 2008-05-23 20:39:03.000000000 +0200 |
|
9880 |
@@ -677,7 +677,7 @@ |
@@ -677,7 +677,7 @@ |
9881 |
id = meta[npo.meta_cons].id; |
id = meta[npo.meta_cons].id; |
9882 |
flags = nr_frags ? NETRXF_more_data : 0; |
flags = nr_frags ? NETRXF_more_data : 0; |
9904 |
{ |
{ |
9905 |
struct list_head *ent; |
struct list_head *ent; |
9906 |
netif_t *netif; |
netif_t *netif; |
9907 |
diff -Naur linux-2.6.25/drivers/xen/netfront/netfront.c linux-2.6.25-xen/drivers/xen/netfront/netfront.c |
--- a/drivers/xen/netfront/netfront.c |
9908 |
--- linux-2.6.25/drivers/xen/netfront/netfront.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/netfront/netfront.c |
|
+++ linux-2.6.25-xen/drivers/xen/netfront/netfront.c 2008-05-23 20:39:03.000000000 +0200 |
|
9909 |
@@ -136,7 +136,7 @@ |
@@ -136,7 +136,7 @@ |
9910 |
{ |
{ |
9911 |
return skb_is_gso(skb) && |
return skb_is_gso(skb) && |
9942 |
{ |
{ |
9943 |
struct net_device *dev = dev_id; |
struct net_device *dev = dev_id; |
9944 |
struct netfront_info *np = netdev_priv(dev); |
struct netfront_info *np = netdev_priv(dev); |
9945 |
diff -Naur linux-2.6.25/drivers/xen/pciback/pciback.h linux-2.6.25-xen/drivers/xen/pciback/pciback.h |
--- a/drivers/xen/pciback/pciback.h |
9946 |
--- linux-2.6.25/drivers/xen/pciback/pciback.h 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/pciback/pciback.h |
|
+++ linux-2.6.25-xen/drivers/xen/pciback/pciback.h 2008-05-23 20:39:03.000000000 +0200 |
|
9947 |
@@ -87,7 +87,7 @@ |
@@ -87,7 +87,7 @@ |
9948 |
void pciback_release_devices(struct pciback_device *pdev); |
void pciback_release_devices(struct pciback_device *pdev); |
9949 |
|
|
9953 |
void pciback_do_op(void *data); |
void pciback_do_op(void *data); |
9954 |
|
|
9955 |
int pciback_xenbus_register(void); |
int pciback_xenbus_register(void); |
9956 |
diff -Naur linux-2.6.25/drivers/xen/pciback/pciback_ops.c linux-2.6.25-xen/drivers/xen/pciback/pciback_ops.c |
--- a/drivers/xen/pciback/pciback_ops.c |
9957 |
--- linux-2.6.25/drivers/xen/pciback/pciback_ops.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/pciback/pciback_ops.c |
|
+++ linux-2.6.25-xen/drivers/xen/pciback/pciback_ops.c 2008-05-23 20:39:03.000000000 +0200 |
|
9958 |
@@ -85,7 +85,7 @@ |
@@ -85,7 +85,7 @@ |
9959 |
test_and_schedule_op(pdev); |
test_and_schedule_op(pdev); |
9960 |
} |
} |
9964 |
{ |
{ |
9965 |
struct pciback_device *pdev = dev_id; |
struct pciback_device *pdev = dev_id; |
9966 |
|
|
9967 |
diff -Naur linux-2.6.25/drivers/xen/pcifront/pci_op.c linux-2.6.25-xen/drivers/xen/pcifront/pci_op.c |
--- a/drivers/xen/pcifront/pci_op.c |
9968 |
--- linux-2.6.25/drivers/xen/pcifront/pci_op.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/pcifront/pci_op.c |
|
+++ linux-2.6.25-xen/drivers/xen/pcifront/pci_op.c 2008-05-23 20:39:03.000000000 +0200 |
|
9969 |
@@ -392,10 +392,16 @@ |
@@ -392,10 +392,16 @@ |
9970 |
|
|
9971 |
d = pci_scan_single_device(b, devfn); |
d = pci_scan_single_device(b, devfn); |
9984 |
} |
} |
9985 |
} |
} |
9986 |
|
|
9987 |
diff -Naur linux-2.6.25/drivers/xen/privcmd/compat_privcmd.c linux-2.6.25-xen/drivers/xen/privcmd/compat_privcmd.c |
--- a/drivers/xen/privcmd/compat_privcmd.c |
9988 |
--- linux-2.6.25/drivers/xen/privcmd/compat_privcmd.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/privcmd/compat_privcmd.c |
|
+++ linux-2.6.25-xen/drivers/xen/privcmd/compat_privcmd.c 2008-05-23 20:39:03.000000000 +0200 |
|
9989 |
@@ -18,7 +18,6 @@ |
@@ -18,7 +18,6 @@ |
9990 |
* Authors: Jimi Xenidis <jimix@watson.ibm.com> |
* Authors: Jimi Xenidis <jimix@watson.ibm.com> |
9991 |
*/ |
*/ |
9994 |
#include <linux/compat.h> |
#include <linux/compat.h> |
9995 |
#include <linux/ioctl.h> |
#include <linux/ioctl.h> |
9996 |
#include <linux/syscalls.h> |
#include <linux/syscalls.h> |
9997 |
diff -Naur linux-2.6.25/drivers/xen/privcmd/privcmd.c linux-2.6.25-xen/drivers/xen/privcmd/privcmd.c |
--- a/drivers/xen/privcmd/privcmd.c |
9998 |
--- linux-2.6.25/drivers/xen/privcmd/privcmd.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/privcmd/privcmd.c |
|
+++ linux-2.6.25-xen/drivers/xen/privcmd/privcmd.c 2008-05-23 20:39:03.000000000 +0200 |
|
9999 |
@@ -236,7 +236,7 @@ |
@@ -236,7 +236,7 @@ |
10000 |
#endif |
#endif |
10001 |
|
|
10005 |
vma->vm_ops = &privcmd_vm_ops; |
vma->vm_ops = &privcmd_vm_ops; |
10006 |
vma->vm_private_data = NULL; |
vma->vm_private_data = NULL; |
10007 |
|
|
10008 |
diff -Naur linux-2.6.25/drivers/xen/sfc_netback/accel_xenbus.c linux-2.6.25-xen/drivers/xen/sfc_netback/accel_xenbus.c |
--- a/drivers/xen/sfc_netback/accel_xenbus.c |
10009 |
--- linux-2.6.25/drivers/xen/sfc_netback/accel_xenbus.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/sfc_netback/accel_xenbus.c |
|
+++ linux-2.6.25-xen/drivers/xen/sfc_netback/accel_xenbus.c 2008-05-23 20:39:03.000000000 +0200 |
|
10010 |
@@ -68,8 +68,7 @@ |
@@ -68,8 +68,7 @@ |
10011 |
|
|
10012 |
|
|
10027 |
{ |
{ |
10028 |
VPRINTK("netirq %d from device %s\n", irq, |
VPRINTK("netirq %d from device %s\n", irq, |
10029 |
((struct xenbus_device *)context)->nodename); |
((struct xenbus_device *)context)->nodename); |
10030 |
diff -Naur linux-2.6.25/drivers/xen/sfc_netfront/accel.h linux-2.6.25-xen/drivers/xen/sfc_netfront/accel.h |
--- a/drivers/xen/sfc_netfront/accel.h |
10031 |
--- linux-2.6.25/drivers/xen/sfc_netfront/accel.h 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/sfc_netfront/accel.h |
|
+++ linux-2.6.25-xen/drivers/xen/sfc_netfront/accel.h 2008-05-23 20:39:03.000000000 +0200 |
|
10032 |
@@ -449,10 +449,8 @@ |
@@ -449,10 +449,8 @@ |
10033 |
u32 ip, u16 port, u8 protocol); |
u32 ip, u16 port, u8 protocol); |
10034 |
|
|
10042 |
|
|
10043 |
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20) |
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20) |
10044 |
extern void netfront_accel_msg_from_bend(struct work_struct *context); |
extern void netfront_accel_msg_from_bend(struct work_struct *context); |
10045 |
diff -Naur linux-2.6.25/drivers/xen/sfc_netfront/accel_msg.c linux-2.6.25-xen/drivers/xen/sfc_netfront/accel_msg.c |
--- a/drivers/xen/sfc_netfront/accel_msg.c |
10046 |
--- linux-2.6.25/drivers/xen/sfc_netfront/accel_msg.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/sfc_netfront/accel_msg.c |
|
+++ linux-2.6.25-xen/drivers/xen/sfc_netfront/accel_msg.c 2008-05-23 20:39:03.000000000 +0200 |
|
10047 |
@@ -490,8 +490,7 @@ |
@@ -490,8 +490,7 @@ |
10048 |
} |
} |
10049 |
|
|
10064 |
{ |
{ |
10065 |
netfront_accel_vnic *vnic = (netfront_accel_vnic *)context; |
netfront_accel_vnic *vnic = (netfront_accel_vnic *)context; |
10066 |
struct net_device *net_dev = vnic->net_dev; |
struct net_device *net_dev = vnic->net_dev; |
10067 |
diff -Naur linux-2.6.25/drivers/xen/sfc_netfront/accel_tso.c linux-2.6.25-xen/drivers/xen/sfc_netfront/accel_tso.c |
--- a/drivers/xen/sfc_netfront/accel_tso.c |
10068 |
--- linux-2.6.25/drivers/xen/sfc_netfront/accel_tso.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/sfc_netfront/accel_tso.c |
|
+++ linux-2.6.25-xen/drivers/xen/sfc_netfront/accel_tso.c 2008-05-23 20:39:03.000000000 +0200 |
|
10069 |
@@ -363,7 +363,7 @@ |
@@ -363,7 +363,7 @@ |
10070 |
|
|
10071 |
tso_check_safe(skb); |
tso_check_safe(skb); |
10075 |
EPRINTK("Trying to TSO send a packet without HW checksum\n"); |
EPRINTK("Trying to TSO send a packet without HW checksum\n"); |
10076 |
|
|
10077 |
tso_start(&state, skb); |
tso_start(&state, skb); |
10078 |
diff -Naur linux-2.6.25/drivers/xen/sfc_netfront/accel_vi.c linux-2.6.25-xen/drivers/xen/sfc_netfront/accel_vi.c |
--- a/drivers/xen/sfc_netfront/accel_vi.c |
10079 |
--- linux-2.6.25/drivers/xen/sfc_netfront/accel_vi.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/sfc_netfront/accel_vi.c |
|
+++ linux-2.6.25-xen/drivers/xen/sfc_netfront/accel_vi.c 2008-05-23 20:39:03.000000000 +0200 |
|
10080 |
@@ -461,7 +461,7 @@ |
@@ -461,7 +461,7 @@ |
10081 |
|
|
10082 |
frag_i = -1; |
frag_i = -1; |
10095 |
/* Set to zero to encourage falcon to work it out for us */ |
/* Set to zero to encourage falcon to work it out for us */ |
10096 |
*(u16*)(skb->h.raw + skb->csum) = 0; |
*(u16*)(skb->h.raw + skb->csum) = 0; |
10097 |
} |
} |
10098 |
diff -Naur linux-2.6.25/drivers/xen/tpmback/common.h linux-2.6.25-xen/drivers/xen/tpmback/common.h |
--- a/drivers/xen/tpmback/common.h |
10099 |
--- linux-2.6.25/drivers/xen/tpmback/common.h 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/tpmback/common.h |
|
+++ linux-2.6.25-xen/drivers/xen/tpmback/common.h 2008-05-23 20:39:03.000000000 +0200 |
|
10100 |
@@ -61,7 +61,7 @@ |
@@ -61,7 +61,7 @@ |
10101 |
void tpmif_xenbus_init(void); |
void tpmif_xenbus_init(void); |
10102 |
void tpmif_xenbus_exit(void); |
void tpmif_xenbus_exit(void); |
10106 |
|
|
10107 |
long int tpmback_get_instance(struct backend_info *bi); |
long int tpmback_get_instance(struct backend_info *bi); |
10108 |
|
|
10109 |
diff -Naur linux-2.6.25/drivers/xen/tpmback/tpmback.c linux-2.6.25-xen/drivers/xen/tpmback/tpmback.c |
--- a/drivers/xen/tpmback/tpmback.c |
10110 |
--- linux-2.6.25/drivers/xen/tpmback/tpmback.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/tpmback/tpmback.c |
|
+++ linux-2.6.25-xen/drivers/xen/tpmback/tpmback.c 2008-05-23 20:39:03.000000000 +0200 |
|
10111 |
@@ -502,7 +502,7 @@ |
@@ -502,7 +502,7 @@ |
10112 |
list_del(&pak->next); |
list_del(&pak->next); |
10113 |
write_unlock_irqrestore(&dataex.pak_lock, flags); |
write_unlock_irqrestore(&dataex.pak_lock, flags); |
10126 |
{ |
{ |
10127 |
tpmif_t *tpmif = (tpmif_t *) dev_id; |
tpmif_t *tpmif = (tpmif_t *) dev_id; |
10128 |
|
|
10129 |
diff -Naur linux-2.6.25/drivers/xen/xenbus/xenbus_comms.c linux-2.6.25-xen/drivers/xen/xenbus/xenbus_comms.c |
--- a/drivers/xen/xenbus/xenbus_comms.c |
10130 |
--- linux-2.6.25/drivers/xen/xenbus/xenbus_comms.c 2008-05-23 20:51:19.000000000 +0200 |
+++ b/drivers/xen/xenbus/xenbus_comms.c |
|
+++ linux-2.6.25-xen/drivers/xen/xenbus/xenbus_comms.c 2008-05-23 20:39:03.000000000 +0200 |
|
10131 |
@@ -55,7 +55,7 @@ |
@@ -55,7 +55,7 @@ |
10132 |
|
|
10133 |
static DECLARE_WAIT_QUEUE_HEAD(xb_waitq); |
static DECLARE_WAIT_QUEUE_HEAD(xb_waitq); |
10137 |
{ |
{ |
10138 |
if (unlikely(xenstored_ready == 0)) { |
if (unlikely(xenstored_ready == 0)) { |
10139 |
xenstored_ready = 1; |
xenstored_ready = 1; |
10140 |
diff -Naur linux-2.6.25/drivers/xen/xenoprof/xenoprofile.c linux-2.6.25-xen/drivers/xen/xenoprof/xenoprofile.c |
--- a/drivers/xen/xenoprof/xenoprofile.c |
10141 |
--- linux-2.6.25/drivers/xen/xenoprof/xenoprofile.c 2008-05-23 20:51:11.000000000 +0200 |
+++ b/drivers/xen/xenoprof/xenoprofile.c |
|
+++ linux-2.6.25-xen/drivers/xen/xenoprof/xenoprofile.c 2008-05-23 20:39:03.000000000 +0200 |
|
10142 |
@@ -195,7 +195,7 @@ |
@@ -195,7 +195,7 @@ |
10143 |
} |
} |
10144 |
|
|
10148 |
{ |
{ |
10149 |
struct xenoprof_buf * buf; |
struct xenoprof_buf * buf; |
10150 |
static unsigned long flag; |
static unsigned long flag; |
10151 |
diff -Naur linux-2.6.25/include/asm-generic/pgtable.h linux-2.6.25-xen/include/asm-generic/pgtable.h |
--- a/include/asm-generic/pgtable.h |
10152 |
--- linux-2.6.25/include/asm-generic/pgtable.h 2008-05-23 20:51:15.000000000 +0200 |
+++ b/include/asm-generic/pgtable.h |
|
+++ linux-2.6.25-xen/include/asm-generic/pgtable.h 2008-05-23 20:39:03.000000000 +0200 |
|
10153 |
@@ -100,7 +100,7 @@ |
@@ -100,7 +100,7 @@ |
10154 |
#endif |
#endif |
10155 |
|
|
10159 |
#endif |
#endif |
10160 |
|
|
10161 |
#ifndef __HAVE_ARCH_PTE_SAME |
#ifndef __HAVE_ARCH_PTE_SAME |
10162 |
diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/desc_32.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/desc_32.h |
--- a/include/asm-x86/mach-xen/asm/desc_32.h |
10163 |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/desc_32.h 2008-05-23 20:51:11.000000000 +0200 |
+++ b/include/asm-x86/mach-xen/asm/desc_32.h |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/desc_32.h 2008-05-23 20:39:03.000000000 +0200 |
|
10164 |
@@ -32,52 +32,110 @@ |
@@ -32,52 +32,110 @@ |
10165 |
return (struct desc_struct *)per_cpu(cpu_gdt_descr, cpu).address; |
return (struct desc_struct *)per_cpu(cpu_gdt_descr, cpu).address; |
10166 |
} |
} |
10321 |
static inline void clear_LDT(void) |
static inline void clear_LDT(void) |
10322 |
{ |
{ |
10323 |
int cpu = get_cpu(); |
int cpu = get_cpu(); |
10324 |
diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/dma-mapping_64.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/dma-mapping_64.h |
--- a/include/asm-x86/mach-xen/asm/dma-mapping_64.h |
10325 |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/dma-mapping_64.h 2008-05-23 20:51:11.000000000 +0200 |
+++ b/include/asm-x86/mach-xen/asm/dma-mapping_64.h |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/dma-mapping_64.h 2008-05-23 20:39:03.000000000 +0200 |
|
10326 |
@@ -55,13 +55,6 @@ |
@@ -55,13 +55,6 @@ |
10327 |
extern struct dma_mapping_ops* dma_ops; |
extern struct dma_mapping_ops* dma_ops; |
10328 |
extern int iommu_merge; |
extern int iommu_merge; |
10337 |
#if 0 |
#if 0 |
10338 |
static inline int dma_mapping_error(dma_addr_t dma_addr) |
static inline int dma_mapping_error(dma_addr_t dma_addr) |
10339 |
{ |
{ |
10340 |
diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/e820_64.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/e820_64.h |
--- a/include/asm-x86/mach-xen/asm/e820_64.h |
10341 |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/e820_64.h 2008-05-23 20:51:11.000000000 +0200 |
+++ b/include/asm-x86/mach-xen/asm/e820_64.h |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/e820_64.h 2008-05-23 20:39:03.000000000 +0200 |
|
10342 |
@@ -19,13 +19,9 @@ |
@@ -19,13 +19,9 @@ |
10343 |
|
|
10344 |
#define E820_RAM 1 |
#define E820_RAM 1 |
10376 |
|
|
10377 |
extern struct e820map e820; |
extern struct e820map e820; |
10378 |
|
|
10379 |
diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/fixmap_32.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/fixmap_32.h |
--- a/include/asm-x86/mach-xen/asm/fixmap_32.h |
10380 |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/fixmap_32.h 2008-05-23 20:51:11.000000000 +0200 |
+++ b/include/asm-x86/mach-xen/asm/fixmap_32.h |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/fixmap_32.h 2008-05-23 20:39:03.000000000 +0200 |
|
10381 |
@@ -55,7 +55,7 @@ |
@@ -55,7 +55,7 @@ |
10382 |
#ifdef CONFIG_X86_LOCAL_APIC |
#ifdef CONFIG_X86_LOCAL_APIC |
10383 |
FIX_APIC_BASE, /* local (CPU) APIC) -- required for SMP or not */ |
FIX_APIC_BASE, /* local (CPU) APIC) -- required for SMP or not */ |
10399 |
|
|
10400 |
#define set_fixmap(idx, phys) \ |
#define set_fixmap(idx, phys) \ |
10401 |
__set_fixmap(idx, phys, PAGE_KERNEL) |
__set_fixmap(idx, phys, PAGE_KERNEL) |
10402 |
diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/fixmap_64.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/fixmap_64.h |
--- a/include/asm-x86/mach-xen/asm/fixmap_64.h |
10403 |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/fixmap_64.h 2008-05-23 20:51:11.000000000 +0200 |
+++ b/include/asm-x86/mach-xen/asm/fixmap_64.h |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/fixmap_64.h 2008-05-23 20:39:03.000000000 +0200 |
|
10404 |
@@ -41,7 +41,7 @@ |
@@ -41,7 +41,7 @@ |
10405 |
#ifdef CONFIG_X86_LOCAL_APIC |
#ifdef CONFIG_X86_LOCAL_APIC |
10406 |
FIX_APIC_BASE, /* local (CPU) APIC) -- required for SMP or not */ |
FIX_APIC_BASE, /* local (CPU) APIC) -- required for SMP or not */ |
10410 |
FIX_IO_APIC_BASE_0, |
FIX_IO_APIC_BASE_0, |
10411 |
FIX_IO_APIC_BASE_END = FIX_IO_APIC_BASE_0 + MAX_IO_APICS-1, |
FIX_IO_APIC_BASE_END = FIX_IO_APIC_BASE_0 + MAX_IO_APICS-1, |
10412 |
#endif |
#endif |
10413 |
diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/hw_irq_32.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/hw_irq_32.h |
--- a/include/asm-x86/mach-xen/asm/hw_irq_32.h |
10414 |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/hw_irq_32.h 2008-05-23 20:51:11.000000000 +0200 |
+++ b/include/asm-x86/mach-xen/asm/hw_irq_32.h |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/hw_irq_32.h 2008-05-23 20:39:03.000000000 +0200 |
|
10415 |
@@ -17,8 +17,6 @@ |
@@ -17,8 +17,6 @@ |
10416 |
#include <asm/irq.h> |
#include <asm/irq.h> |
10417 |
#include <asm/sections.h> |
#include <asm/sections.h> |
10441 |
#define platform_legacy_irq(irq) ((irq) < 16) |
#define platform_legacy_irq(irq) ((irq) < 16) |
10442 |
#endif |
#endif |
10443 |
|
|
10444 |
diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/hw_irq_64.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/hw_irq_64.h |
--- a/include/asm-x86/mach-xen/asm/hw_irq_64.h |
10445 |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/hw_irq_64.h 2008-05-23 20:51:11.000000000 +0200 |
+++ b/include/asm-x86/mach-xen/asm/hw_irq_64.h |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/hw_irq_64.h 2008-05-23 20:39:03.000000000 +0200 |
|
10446 |
@@ -19,8 +19,7 @@ |
@@ -19,8 +19,7 @@ |
10447 |
#include <asm/irq.h> |
#include <asm/irq.h> |
10448 |
#include <linux/profile.h> |
#include <linux/profile.h> |
10467 |
|
|
10468 |
/* |
/* |
10469 |
* Various low-level irq details needed by irq.c, process.c, |
* Various low-level irq details needed by irq.c, process.c, |
10470 |
diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/io_32.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/io_32.h |
--- a/include/asm-x86/mach-xen/asm/io_32.h |
10471 |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/io_32.h 2008-05-23 20:51:11.000000000 +0200 |
+++ b/include/asm-x86/mach-xen/asm/io_32.h |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/io_32.h 2008-05-23 20:39:03.000000000 +0200 |
|
10472 |
@@ -237,33 +237,6 @@ |
@@ -237,33 +237,6 @@ |
10473 |
|
|
10474 |
#define eth_io_copy_and_sum(a,b,c,d) eth_copy_and_sum((a),(void __force *)(b),(c),(d)) |
#define eth_io_copy_and_sum(a,b,c,d) eth_copy_and_sum((a),(void __force *)(b),(c),(d)) |
10503 |
/* |
/* |
10504 |
* Cache management |
* Cache management |
10505 |
* |
* |
10506 |
diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/io_64.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/io_64.h |
--- a/include/asm-x86/mach-xen/asm/io_64.h |
10507 |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/io_64.h 2008-05-23 20:51:11.000000000 +0200 |
+++ b/include/asm-x86/mach-xen/asm/io_64.h |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/io_64.h 2008-05-23 20:39:03.000000000 +0200 |
|
10508 |
@@ -273,33 +273,6 @@ |
@@ -273,33 +273,6 @@ |
10509 |
|
|
10510 |
#define eth_io_copy_and_sum(a,b,c,d) eth_copy_and_sum((a),(void *)(b),(c),(d)) |
#define eth_io_copy_and_sum(a,b,c,d) eth_copy_and_sum((a),(void *)(b),(c),(d)) |
10539 |
/* Nothing to do */ |
/* Nothing to do */ |
10540 |
|
|
10541 |
#define dma_cache_inv(_start,_size) do { } while (0) |
#define dma_cache_inv(_start,_size) do { } while (0) |
10542 |
diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/pgtable-2level.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/pgtable-2level.h |
--- a/include/asm-x86/mach-xen/asm/pgtable-2level.h |
10543 |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/pgtable-2level.h 2008-05-23 20:51:11.000000000 +0200 |
+++ b/include/asm-x86/mach-xen/asm/pgtable-2level.h |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/pgtable-2level.h 2008-05-23 20:39:03.000000000 +0200 |
|
10544 |
@@ -23,14 +23,6 @@ |
@@ -23,14 +23,6 @@ |
10545 |
set_pte((ptep), (pteval)); \ |
set_pte((ptep), (pteval)); \ |
10546 |
} while (0) |
} while (0) |
10581 |
#define __pte_mfn(_pte) ((_pte).pte_low >> PAGE_SHIFT) |
#define __pte_mfn(_pte) ((_pte).pte_low >> PAGE_SHIFT) |
10582 |
#define pte_mfn(_pte) ((_pte).pte_low & _PAGE_PRESENT ? \ |
#define pte_mfn(_pte) ((_pte).pte_low & _PAGE_PRESENT ? \ |
10583 |
__pte_mfn(_pte) : pfn_to_mfn(__pte_mfn(_pte))) |
__pte_mfn(_pte) : pfn_to_mfn(__pte_mfn(_pte))) |
10584 |
diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/pgtable_32.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/pgtable_32.h |
--- a/include/asm-x86/mach-xen/asm/pgtable-3level.h |
10585 |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/pgtable_32.h 2008-05-23 20:51:11.000000000 +0200 |
+++ b/include/asm-x86/mach-xen/asm/pgtable-3level.h |
10586 |
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/pgtable_32.h 2008-05-23 20:39:03.000000000 +0200 |
@@ -53,7 +53,6 @@ |
10587 |
|
* not possible, use pte_get_and_clear to obtain the old pte |
10588 |
|
* value and then use set_pte to update it. -ben |
10589 |
|
*/ |
10590 |
|
-#define __HAVE_ARCH_SET_PTE_ATOMIC |
10591 |
|
|
10592 |
|
static inline void set_pte(pte_t *ptep, pte_t pte) |
10593 |
|
{ |
10594 |
|
@@ -70,14 +69,6 @@ |
10595 |
|
set_pte((ptep), (pteval)); \ |
10596 |
|
} while (0) |
10597 |
|
|
10598 |
|
-#define set_pte_at_sync(_mm,addr,ptep,pteval) do { \ |
10599 |
|
- if (((_mm) != current->mm && (_mm) != &init_mm) || \ |
10600 |
|
- HYPERVISOR_update_va_mapping((addr), (pteval), UVMF_INVLPG)) { \ |
10601 |
|
- set_pte((ptep), (pteval)); \ |
10602 |
|
- xen_invlpg((addr)); \ |
10603 |
|
- } \ |
10604 |
|
-} while (0) |
10605 |
|
- |
10606 |
|
#define set_pmd(pmdptr,pmdval) \ |
10607 |
|
xen_l2_entry_update((pmdptr), (pmdval)) |
10608 |
|
#define set_pud(pudptr,pudval) \ |
10609 |
|
@@ -94,7 +85,7 @@ |
10610 |
|
#define pud_page(pud) \ |
10611 |
|
((struct page *) __va(pud_val(pud) & PAGE_MASK)) |
10612 |
|
|
10613 |
|
-#define pud_page_kernel(pud) \ |
10614 |
|
+#define pud_page_vaddr(pud) \ |
10615 |
|
((unsigned long) __va(pud_val(pud) & PAGE_MASK)) |
10616 |
|
|
10617 |
|
|
10618 |
|
@@ -124,6 +115,7 @@ |
10619 |
|
|
10620 |
|
#define pmd_clear(xp) do { set_pmd(xp, __pmd(0)); } while (0) |
10621 |
|
|
10622 |
|
+#define __HAVE_ARCH_PTEP_GET_AND_CLEAR |
10623 |
|
static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep) |
10624 |
|
{ |
10625 |
|
pte_t pte = *ptep; |
10626 |
|
@@ -142,6 +134,7 @@ |
10627 |
|
return pte; |
10628 |
|
} |
10629 |
|
|
10630 |
|
+#define __HAVE_ARCH_PTEP_CLEAR_FLUSH |
10631 |
|
#define ptep_clear_flush(vma, addr, ptep) \ |
10632 |
|
({ \ |
10633 |
|
pte_t *__ptep = (ptep); \ |
10634 |
|
@@ -159,6 +152,7 @@ |
10635 |
|
__res; \ |
10636 |
|
}) |
10637 |
|
|
10638 |
|
+#define __HAVE_ARCH_PTE_SAME |
10639 |
|
static inline int pte_same(pte_t a, pte_t b) |
10640 |
|
{ |
10641 |
|
return a.pte_low == b.pte_low && a.pte_high == b.pte_high; |
10642 |
|
--- a/include/asm-x86/mach-xen/asm/pgtable_32.h |
10643 |
|
+++ b/include/asm-x86/mach-xen/asm/pgtable_32.h |
10644 |
@@ -260,31 +260,89 @@ |
@@ -260,31 +260,89 @@ |
10645 |
# include <asm/pgtable-2level.h> |
# include <asm/pgtable-2level.h> |
10646 |
#endif |
#endif |
10851 |
#include <asm-generic/pgtable.h> |
#include <asm-generic/pgtable.h> |
10852 |
|
|
10853 |
#endif /* _I386_PGTABLE_H */ |
#endif /* _I386_PGTABLE_H */ |
10854 |
diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/pgtable-3level.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/pgtable-3level.h |
--- a/include/asm-x86/mach-xen/asm/pgtable_64.h |
10855 |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/pgtable-3level.h 2008-05-23 20:51:11.000000000 +0200 |
+++ b/include/asm-x86/mach-xen/asm/pgtable_64.h |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/pgtable-3level.h 2008-05-23 20:39:03.000000000 +0200 |
|
|
@@ -53,7 +53,6 @@ |
|
|
* not possible, use pte_get_and_clear to obtain the old pte |
|
|
* value and then use set_pte to update it. -ben |
|
|
*/ |
|
|
-#define __HAVE_ARCH_SET_PTE_ATOMIC |
|
|
|
|
|
static inline void set_pte(pte_t *ptep, pte_t pte) |
|
|
{ |
|
|
@@ -70,14 +69,6 @@ |
|
|
set_pte((ptep), (pteval)); \ |
|
|
} while (0) |
|
|
|
|
|
-#define set_pte_at_sync(_mm,addr,ptep,pteval) do { \ |
|
|
- if (((_mm) != current->mm && (_mm) != &init_mm) || \ |
|
|
- HYPERVISOR_update_va_mapping((addr), (pteval), UVMF_INVLPG)) { \ |
|
|
- set_pte((ptep), (pteval)); \ |
|
|
- xen_invlpg((addr)); \ |
|
|
- } \ |
|
|
-} while (0) |
|
|
- |
|
|
#define set_pmd(pmdptr,pmdval) \ |
|
|
xen_l2_entry_update((pmdptr), (pmdval)) |
|
|
#define set_pud(pudptr,pudval) \ |
|
|
@@ -94,7 +85,7 @@ |
|
|
#define pud_page(pud) \ |
|
|
((struct page *) __va(pud_val(pud) & PAGE_MASK)) |
|
|
|
|
|
-#define pud_page_kernel(pud) \ |
|
|
+#define pud_page_vaddr(pud) \ |
|
|
((unsigned long) __va(pud_val(pud) & PAGE_MASK)) |
|
|
|
|
|
|
|
|
@@ -124,6 +115,7 @@ |
|
|
|
|
|
#define pmd_clear(xp) do { set_pmd(xp, __pmd(0)); } while (0) |
|
|
|
|
|
+#define __HAVE_ARCH_PTEP_GET_AND_CLEAR |
|
|
static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep) |
|
|
{ |
|
|
pte_t pte = *ptep; |
|
|
@@ -142,6 +134,7 @@ |
|
|
return pte; |
|
|
} |
|
|
|
|
|
+#define __HAVE_ARCH_PTEP_CLEAR_FLUSH |
|
|
#define ptep_clear_flush(vma, addr, ptep) \ |
|
|
({ \ |
|
|
pte_t *__ptep = (ptep); \ |
|
|
@@ -159,6 +152,7 @@ |
|
|
__res; \ |
|
|
}) |
|
|
|
|
|
+#define __HAVE_ARCH_PTE_SAME |
|
|
static inline int pte_same(pte_t a, pte_t b) |
|
|
{ |
|
|
return a.pte_low == b.pte_low && a.pte_high == b.pte_high; |
|
|
diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/pgtable_64.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/pgtable_64.h |
|
|
--- linux-2.6.25/include/asm-x86/mach-xen/asm/pgtable_64.h 2008-05-23 20:51:11.000000000 +0200 |
|
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/pgtable_64.h 2008-05-23 20:39:03.000000000 +0200 |
|
10856 |
@@ -43,12 +43,9 @@ |
@@ -43,12 +43,9 @@ |
10857 |
|
|
10858 |
#define swapper_pg_dir init_level4_pgt |
#define swapper_pg_dir init_level4_pgt |
11031 |
#define __HAVE_ARCH_PTEP_GET_AND_CLEAR |
#define __HAVE_ARCH_PTEP_GET_AND_CLEAR |
11032 |
#define __HAVE_ARCH_PTEP_GET_AND_CLEAR_FULL |
#define __HAVE_ARCH_PTEP_GET_AND_CLEAR_FULL |
11033 |
#define __HAVE_ARCH_PTEP_CLEAR_FLUSH |
#define __HAVE_ARCH_PTEP_CLEAR_FLUSH |
11034 |
diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/processor_32.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/processor_32.h |
--- a/include/asm-x86/mach-xen/asm/processor_32.h |
11035 |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/processor_32.h 2008-05-23 20:51:22.000000000 +0200 |
+++ b/include/asm-x86/mach-xen/asm/processor_32.h |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/processor_32.h 2008-05-23 20:39:03.000000000 +0200 |
|
11036 |
@@ -146,6 +146,18 @@ |
@@ -146,6 +146,18 @@ |
11037 |
#define X86_EFLAGS_VIP 0x00100000 /* Virtual Interrupt Pending */ |
#define X86_EFLAGS_VIP 0x00100000 /* Virtual Interrupt Pending */ |
11038 |
#define X86_EFLAGS_ID 0x00200000 /* CPUID detection flag */ |
#define X86_EFLAGS_ID 0x00200000 /* CPUID detection flag */ |
11144 |
/* from system description table in BIOS. Mostly for MCA use, but |
/* from system description table in BIOS. Mostly for MCA use, but |
11145 |
others may find it useful. */ |
others may find it useful. */ |
11146 |
extern unsigned int machine_id; |
extern unsigned int machine_id; |
11147 |
diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/processor_64.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/processor_64.h |
--- a/include/asm-x86/mach-xen/asm/processor_64.h |
11148 |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/processor_64.h 2008-05-23 20:51:11.000000000 +0200 |
+++ b/include/asm-x86/mach-xen/asm/processor_64.h |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/processor_64.h 2008-05-23 20:39:03.000000000 +0200 |
|
11149 |
@@ -484,6 +484,8 @@ |
@@ -484,6 +484,8 @@ |
11150 |
: :"a" (eax), "c" (ecx)); |
: :"a" (eax), "c" (ecx)); |
11151 |
} |
} |
11155 |
#define stack_current() \ |
#define stack_current() \ |
11156 |
({ \ |
({ \ |
11157 |
struct thread_info *ti; \ |
struct thread_info *ti; \ |
11158 |
diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/segment_32.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/segment_32.h |
--- a/include/asm-x86/mach-xen/asm/segment_32.h |
11159 |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/segment_32.h 2008-05-23 20:51:11.000000000 +0200 |
+++ b/include/asm-x86/mach-xen/asm/segment_32.h |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/segment_32.h 2008-05-23 20:39:03.000000000 +0200 |
|
11160 |
@@ -61,11 +61,9 @@ |
@@ -61,11 +61,9 @@ |
11161 |
|
|
11162 |
#define GDT_ENTRY_KERNEL_CS (GDT_ENTRY_KERNEL_BASE + 0) |
#define GDT_ENTRY_KERNEL_CS (GDT_ENTRY_KERNEL_BASE + 0) |
11198 |
+ |
+ |
11199 |
+#define get_kernel_rpl() (xen_feature(XENFEAT_supervisor_mode_kernel)?0:1) |
+#define get_kernel_rpl() (xen_feature(XENFEAT_supervisor_mode_kernel)?0:1) |
11200 |
#endif |
#endif |
11201 |
diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/smp_32.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/smp_32.h |
--- a/include/asm-x86/mach-xen/asm/smp_32.h |
11202 |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/smp_32.h 2008-05-23 20:51:11.000000000 +0200 |
+++ b/include/asm-x86/mach-xen/asm/smp_32.h |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/smp_32.h 2008-05-23 20:39:03.000000000 +0200 |
|
11203 |
@@ -79,25 +79,36 @@ |
@@ -79,25 +79,36 @@ |
11204 |
return GET_APIC_ID(*(unsigned long *)(APIC_BASE+APIC_ID)); |
return GET_APIC_ID(*(unsigned long *)(APIC_BASE+APIC_ID)); |
11205 |
} |
} |
11244 |
+#endif |
+#endif |
11245 |
+ |
+ |
11246 |
#endif |
#endif |
11247 |
diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/smp_64.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/smp_64.h |
--- a/include/asm-x86/mach-xen/asm/smp_64.h |
11248 |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/smp_64.h 2008-05-23 20:51:11.000000000 +0200 |
+++ b/include/asm-x86/mach-xen/asm/smp_64.h |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/smp_64.h 2008-05-23 20:39:03.000000000 +0200 |
|
11249 |
@@ -4,15 +4,12 @@ |
@@ -4,15 +4,12 @@ |
11250 |
/* |
/* |
11251 |
* We need the APIC definitions automatically as part of 'smp.h' |
* We need the APIC definitions automatically as part of 'smp.h' |
11351 |
+#endif /* !CONFIG_SMP */ |
+#endif /* !CONFIG_SMP */ |
11352 |
#endif |
#endif |
11353 |
|
|
11354 |
diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/system_32.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/system_32.h |
--- a/include/asm-x86/mach-xen/asm/system_32.h |
11355 |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/system_32.h 2008-05-23 20:51:11.000000000 +0200 |
+++ b/include/asm-x86/mach-xen/asm/system_32.h |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/system_32.h 2008-05-23 20:39:03.000000000 +0200 |
|
11356 |
@@ -267,6 +267,9 @@ |
@@ -267,6 +267,9 @@ |
11357 |
#define cmpxchg(ptr,o,n)\ |
#define cmpxchg(ptr,o,n)\ |
11358 |
((__typeof__(*(ptr)))__cmpxchg((ptr),(unsigned long)(o),\ |
((__typeof__(*(ptr)))__cmpxchg((ptr),(unsigned long)(o),\ |
11363 |
#endif |
#endif |
11364 |
|
|
11365 |
static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old, |
static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old, |
11366 |
@@ -296,6 +299,39 @@ |
@@ -291,6 +294,39 @@ |
11367 |
return old; |
: "=a"(prev) |
11368 |
} |
: "r"(new), "m"(*__xg(ptr)), "0"(old) |
11369 |
|
: "memory"); |
11370 |
|
+ return prev; |
11371 |
|
+ } |
11372 |
|
+ return old; |
11373 |
|
+} |
11374 |
|
+ |
11375 |
+/* |
+/* |
11376 |
+ * Always use locked operations when touching memory shared with a |
+ * Always use locked operations when touching memory shared with a |
11377 |
+ * hypervisor, since the system may be SMP even if the guest kernel |
+ * hypervisor, since the system may be SMP even if the guest kernel |
11400 |
+ : "=a"(prev) |
+ : "=a"(prev) |
11401 |
+ : "r"(new), "m"(*__xg(ptr)), "0"(old) |
+ : "r"(new), "m"(*__xg(ptr)), "0"(old) |
11402 |
+ : "memory"); |
+ : "memory"); |
11403 |
+ return prev; |
return prev; |
11404 |
+ } |
} |
11405 |
+ return old; |
return old; |
11406 |
+} |
--- a/include/asm-x86/mach-xen/asm/system_64.h |
11407 |
+ |
+++ b/include/asm-x86/mach-xen/asm/system_64.h |
|
#ifndef CONFIG_X86_CMPXCHG |
|
|
/* |
|
|
* Building a kernel capable running on 80386. It may be necessary to |
|
|
diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/system_64.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/system_64.h |
|
|
--- linux-2.6.25/include/asm-x86/mach-xen/asm/system_64.h 2008-05-23 20:51:11.000000000 +0200 |
|
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/system_64.h 2008-05-23 20:39:03.000000000 +0200 |
|
11408 |
@@ -24,6 +24,7 @@ |
@@ -24,6 +24,7 @@ |
11409 |
#define __EXTRA_CLOBBER \ |
#define __EXTRA_CLOBBER \ |
11410 |
,"rcx","rbx","rdx","r8","r9","r10","r11","r12","r13","r14","r15" |
,"rcx","rbx","rdx","r8","r9","r10","r11","r12","r13","r14","r15" |
11413 |
#define switch_to(prev,next,last) \ |
#define switch_to(prev,next,last) \ |
11414 |
asm volatile(SAVE_CONTEXT \ |
asm volatile(SAVE_CONTEXT \ |
11415 |
"movq %%rsp,%P[threadrsp](%[prev])\n\t" /* save RSP */ \ |
"movq %%rsp,%P[threadrsp](%[prev])\n\t" /* save RSP */ \ |
11416 |
diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/tlbflush_32.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/tlbflush_32.h |
--- a/include/asm-x86/mach-xen/asm/tlbflush_32.h |
11417 |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/tlbflush_32.h 2008-05-23 20:51:11.000000000 +0200 |
+++ b/include/asm-x86/mach-xen/asm/tlbflush_32.h |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/tlbflush_32.h 2008-05-23 20:39:03.000000000 +0200 |
|
11418 |
@@ -8,8 +8,6 @@ |
@@ -8,8 +8,6 @@ |
11419 |
#define __flush_tlb_global() xen_tlb_flush() |
#define __flush_tlb_global() xen_tlb_flush() |
11420 |
#define __flush_tlb_all() xen_tlb_flush() |
#define __flush_tlb_all() xen_tlb_flush() |
11424 |
#define cpu_has_invlpg (boot_cpu_data.x86 > 3) |
#define cpu_has_invlpg (boot_cpu_data.x86 > 3) |
11425 |
|
|
11426 |
#define __flush_tlb_single(addr) xen_invlpg(addr) |
#define __flush_tlb_single(addr) xen_invlpg(addr) |
11427 |
diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/tlbflush_64.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/tlbflush_64.h |
--- a/include/asm-x86/mach-xen/asm/tlbflush_64.h |
11428 |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/tlbflush_64.h 2008-05-23 20:51:11.000000000 +0200 |
+++ b/include/asm-x86/mach-xen/asm/tlbflush_64.h |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/tlbflush_64.h 2008-05-23 20:39:03.000000000 +0200 |
|
11429 |
@@ -12,9 +12,6 @@ |
@@ -12,9 +12,6 @@ |
11430 |
*/ |
*/ |
11431 |
#define __flush_tlb_global() xen_tlb_flush() |
#define __flush_tlb_global() xen_tlb_flush() |
11436 |
#define __flush_tlb_all() __flush_tlb_global() |
#define __flush_tlb_all() __flush_tlb_global() |
11437 |
|
|
11438 |
#define __flush_tlb_one(addr) xen_invlpg((unsigned long)addr) |
#define __flush_tlb_one(addr) xen_invlpg((unsigned long)addr) |
11439 |
diff -Naur linux-2.6.25/include/asm-x86/thread_info_64.h linux-2.6.25-xen/include/asm-x86/thread_info_64.h |
--- a/include/asm-x86/thread_info_64.h |
11440 |
--- linux-2.6.25/include/asm-x86/thread_info_64.h 2008-04-17 04:49:44.000000000 +0200 |
+++ b/include/asm-x86/thread_info_64.h |
|
+++ linux-2.6.25-xen/include/asm-x86/thread_info_64.h 2008-05-23 20:39:03.000000000 +0200 |
|
11441 |
@@ -157,10 +157,14 @@ |
@@ -157,10 +157,14 @@ |
11442 |
(_TIF_SIGPENDING|_TIF_SINGLESTEP|_TIF_MCE_NOTIFY|_TIF_HRTICK_RESCHED) |
(_TIF_SIGPENDING|_TIF_SINGLESTEP|_TIF_MCE_NOTIFY|_TIF_HRTICK_RESCHED) |
11443 |
|
|
11453 |
|
|
11454 |
#define PREEMPT_ACTIVE 0x10000000 |
#define PREEMPT_ACTIVE 0x10000000 |
11455 |
|
|
11456 |
diff -Naur linux-2.6.25/include/linux/skbuff.h linux-2.6.25-xen/include/linux/skbuff.h |
--- a/include/linux/skbuff.h |
11457 |
--- linux-2.6.25/include/linux/skbuff.h 2008-05-23 20:51:15.000000000 +0200 |
+++ b/include/linux/skbuff.h |
|
+++ linux-2.6.25-xen/include/linux/skbuff.h 2008-05-23 20:39:03.000000000 +0200 |
|
11458 |
@@ -1821,5 +1821,12 @@ |
@@ -1821,5 +1821,12 @@ |
11459 |
} |
} |
11460 |
|
|
11468 |
+ |
+ |
11469 |
#endif /* __KERNEL__ */ |
#endif /* __KERNEL__ */ |
11470 |
#endif /* _LINUX_SKBUFF_H */ |
#endif /* _LINUX_SKBUFF_H */ |
11471 |
diff -Naur linux-2.6.25/include/xen/evtchn.h linux-2.6.25-xen/include/xen/evtchn.h |
--- a/include/xen/evtchn.h |
11472 |
--- linux-2.6.25/include/xen/evtchn.h 2008-05-23 20:51:11.000000000 +0200 |
+++ b/include/xen/evtchn.h |
|
+++ linux-2.6.25-xen/include/xen/evtchn.h 2008-05-23 20:39:03.000000000 +0200 |
|
11473 |
@@ -54,34 +54,34 @@ |
@@ -54,34 +54,34 @@ |
11474 |
*/ |
*/ |
11475 |
int bind_caller_port_to_irqhandler( |
int bind_caller_port_to_irqhandler( |
11510 |
unsigned long irqflags, |
unsigned long irqflags, |
11511 |
const char *devname, |
const char *devname, |
11512 |
void *dev_id); |
void *dev_id); |
11513 |
diff -Naur linux-2.6.25/include/xen/xencons.h linux-2.6.25-xen/include/xen/xencons.h |
--- a/include/xen/xencons.h |
11514 |
--- linux-2.6.25/include/xen/xencons.h 2008-05-23 20:51:11.000000000 +0200 |
+++ b/include/xen/xencons.h |
|
+++ linux-2.6.25-xen/include/xen/xencons.h 2008-05-23 20:39:03.000000000 +0200 |
|
11515 |
@@ -8,7 +8,7 @@ |
@@ -8,7 +8,7 @@ |
11516 |
void xencons_resume(void); |
void xencons_resume(void); |
11517 |
|
|
11521 |
void xencons_tx(void); |
void xencons_tx(void); |
11522 |
|
|
11523 |
int xencons_ring_init(void); |
int xencons_ring_init(void); |
11524 |
diff -Naur linux-2.6.25/mm/mprotect.c linux-2.6.25-xen/mm/mprotect.c |
--- a/mm/mprotect.c |
11525 |
--- linux-2.6.25/mm/mprotect.c 2008-05-23 20:51:15.000000000 +0200 |
+++ b/mm/mprotect.c |
|
+++ linux-2.6.25-xen/mm/mprotect.c 2008-05-23 20:39:03.000000000 +0200 |
|
11526 |
@@ -86,7 +86,7 @@ |
@@ -86,7 +86,7 @@ |
11527 |
next = pmd_addr_end(addr, end); |
next = pmd_addr_end(addr, end); |
11528 |
if (pmd_none_or_clear_bad(pmd)) |
if (pmd_none_or_clear_bad(pmd)) |
11532 |
continue; |
continue; |
11533 |
change_pte_range(mm, pmd, addr, next, newprot, dirty_accountable); |
change_pte_range(mm, pmd, addr, next, newprot, dirty_accountable); |
11534 |
} while (pmd++, addr = next, addr != end); |
} while (pmd++, addr = next, addr != end); |
11535 |
diff -Naur linux-2.6.25/net/core/dev.c linux-2.6.25-xen/net/core/dev.c |
--- a/net/core/dev.c |
11536 |
--- linux-2.6.25/net/core/dev.c 2008-05-23 20:51:15.000000000 +0200 |
+++ b/net/core/dev.c |
11537 |
+++ linux-2.6.25-xen/net/core/dev.c 2008-05-23 20:39:03.000000000 +0200 |
@@ -1611,15 +1611,14 @@ |
|
@@ -1607,15 +1607,14 @@ |
|
11538 |
} |
} |
11539 |
if ((skb->h.raw + skb->csum + 2) > skb->tail) |
if ((skb->h.raw + skb->csum + 2) > skb->tail) |
11540 |
goto out; |
goto out; |
11552 |
#endif |
#endif |
11553 |
|
|
11554 |
/** |
/** |
11555 |
@@ -2111,7 +2110,7 @@ |
@@ -2115,7 +2114,7 @@ |
11556 |
case CHECKSUM_UNNECESSARY: |
case CHECKSUM_UNNECESSARY: |
11557 |
skb->proto_data_valid = 1; |
skb->proto_data_valid = 1; |
11558 |
break; |
break; |
11561 |
/* XXX Implement me. */ |
/* XXX Implement me. */ |
11562 |
default: |
default: |
11563 |
skb->proto_data_valid = 0; |
skb->proto_data_valid = 0; |
11564 |
@@ -4644,7 +4643,6 @@ |
@@ -4648,7 +4647,6 @@ |
11565 |
EXPORT_SYMBOL(net_enable_timestamp); |
EXPORT_SYMBOL(net_enable_timestamp); |
11566 |
EXPORT_SYMBOL(net_disable_timestamp); |
EXPORT_SYMBOL(net_disable_timestamp); |
11567 |
EXPORT_SYMBOL(dev_get_flags); |
EXPORT_SYMBOL(dev_get_flags); |