1 |
From: www.kernel.org |
diff -Naur linux-2.6.25/arch/x86/ia32/ia32entry-xen.S linux-2.6.25-xen/arch/x86/ia32/ia32entry-xen.S |
2 |
Subject: Linux 2.6.19 |
--- linux-2.6.25/arch/x86/ia32/ia32entry-xen.S 2008-05-23 20:51:11.000000000 +0200 |
3 |
Patch-mainline: 2.6.19 |
+++ linux-2.6.25-xen/arch/x86/ia32/ia32entry-xen.S 2008-05-23 20:39:03.000000000 +0200 |
|
|
|
|
Automatically created from "patches.kernel.org/patch-2.6.19" by xen-port-patches.py |
|
|
|
|
|
Acked-by: jbeulich@novell.com |
|
|
|
|
|
--- |
|
|
arch/x86/Kconfig | 1 |
|
|
arch/x86/ia32/ia32entry-xen.S | 9 |
|
|
arch/x86/kernel/Makefile | 5 |
|
|
arch/x86/kernel/apic_32-xen.c | 9 |
|
|
arch/x86/kernel/apic_64-xen.c | 20 |
|
|
arch/x86/kernel/cpu/common-xen.c | 20 |
|
|
arch/x86/kernel/e820_64-xen.c | 320 +++--- |
|
|
arch/x86/kernel/early_printk-xen.c | 20 |
|
|
arch/x86/kernel/entry_32-xen.S | 139 +- |
|
|
arch/x86/kernel/entry_64-xen.S | 106 -- |
|
|
arch/x86/kernel/genapic_xen_64.c | 9 |
|
|
arch/x86/kernel/head64-xen.c | 44 |
|
|
arch/x86/kernel/head_32-xen.S | 2 |
|
|
arch/x86/kernel/head_64-xen.S | 5 |
|
|
arch/x86/kernel/io_apic_32-xen.c | 750 +++++++++------ |
|
|
arch/x86/kernel/io_apic_64-xen.c | 1250 +++++++++++--------------- |
|
|
arch/x86/kernel/ioport_64-xen.c | 1 |
|
|
arch/x86/kernel/irq_32-xen.c | 19 |
|
|
arch/x86/kernel/irq_64-xen.c | 35 |
|
|
arch/x86/kernel/ldt_32-xen.c | 2 |
|
|
arch/x86/kernel/microcode-xen.c | 85 + |
|
|
arch/x86/kernel/mpparse_32-xen.c | 70 - |
|
|
arch/x86/kernel/mpparse_64-xen.c | 313 +----- |
|
|
arch/x86/kernel/pci-dma_32-xen.c | 16 |
|
|
arch/x86/kernel/pci-swiotlb_64-xen.c | 3 |
|
|
arch/x86/kernel/process_32-xen.c | 29 |
|
|
arch/x86/kernel/process_64-xen.c | 90 + |
|
|
arch/x86/kernel/setup64-xen.c | 41 |
|
|
arch/x86/kernel/setup_32-xen.c | 430 +++----- |
|
|
arch/x86/kernel/setup_64-xen.c | 271 +---- |
|
|
arch/x86/kernel/smp_32-xen.c | 75 + |
|
|
arch/x86/kernel/smp_64-xen.c | 35 |
|
|
arch/x86/kernel/time_32-xen.c | 86 - |
|
|
arch/x86/kernel/traps_32-xen.c | 238 +++- |
|
|
arch/x86/kernel/traps_64-xen.c | 220 +++- |
|
|
arch/x86/kernel/vsyscall_64-xen.c | 117 ++ |
|
|
arch/x86/mach-xen/setup.c | 6 |
|
|
arch/x86/mm/fault_32-xen.c | 29 |
|
|
arch/x86/mm/fault_64-xen.c | 34 |
|
|
arch/x86/mm/highmem_32-xen.c | 31 |
|
|
arch/x86/mm/hypervisor.c | 9 |
|
|
arch/x86/mm/init_32-xen.c | 89 + |
|
|
arch/x86/mm/init_64-xen.c | 184 +-- |
|
|
arch/x86/mm/ioremap_32-xen.c | 10 |
|
|
arch/x86/mm/pageattr_64-xen.c | 24 |
|
|
arch/x86/mm/pgtable_32-xen.c | 31 |
|
|
arch/x86/pci/irq-xen.c | 38 |
|
|
drivers/char/tpm/tpm_xen.c | 5 |
|
|
drivers/pci/Kconfig | 2 |
|
|
drivers/xen/Kconfig | 3 |
|
|
drivers/xen/balloon/balloon.c | 2 |
|
|
drivers/xen/blkback/blkback.c | 2 |
|
|
drivers/xen/blkback/common.h | 2 |
|
|
drivers/xen/blkfront/blkfront.c | 4 |
|
|
drivers/xen/blktap/blktap.c | 2 |
|
|
drivers/xen/blktap/common.h | 2 |
|
|
drivers/xen/console/console.c | 10 |
|
|
drivers/xen/console/xencons_ring.c | 4 |
|
|
drivers/xen/core/evtchn.c | 50 - |
|
|
drivers/xen/core/reboot.c | 3 |
|
|
drivers/xen/core/smpboot.c | 6 |
|
|
drivers/xen/fbfront/xenfb.c | 3 |
|
|
drivers/xen/fbfront/xenkbd.c | 2 |
|
|
drivers/xen/gntdev/gntdev.c | 11 |
|
|
drivers/xen/netback/accel.c | 2 |
|
|
drivers/xen/netback/common.h | 2 |
|
|
drivers/xen/netback/loopback.c | 2 |
|
|
drivers/xen/netback/netback.c | 6 |
|
|
drivers/xen/netfront/netfront.c | 8 |
|
|
drivers/xen/pciback/pciback.h | 2 |
|
|
drivers/xen/pciback/pciback_ops.c | 2 |
|
|
drivers/xen/pcifront/pci_op.c | 8 |
|
|
drivers/xen/privcmd/compat_privcmd.c | 1 |
|
|
drivers/xen/privcmd/privcmd.c | 2 |
|
|
drivers/xen/sfc_netback/accel_xenbus.c | 6 |
|
|
drivers/xen/sfc_netfront/accel.h | 6 |
|
|
drivers/xen/sfc_netfront/accel_msg.c | 6 |
|
|
drivers/xen/sfc_netfront/accel_tso.c | 2 |
|
|
drivers/xen/sfc_netfront/accel_vi.c | 4 |
|
|
drivers/xen/tpmback/common.h | 2 |
|
|
drivers/xen/tpmback/tpmback.c | 4 |
|
|
drivers/xen/xenbus/xenbus_comms.c | 2 |
|
|
drivers/xen/xenoprof/xenoprofile.c | 2 |
|
|
include/asm-generic/pgtable.h | 2 |
|
|
include/asm-x86/mach-xen/asm/desc_32.h | 127 +- |
|
|
include/asm-x86/mach-xen/asm/dma-mapping_64.h | 7 |
|
|
include/asm-x86/mach-xen/asm/e820_64.h | 15 |
|
|
include/asm-x86/mach-xen/asm/fixmap_32.h | 5 |
|
|
include/asm-x86/mach-xen/asm/fixmap_64.h | 2 |
|
|
include/asm-x86/mach-xen/asm/hw_irq_32.h | 8 |
|
|
include/asm-x86/mach-xen/asm/hw_irq_64.h | 10 |
|
|
include/asm-x86/mach-xen/asm/io_32.h | 27 |
|
|
include/asm-x86/mach-xen/asm/io_64.h | 27 |
|
|
include/asm-x86/mach-xen/asm/pgtable-2level.h | 12 |
|
|
include/asm-x86/mach-xen/asm/pgtable-3level.h | 14 |
|
|
include/asm-x86/mach-xen/asm/pgtable_32.h | 143 +- |
|
|
include/asm-x86/mach-xen/asm/pgtable_64.h | 86 + |
|
|
include/asm-x86/mach-xen/asm/processor_32.h | 62 - |
|
|
include/asm-x86/mach-xen/asm/processor_64.h | 2 |
|
|
include/asm-x86/mach-xen/asm/segment_32.h | 19 |
|
|
include/asm-x86/mach-xen/asm/smp_32.h | 25 |
|
|
include/asm-x86/mach-xen/asm/smp_64.h | 27 |
|
|
include/asm-x86/mach-xen/asm/system_32.h | 36 |
|
|
include/asm-x86/mach-xen/asm/system_64.h | 1 |
|
|
include/asm-x86/mach-xen/asm/tlbflush_32.h | 2 |
|
|
include/asm-x86/mach-xen/asm/tlbflush_64.h | 3 |
|
|
include/asm-x86/thread_info_64.h | 4 |
|
|
include/linux/skbuff.h | 7 |
|
|
include/xen/evtchn.h | 10 |
|
|
include/xen/xencons.h | 2 |
|
|
mm/mprotect.c | 2 |
|
|
net/core/dev.c | 8 |
|
|
112 files changed, 3102 insertions(+), 3145 deletions(-) |
|
|
|
|
|
--- a/arch/x86/Kconfig |
|
|
+++ b/arch/x86/Kconfig |
|
|
@@ -390,6 +390,7 @@ |
|
|
|
|
|
menuconfig PARAVIRT_GUEST |
|
|
bool "Paravirtualized guest support" |
|
|
+ depends on !X86_XEN && !X86_64_XEN |
|
|
help |
|
|
Say Y here to get to see options related to running Linux under |
|
|
various hypervisors. This option alone does not add any kernel code. |
|
|
--- a/arch/x86/ia32/ia32entry-xen.S |
|
|
+++ b/arch/x86/ia32/ia32entry-xen.S |
|
4 |
@@ -83,6 +83,7 @@ |
@@ -83,6 +83,7 @@ |
5 |
*/ |
*/ |
6 |
ENTRY(ia32_sysenter_target) |
ENTRY(ia32_sysenter_target) |
50 |
.quad compat_sys_move_pages |
.quad compat_sys_move_pages |
51 |
+ .quad sys_getcpu |
+ .quad sys_getcpu |
52 |
ia32_syscall_end: |
ia32_syscall_end: |
53 |
--- a/arch/x86/kernel/Makefile |
diff -Naur linux-2.6.25/arch/x86/Kconfig linux-2.6.25-xen/arch/x86/Kconfig |
54 |
+++ b/arch/x86/kernel/Makefile |
--- linux-2.6.25/arch/x86/Kconfig 2008-05-23 20:51:22.000000000 +0200 |
55 |
@@ -91,7 +91,7 @@ |
+++ linux-2.6.25-xen/arch/x86/Kconfig 2008-05-23 20:39:03.000000000 +0200 |
56 |
### |
@@ -390,6 +390,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 |
|
57 |
|
|
58 |
-disabled-obj-$(CONFIG_XEN) := i8253.o i8259_$(BITS).o reboot.o smpboot_$(BITS).o tsc_$(BITS).o |
menuconfig PARAVIRT_GUEST |
59 |
+disabled-obj-$(CONFIG_XEN) := early-quirks.o i8253.o i8259_$(BITS).o reboot.o \ |
bool "Paravirtualized guest support" |
60 |
+ smpboot_$(BITS).o tsc_$(BITS).o |
+ depends on !X86_XEN && !X86_64_XEN |
61 |
%/head_$(BITS).o %/head_$(BITS).s: $(if $(CONFIG_XEN),EXTRA_AFLAGS,dummy) := |
help |
62 |
--- a/arch/x86/kernel/apic_32-xen.c |
Say Y here to get to see options related to running Linux under |
63 |
+++ b/arch/x86/kernel/apic_32-xen.c |
various hypervisors. This option alone does not add any kernel code. |
64 |
|
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 |
65 |
|
--- linux-2.6.25/arch/x86/kernel/apic_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
66 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/apic_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
67 |
@@ -54,7 +54,6 @@ |
@@ -54,7 +54,6 @@ |
68 |
/* |
/* |
69 |
* Knob to control our willingness to enable the local APIC. |
* Knob to control our willingness to enable the local APIC. |
104 |
#endif |
#endif |
105 |
} |
} |
106 |
} |
} |
107 |
--- a/arch/x86/kernel/apic_64-xen.c |
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 |
108 |
+++ b/arch/x86/kernel/apic_64-xen.c |
--- linux-2.6.25/arch/x86/kernel/apic_64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
109 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/apic_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
110 |
@@ -43,7 +43,7 @@ |
@@ -43,7 +43,7 @@ |
111 |
*/ |
*/ |
112 |
void ack_bad_irq(unsigned int irq) |
void ack_bad_irq(unsigned int irq) |
172 |
#endif |
#endif |
173 |
|
|
174 |
return 1; |
return 1; |
175 |
--- a/arch/x86/kernel/cpu/common-xen.c |
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 |
176 |
+++ b/arch/x86/kernel/cpu/common-xen.c |
--- linux-2.6.25/arch/x86/kernel/cpu/common-xen.c 2008-05-23 20:51:11.000000000 +0200 |
177 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/cpu/common-xen.c 2008-05-23 20:39:03.000000000 +0200 |
178 |
@@ -43,7 +43,7 @@ |
@@ -43,7 +43,7 @@ |
179 |
|
|
180 |
extern int disable_pse; |
extern int disable_pse; |
238 |
|
|
239 |
/* Clear all 6 debug registers: */ |
/* Clear all 6 debug registers: */ |
240 |
set_debugreg(0, 0); |
set_debugreg(0, 0); |
241 |
--- a/arch/x86/kernel/e820_64-xen.c |
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 |
242 |
+++ b/arch/x86/kernel/e820_64-xen.c |
--- linux-2.6.25/arch/x86/kernel/e820_64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
243 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/e820_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
244 |
@@ -16,6 +16,7 @@ |
@@ -16,6 +16,7 @@ |
245 |
#include <linux/string.h> |
#include <linux/string.h> |
246 |
#include <linux/kexec.h> |
#include <linux/kexec.h> |
721 |
} |
} |
722 |
|
|
723 |
unsigned long pci_mem_start = 0xaeedbabe; |
unsigned long pci_mem_start = 0xaeedbabe; |
724 |
--- a/arch/x86/kernel/early_printk-xen.c |
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 |
725 |
+++ b/arch/x86/kernel/early_printk-xen.c |
--- linux-2.6.25/arch/x86/kernel/early_printk-xen.c 2008-05-23 20:51:11.000000000 +0200 |
726 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/early_printk-xen.c 2008-05-23 20:39:03.000000000 +0200 |
727 |
@@ -244,20 +244,16 @@ |
@@ -244,20 +244,16 @@ |
728 |
|
|
729 |
static int __initdata keep_early; |
static int __initdata keep_early; |
770 |
} |
} |
771 |
|
|
772 |
-__setup("earlyprintk=", setup_early_printk); |
-__setup("earlyprintk=", setup_early_printk); |
773 |
--- a/arch/x86/kernel/entry_32-xen.S |
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 |
774 |
+++ b/arch/x86/kernel/entry_32-xen.S |
--- linux-2.6.25/arch/x86/kernel/entry_32-xen.S 2008-05-23 20:51:22.000000000 +0200 |
775 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/entry_32-xen.S 2008-05-23 20:39:03.000000000 +0200 |
776 |
@@ -80,8 +80,12 @@ |
@@ -80,8 +80,12 @@ |
777 |
NMI_MASK = 0x80000000 |
NMI_MASK = 0x80000000 |
778 |
|
|
1145 |
.section .rodata,"a" |
.section .rodata,"a" |
1146 |
#include "syscall_table.S" |
#include "syscall_table.S" |
1147 |
|
|
1148 |
--- a/arch/x86/kernel/entry_64-xen.S |
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 |
1149 |
+++ b/arch/x86/kernel/entry_64-xen.S |
--- linux-2.6.25/arch/x86/kernel/entry_64-xen.S 2008-05-23 20:51:11.000000000 +0200 |
1150 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/entry_64-xen.S 2008-05-23 20:47:55.000000000 +0200 |
1151 |
@@ -4,9 +4,6 @@ |
@@ -4,9 +4,6 @@ |
1152 |
* Copyright (C) 1991, 1992 Linus Torvalds |
* Copyright (C) 1991, 1992 Linus Torvalds |
1153 |
* Copyright (C) 2000, 2001, 2002 Andi Kleen SuSE Labs |
* Copyright (C) 2000, 2001, 2002 Andi Kleen SuSE Labs |
1154 |
* Copyright (C) 2000 Pavel Machek <pavel@suse.cz> |
* Copyright (C) 2000 Pavel Machek <pavel@suse.cz> |
1155 |
- * |
- * |
1156 |
- * $Id: 1020-2.6.25-xen-patch-2.6.19.patch,v 1.1 2008-05-23 17:35:36 niro Exp $ |
- * $Id: 1020-2.6.25-xen-patch-2.6.19.patch,v 1.2 2008-05-23 18:49:01 niro Exp $ |
1157 |
- * |
- * |
1158 |
* Jun Nakajima <jun.nakajima@intel.com> |
* Jun Nakajima <jun.nakajima@intel.com> |
1159 |
* Asit Mallick <asit.k.mallick@intel.com> |
* Asit Mallick <asit.k.mallick@intel.com> |
1205 |
CFI_DEF_CFA rsp,SS+8-\ref |
CFI_DEF_CFA rsp,SS+8-\ref |
1206 |
/*CFI_REL_OFFSET ss,SS-\ref*/ |
/*CFI_REL_OFFSET ss,SS-\ref*/ |
1207 |
CFI_REL_OFFSET rsp,RSP-\ref |
CFI_REL_OFFSET rsp,RSP-\ref |
1208 |
@@ -334,6 +343,8 @@ |
@@ -255,6 +264,8 @@ |
1209 |
LOAD_ARGS ARGOFFSET /* reload args from stack in case ptrace changed it */ |
CFI_REMEMBER_STATE |
1210 |
RESTORE_REST |
jnz tracesys |
1211 |
cmpq $__NR_syscall_max,%rax |
cmpq $__NR_syscall_max,%rax |
1212 |
+ movq $-ENOSYS,%rcx |
+ movq $-ENOSYS,%rcx |
1213 |
+ cmova %rcx,%rax |
+ cmova %rcx,%rax |
1214 |
ja 1f |
ja badsys |
1215 |
movq %r10,%rcx /* fixup for C */ |
movq %r10,%rcx |
1216 |
call *sys_call_table(,%rax,8) |
call *sys_call_table(,%rax,8) # XXX: rip relative |
1217 |
@@ -349,6 +360,7 @@ |
@@ -349,6 +360,7 @@ |
1218 |
*/ |
*/ |
1219 |
ENTRY(int_ret_from_sys_call) |
ENTRY(int_ret_from_sys_call) |
1390 |
|
|
1391 |
ENTRY(alignment_check) |
ENTRY(alignment_check) |
1392 |
errorentry do_alignment_check |
errorentry do_alignment_check |
1393 |
--- a/arch/x86/kernel/genapic_xen_64.c |
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 |
1394 |
+++ b/arch/x86/kernel/genapic_xen_64.c |
--- linux-2.6.25/arch/x86/kernel/genapic_xen_64.c 2008-05-23 20:51:11.000000000 +0200 |
1395 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/genapic_xen_64.c 2008-05-23 20:39:03.000000000 +0200 |
1396 |
@@ -71,6 +71,13 @@ |
@@ -71,6 +71,13 @@ |
1397 |
return cpu_online_map; |
return cpu_online_map; |
1398 |
} |
} |
1417 |
#ifdef CONFIG_XEN_PRIVILEGED_GUEST |
#ifdef CONFIG_XEN_PRIVILEGED_GUEST |
1418 |
.apic_id_registered = xen_apic_id_registered, |
.apic_id_registered = xen_apic_id_registered, |
1419 |
#endif |
#endif |
1420 |
--- a/arch/x86/kernel/head64-xen.c |
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 |
1421 |
+++ b/arch/x86/kernel/head64-xen.c |
--- linux-2.6.25/arch/x86/kernel/head_32-xen.S 2008-05-23 20:51:11.000000000 +0200 |
1422 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/head_32-xen.S 2008-05-23 20:39:03.000000000 +0200 |
1423 |
|
@@ -62,7 +62,7 @@ |
1424 |
|
movl %eax,%gs |
1425 |
|
cld # gcc2 wants the direction flag cleared at all times |
1426 |
|
|
1427 |
|
- pushl %eax # fake return address |
1428 |
|
+ pushl $0 # fake return address for unwinder |
1429 |
|
jmp start_kernel |
1430 |
|
|
1431 |
|
#define HYPERCALL_PAGE_OFFSET 0x1000 |
1432 |
|
diff -Naur linux-2.6.25/arch/x86/kernel/head64-xen.c linux-2.6.25-xen/arch/x86/kernel/head64-xen.c |
1433 |
|
--- linux-2.6.25/arch/x86/kernel/head64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
1434 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/head64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
1435 |
@@ -54,11 +54,9 @@ |
@@ -54,11 +54,9 @@ |
1436 |
new_data = *(int *) (x86_boot_params + NEW_CL_POINTER); |
new_data = *(int *) (x86_boot_params + NEW_CL_POINTER); |
1437 |
if (!new_data) { |
if (!new_data) { |
1513 |
- setup_boot_cpu_data(); |
- setup_boot_cpu_data(); |
1514 |
start_kernel(); |
start_kernel(); |
1515 |
} |
} |
1516 |
--- a/arch/x86/kernel/head_32-xen.S |
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 |
1517 |
+++ b/arch/x86/kernel/head_32-xen.S |
--- linux-2.6.25/arch/x86/kernel/head_64-xen.S 2008-05-23 20:51:11.000000000 +0200 |
1518 |
@@ -62,7 +62,7 @@ |
+++ linux-2.6.25-xen/arch/x86/kernel/head_64-xen.S 2008-05-23 20:49:19.000000000 +0200 |
|
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 |
|
|
--- a/arch/x86/kernel/head_64-xen.S |
|
|
+++ b/arch/x86/kernel/head_64-xen.S |
|
1519 |
@@ -5,9 +5,6 @@ |
@@ -5,9 +5,6 @@ |
1520 |
* Copyright (C) 2000 Pavel Machek <pavel@suse.cz> |
* Copyright (C) 2000 Pavel Machek <pavel@suse.cz> |
1521 |
* Copyright (C) 2000 Karsten Keil <kkeil@suse.de> |
* Copyright (C) 2000 Karsten Keil <kkeil@suse.de> |
1522 |
* Copyright (C) 2001,2002 Andi Kleen <ak@suse.de> |
* Copyright (C) 2001,2002 Andi Kleen <ak@suse.de> |
1523 |
- * |
- * |
1524 |
- * $Id: 1020-2.6.25-xen-patch-2.6.19.patch,v 1.1 2008-05-23 17:35:36 niro Exp $ |
- * $Id: 1020-2.6.25-xen-patch-2.6.19.patch,v 1.2 2008-05-23 18:49:01 niro Exp $ |
1525 |
- * |
- * |
1526 |
* Jun Nakajima <jun.nakajima@intel.com> |
* Jun Nakajima <jun.nakajima@intel.com> |
1527 |
* Modified for Xen |
* Modified for Xen |
1535 |
gdt_end: |
gdt_end: |
1536 |
/* asm/segment.h:GDT_ENTRIES must match this */ |
/* asm/segment.h:GDT_ENTRIES must match this */ |
1537 |
/* This should be a multiple of the cache line size */ |
/* This should be a multiple of the cache line size */ |
1538 |
--- a/arch/x86/kernel/io_apic_32-xen.c |
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 |
1539 |
+++ b/arch/x86/kernel/io_apic_32-xen.c |
--- linux-2.6.25/arch/x86/kernel/io_apic_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
1540 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/io_apic_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
1541 |
@@ -31,6 +31,9 @@ |
@@ -31,6 +31,9 @@ |
1542 |
#include <linux/acpi.h> |
#include <linux/acpi.h> |
1543 |
#include <linux/module.h> |
#include <linux/module.h> |
2612 |
+ return 0; |
+ return 0; |
2613 |
+} |
+} |
2614 |
+early_param("noapic", parse_noapic); |
+early_param("noapic", parse_noapic); |
2615 |
--- a/arch/x86/kernel/io_apic_64-xen.c |
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 |
2616 |
+++ b/arch/x86/kernel/io_apic_64-xen.c |
--- linux-2.6.25/arch/x86/kernel/io_apic_64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
2617 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/io_apic_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
2618 |
@@ -26,9 +26,12 @@ |
@@ -26,9 +26,12 @@ |
2619 |
#include <linux/delay.h> |
#include <linux/delay.h> |
2620 |
#include <linux/sched.h> |
#include <linux/sched.h> |
2742 |
apic_op.value = value; |
apic_op.value = value; |
2743 |
WARN_ON(HYPERVISOR_physdev_op(PHYSDEVOP_apic_write, &apic_op)); |
WARN_ON(HYPERVISOR_physdev_op(PHYSDEVOP_apic_write, &apic_op)); |
2744 |
+#endif |
+#endif |
2745 |
} |
+} |
2746 |
|
+ |
|
-#define io_apic_read(a,r) xen_io_apic_read(a,r) |
|
|
-#define io_apic_write(a,r,v) xen_io_apic_write(a,r,v) |
|
2747 |
+#ifndef CONFIG_XEN |
+#ifndef CONFIG_XEN |
2748 |
+/* |
+/* |
2749 |
+ * Re-write a value: to be used for read-modify-write |
+ * Re-write a value: to be used for read-modify-write |
2753 |
+{ |
+{ |
2754 |
+ struct io_apic __iomem *io_apic = io_apic_base(apic); |
+ struct io_apic __iomem *io_apic = io_apic_base(apic); |
2755 |
+ writel(value, &io_apic->data); |
+ writel(value, &io_apic->data); |
2756 |
+} |
} |
2757 |
+#else |
+#else |
2758 |
+#define io_apic_modify io_apic_write |
+#define io_apic_modify io_apic_write |
2759 |
+#endif |
+#endif |
2760 |
|
|
2761 |
-#define clear_IO_APIC() ((void)0) |
-#define io_apic_read(a,r) xen_io_apic_read(a,r) |
2762 |
|
-#define io_apic_write(a,r,v) xen_io_apic_write(a,r,v) |
2763 |
+/* |
+/* |
2764 |
+ * Synchronize the IO-APIC and the CPU by doing |
+ * Synchronize the IO-APIC and the CPU by doing |
2765 |
+ * a dummy read from the IO-APIC |
+ * a dummy read from the IO-APIC |
2772 |
+#endif |
+#endif |
2773 |
+} |
+} |
2774 |
|
|
2775 |
-#else |
-#define clear_IO_APIC() ((void)0) |
2776 |
+union entry_union { |
+union entry_union { |
2777 |
+ struct { u32 w1, w2; }; |
+ struct { u32 w1, w2; }; |
2778 |
+ struct IO_APIC_route_entry entry; |
+ struct IO_APIC_route_entry entry; |
2779 |
+}; |
+}; |
2780 |
+ |
|
2781 |
|
-#else |
2782 |
+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) |
2783 |
+{ |
+{ |
2784 |
+ union entry_union eu; |
+ union entry_union eu; |
4306 |
spin_unlock_irqrestore(&ioapic_lock, flags); |
spin_unlock_irqrestore(&ioapic_lock, flags); |
4307 |
|
|
4308 |
return 0; |
return 0; |
4309 |
--- a/arch/x86/kernel/ioport_64-xen.c |
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 |
4310 |
+++ b/arch/x86/kernel/ioport_64-xen.c |
--- linux-2.6.25/arch/x86/kernel/ioport_64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
4311 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/ioport_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
4312 |
@@ -58,6 +58,7 @@ |
@@ -58,6 +58,7 @@ |
4313 |
|
|
4314 |
memset(bitmap, 0xff, IO_BITMAP_BYTES); |
memset(bitmap, 0xff, IO_BITMAP_BYTES); |
4317 |
|
|
4318 |
set_xen_guest_handle(set_iobitmap.bitmap, (char *)bitmap); |
set_xen_guest_handle(set_iobitmap.bitmap, (char *)bitmap); |
4319 |
set_iobitmap.nr_ports = IO_BITMAP_BITS; |
set_iobitmap.nr_ports = IO_BITMAP_BITS; |
4320 |
--- a/arch/x86/kernel/irq_32-xen.c |
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 |
4321 |
+++ b/arch/x86/kernel/irq_32-xen.c |
--- linux-2.6.25/arch/x86/kernel/irq_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
4322 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/irq_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
4323 |
@@ -53,8 +53,10 @@ |
@@ -53,8 +53,10 @@ |
4324 |
*/ |
*/ |
4325 |
fastcall unsigned int do_IRQ(struct pt_regs *regs) |
fastcall unsigned int do_IRQ(struct pt_regs *regs) |
4376 |
seq_printf(p, " %s", action->name); |
seq_printf(p, " %s", action->name); |
4377 |
|
|
4378 |
for (action=action->next; action; action = action->next) |
for (action=action->next; action; action = action->next) |
4379 |
--- a/arch/x86/kernel/irq_64-xen.c |
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 |
4380 |
+++ b/arch/x86/kernel/irq_64-xen.c |
--- linux-2.6.25/arch/x86/kernel/irq_64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
4381 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/irq_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
4382 |
@@ -20,11 +20,6 @@ |
@@ -20,11 +20,6 @@ |
4383 |
#include <asm/idle.h> |
#include <asm/idle.h> |
4384 |
|
|
4458 |
+ printk("unexpected IRQ trap at irq %02x\n", irq); |
+ printk("unexpected IRQ trap at irq %02x\n", irq); |
4459 |
} |
} |
4460 |
#endif |
#endif |
4461 |
--- a/arch/x86/kernel/ldt_32-xen.c |
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 |
4462 |
+++ b/arch/x86/kernel/ldt_32-xen.c |
--- linux-2.6.25/arch/x86/kernel/ldt_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
4463 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/ldt_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
4464 |
@@ -1,5 +1,5 @@ |
@@ -1,5 +1,5 @@ |
4465 |
/* |
/* |
4466 |
- * linux/kernel/ldt.c |
- * linux/kernel/ldt.c |
4468 |
* |
* |
4469 |
* Copyright (C) 1992 Krishna Balasubramanian and Linus Torvalds |
* Copyright (C) 1992 Krishna Balasubramanian and Linus Torvalds |
4470 |
* Copyright (C) 1999 Ingo Molnar <mingo@redhat.com> |
* Copyright (C) 1999 Ingo Molnar <mingo@redhat.com> |
4471 |
--- a/arch/x86/kernel/microcode-xen.c |
diff -Naur linux-2.6.25/arch/x86/kernel/Makefile linux-2.6.25-xen/arch/x86/kernel/Makefile |
4472 |
+++ b/arch/x86/kernel/microcode-xen.c |
--- linux-2.6.25/arch/x86/kernel/Makefile 2008-05-23 20:51:22.000000000 +0200 |
4473 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/Makefile 2008-05-23 20:39:03.000000000 +0200 |
4474 |
|
@@ -91,7 +91,7 @@ |
4475 |
|
### |
4476 |
|
# 64 bit specific files |
4477 |
|
ifeq ($(CONFIG_X86_64),y) |
4478 |
|
- obj-y += genapic_64.o genapic_flat_64.o |
4479 |
|
+ obj-$(CONFIG_X86_LOCAL_APIC) += genapic_64.o genapic_flat_64.o |
4480 |
|
obj-$(CONFIG_X86_XEN_GENAPIC) += genapic_64.o genapic_xen_64.o |
4481 |
|
obj-$(CONFIG_X86_PM_TIMER) += pmtimer_64.o |
4482 |
|
obj-$(CONFIG_AUDIT) += audit_64.o |
4483 |
|
@@ -104,5 +104,6 @@ |
4484 |
|
pci-dma_64-$(CONFIG_XEN) += pci-dma_32.o |
4485 |
|
endif |
4486 |
|
|
4487 |
|
-disabled-obj-$(CONFIG_XEN) := i8253.o i8259_$(BITS).o reboot.o smpboot_$(BITS).o tsc_$(BITS).o |
4488 |
|
+disabled-obj-$(CONFIG_XEN) := early-quirks.o i8253.o i8259_$(BITS).o reboot.o \ |
4489 |
|
+ smpboot_$(BITS).o tsc_$(BITS).o |
4490 |
|
%/head_$(BITS).o %/head_$(BITS).s: $(if $(CONFIG_XEN),EXTRA_AFLAGS,dummy) := |
4491 |
|
diff -Naur linux-2.6.25/arch/x86/kernel/microcode-xen.c linux-2.6.25-xen/arch/x86/kernel/microcode-xen.c |
4492 |
|
--- linux-2.6.25/arch/x86/kernel/microcode-xen.c 2008-05-23 20:51:11.000000000 +0200 |
4493 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/microcode-xen.c 2008-05-23 20:39:03.000000000 +0200 |
4494 |
@@ -2,6 +2,7 @@ |
@@ -2,6 +2,7 @@ |
4495 |
* Intel CPU Microcode Update Driver for Linux |
* Intel CPU Microcode Update Driver for Linux |
4496 |
* |
* |
4626 |
module_init(microcode_init) |
module_init(microcode_init) |
4627 |
module_exit(microcode_exit) |
module_exit(microcode_exit) |
4628 |
-MODULE_ALIAS_MISCDEV(MICROCODE_MINOR); |
-MODULE_ALIAS_MISCDEV(MICROCODE_MINOR); |
4629 |
--- a/arch/x86/kernel/mpparse_32-xen.c |
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 |
4630 |
+++ b/arch/x86/kernel/mpparse_32-xen.c |
--- linux-2.6.25/arch/x86/kernel/mpparse_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
4631 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/mpparse_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
4632 |
@@ -30,6 +30,7 @@ |
@@ -30,6 +30,7 @@ |
4633 |
#include <asm/io_apic.h> |
#include <asm/io_apic.h> |
4634 |
|
|
4795 |
/* |
/* |
4796 |
* Mapping between Global System Interrups, which |
* Mapping between Global System Interrups, which |
4797 |
* represent all possible interrupts, and IRQs |
* represent all possible interrupts, and IRQs |
4798 |
--- a/arch/x86/kernel/mpparse_64-xen.c |
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 |
4799 |
+++ b/arch/x86/kernel/mpparse_64-xen.c |
--- linux-2.6.25/arch/x86/kernel/mpparse_64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
4800 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/mpparse_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
4801 |
@@ -41,8 +41,7 @@ |
@@ -41,8 +41,7 @@ |
4802 |
* Various Linux-internal data structures created from the |
* Various Linux-internal data structures created from the |
4803 |
* MP-table. |
* MP-table. |
5411 |
- |
- |
5412 |
-#endif /*CONFIG_X86_IO_APIC*/ |
-#endif /*CONFIG_X86_IO_APIC*/ |
5413 |
#endif /*CONFIG_ACPI*/ |
#endif /*CONFIG_ACPI*/ |
5414 |
--- a/arch/x86/kernel/pci-dma_32-xen.c |
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 |
5415 |
+++ b/arch/x86/kernel/pci-dma_32-xen.c |
--- linux-2.6.25/arch/x86/kernel/pci-dma_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
5416 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/pci-dma_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
5417 |
@@ -116,8 +116,7 @@ |
@@ -116,8 +116,7 @@ |
5418 |
{ |
{ |
5419 |
int i, rc; |
int i, rc; |
5472 |
if (swiotlb) |
if (swiotlb) |
5473 |
swiotlb_unmap_single(dev, dma_addr, size, direction); |
swiotlb_unmap_single(dev, dma_addr, size, direction); |
5474 |
else |
else |
5475 |
--- a/arch/x86/kernel/pci-swiotlb_64-xen.c |
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 |
5476 |
+++ b/arch/x86/kernel/pci-swiotlb_64-xen.c |
--- linux-2.6.25/arch/x86/kernel/pci-swiotlb_64-xen.c 2008-05-23 20:51:21.000000000 +0200 |
5477 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/pci-swiotlb_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
5478 |
@@ -3,7 +3,8 @@ |
@@ -3,7 +3,8 @@ |
5479 |
#include <linux/pci.h> |
#include <linux/pci.h> |
5480 |
#include <linux/cache.h> |
#include <linux/cache.h> |
5485 |
#include <asm/proto.h> |
#include <asm/proto.h> |
5486 |
#include <asm/swiotlb.h> |
#include <asm/swiotlb.h> |
5487 |
#include <asm/dma.h> |
#include <asm/dma.h> |
5488 |
--- a/arch/x86/kernel/process_32-xen.c |
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 |
5489 |
+++ b/arch/x86/kernel/process_32-xen.c |
--- linux-2.6.25/arch/x86/kernel/process_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
5490 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/process_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
5491 |
@@ -37,6 +37,7 @@ |
@@ -37,6 +37,7 @@ |
5492 |
#include <linux/kallsyms.h> |
#include <linux/kallsyms.h> |
5493 |
#include <linux/ptrace.h> |
#include <linux/ptrace.h> |
5577 |
sp -= get_random_int() % 8192; |
sp -= get_random_int() % 8192; |
5578 |
return sp & ~0xf; |
return sp & ~0xf; |
5579 |
} |
} |
5580 |
--- a/arch/x86/kernel/process_64-xen.c |
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 |
5581 |
+++ b/arch/x86/kernel/process_64-xen.c |
--- linux-2.6.25/arch/x86/kernel/process_64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
5582 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/process_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
5583 |
@@ -89,25 +89,24 @@ |
@@ -89,25 +89,24 @@ |
5584 |
} |
} |
5585 |
EXPORT_SYMBOL(idle_notifier_unregister); |
EXPORT_SYMBOL(idle_notifier_unregister); |
5786 |
sp -= get_random_int() % 8192; |
sp -= get_random_int() % 8192; |
5787 |
return sp & ~0xf; |
return sp & ~0xf; |
5788 |
} |
} |
5789 |
--- a/arch/x86/kernel/setup64-xen.c |
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 |
5790 |
+++ b/arch/x86/kernel/setup64-xen.c |
--- linux-2.6.25/arch/x86/kernel/setup_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
5791 |
@@ -31,7 +31,7 @@ |
+++ linux-2.6.25-xen/arch/x86/kernel/setup_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
|
#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; |
|
|
} |
|
|
|
|
|
--- a/arch/x86/kernel/setup_32-xen.c |
|
|
+++ b/arch/x86/kernel/setup_32-xen.c |
|
5792 |
@@ -56,6 +56,7 @@ |
@@ -56,6 +56,7 @@ |
5793 |
#include <asm/apic.h> |
#include <asm/apic.h> |
5794 |
#include <asm/e820.h> |
#include <asm/e820.h> |
6070 |
|
|
6071 |
- else if (!memcmp(from, "acpi_sci=edge", 13)) |
- else if (!memcmp(from, "acpi_sci=edge", 13)) |
6072 |
- acpi_sci_flags.trigger = 1; |
- acpi_sci_flags.trigger = 1; |
6073 |
|
- |
6074 |
|
- else if (!memcmp(from, "acpi_sci=level", 14)) |
6075 |
|
- acpi_sci_flags.trigger = 3; |
6076 |
+#ifdef CONFIG_PROC_VMCORE |
+#ifdef CONFIG_PROC_VMCORE |
6077 |
+/* elfcorehdr= specifies the location of elf core header |
+/* elfcorehdr= specifies the location of elf core header |
6078 |
+ * stored by the crashed kernel. |
+ * stored by the crashed kernel. |
6082 |
+ if (!arg) |
+ if (!arg) |
6083 |
+ return -EINVAL; |
+ return -EINVAL; |
6084 |
|
|
6085 |
- else if (!memcmp(from, "acpi_sci=level", 14)) |
- else if (!memcmp(from, "acpi_sci=high", 13)) |
6086 |
- acpi_sci_flags.trigger = 3; |
- acpi_sci_flags.polarity = 1; |
6087 |
+ elfcorehdr_addr = memparse(arg, &arg); |
+ elfcorehdr_addr = memparse(arg, &arg); |
6088 |
+ return 0; |
+ return 0; |
6089 |
+} |
+} |
6090 |
+early_param("elfcorehdr", parse_elfcorehdr); |
+early_param("elfcorehdr", parse_elfcorehdr); |
6091 |
+#endif /* CONFIG_PROC_VMCORE */ |
+#endif /* CONFIG_PROC_VMCORE */ |
6092 |
|
|
6093 |
- else if (!memcmp(from, "acpi_sci=high", 13)) |
- else if (!memcmp(from, "acpi_sci=low", 12)) |
6094 |
- acpi_sci_flags.polarity = 1; |
- acpi_sci_flags.polarity = 3; |
6095 |
+/* |
+/* |
6096 |
+ * highmem=size forces highmem to be exactly 'size' bytes. |
+ * highmem=size forces highmem to be exactly 'size' bytes. |
6097 |
+ * This works even on boxes that have no highmem otherwise. |
+ * This works even on boxes that have no highmem otherwise. |
6102 |
+ if (!arg) |
+ if (!arg) |
6103 |
+ return -EINVAL; |
+ return -EINVAL; |
6104 |
|
|
6105 |
- else if (!memcmp(from, "acpi_sci=low", 12)) |
-#ifdef CONFIG_X86_IO_APIC |
6106 |
- acpi_sci_flags.polarity = 3; |
- else if (!memcmp(from, "acpi_skip_timer_override", 24)) |
6107 |
|
- acpi_skip_timer_override = 1; |
6108 |
+ highmem_pages = memparse(arg, &arg) >> PAGE_SHIFT; |
+ highmem_pages = memparse(arg, &arg) >> PAGE_SHIFT; |
6109 |
+ return 0; |
+ return 0; |
6110 |
+} |
+} |
6111 |
+early_param("highmem", parse_highmem); |
+early_param("highmem", parse_highmem); |
6112 |
|
|
|
-#ifdef CONFIG_X86_IO_APIC |
|
|
- else if (!memcmp(from, "acpi_skip_timer_override", 24)) |
|
|
- acpi_skip_timer_override = 1; |
|
|
+/* |
|
|
+ * vmalloc=size forces the vmalloc area to be exactly 'size' |
|
|
+ * bytes. This can be used to increase (or decrease) the |
|
|
+ * vmalloc area - the default is 128m. |
|
|
+ */ |
|
|
+static int __init parse_vmalloc(char *arg) |
|
|
+{ |
|
|
+ if (!arg) |
|
|
+ return -EINVAL; |
|
|
|
|
6113 |
- if (!memcmp(from, "disable_timer_pin_1", 19)) |
- if (!memcmp(from, "disable_timer_pin_1", 19)) |
6114 |
- disable_timer_pin_1 = 1; |
- disable_timer_pin_1 = 1; |
6115 |
- if (!memcmp(from, "enable_timer_pin_1", 18)) |
- if (!memcmp(from, "enable_timer_pin_1", 18)) |
6120 |
- disable_ioapic_setup(); |
- disable_ioapic_setup(); |
6121 |
-#endif /* CONFIG_X86_IO_APIC */ |
-#endif /* CONFIG_X86_IO_APIC */ |
6122 |
-#endif /* CONFIG_ACPI */ |
-#endif /* CONFIG_ACPI */ |
6123 |
- |
+/* |
6124 |
|
+ * vmalloc=size forces the vmalloc area to be exactly 'size' |
6125 |
|
+ * bytes. This can be used to increase (or decrease) the |
6126 |
|
+ * vmalloc area - the default is 128m. |
6127 |
|
+ */ |
6128 |
|
+static int __init parse_vmalloc(char *arg) |
6129 |
|
+{ |
6130 |
|
+ if (!arg) |
6131 |
|
+ return -EINVAL; |
6132 |
|
|
6133 |
-#ifdef CONFIG_X86_LOCAL_APIC |
-#ifdef CONFIG_X86_LOCAL_APIC |
6134 |
- /* enable local APIC */ |
- /* enable local APIC */ |
6135 |
- else if (!memcmp(from, "lapic", 5)) |
- else if (!memcmp(from, "lapic", 5)) |
6351 |
|
|
6352 |
#ifdef CONFIG_ACPI |
#ifdef CONFIG_ACPI |
6353 |
acpi_boot_init(); |
acpi_boot_init(); |
6354 |
--- a/arch/x86/kernel/setup_64-xen.c |
diff -Naur linux-2.6.25/arch/x86/kernel/setup64-xen.c linux-2.6.25-xen/arch/x86/kernel/setup64-xen.c |
6355 |
+++ b/arch/x86/kernel/setup_64-xen.c |
--- linux-2.6.25/arch/x86/kernel/setup64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
6356 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/setup64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
6357 |
|
@@ -31,7 +31,7 @@ |
6358 |
|
#include <asm/hypervisor.h> |
6359 |
|
#endif |
6360 |
|
|
6361 |
|
-char x86_boot_params[BOOT_PARAM_SIZE] __initdata = {0,}; |
6362 |
|
+char x86_boot_params[BOOT_PARAM_SIZE] __initdata; |
6363 |
|
|
6364 |
|
cpumask_t cpu_initialized __cpuinitdata = CPU_MASK_NONE; |
6365 |
|
|
6366 |
|
@@ -55,8 +55,10 @@ |
6367 |
|
on Enable(default) |
6368 |
|
off Disable |
6369 |
|
*/ |
6370 |
|
-int __init nonx_setup(char *str) |
6371 |
|
+static int __init nonx_setup(char *str) |
6372 |
|
{ |
6373 |
|
+ if (!str) |
6374 |
|
+ return -EINVAL; |
6375 |
|
if (!strncmp(str, "on", 2)) { |
6376 |
|
__supported_pte_mask |= _PAGE_NX; |
6377 |
|
do_not_nx = 0; |
6378 |
|
@@ -64,9 +66,9 @@ |
6379 |
|
do_not_nx = 1; |
6380 |
|
__supported_pte_mask &= ~_PAGE_NX; |
6381 |
|
} |
6382 |
|
- return 1; |
6383 |
|
+ return 0; |
6384 |
|
} |
6385 |
|
-__setup("noexec=", nonx_setup); /* parsed early actually */ |
6386 |
|
+early_param("noexec", nonx_setup); |
6387 |
|
|
6388 |
|
int force_personality32 = 0; |
6389 |
|
|
6390 |
|
@@ -102,12 +104,9 @@ |
6391 |
|
#endif |
6392 |
|
|
6393 |
|
/* Copy section for each CPU (we discard the original) */ |
6394 |
|
- size = ALIGN(__per_cpu_end - __per_cpu_start, SMP_CACHE_BYTES); |
6395 |
|
-#ifdef CONFIG_MODULES |
6396 |
|
- if (size < PERCPU_ENOUGH_ROOM) |
6397 |
|
- size = PERCPU_ENOUGH_ROOM; |
6398 |
|
-#endif |
6399 |
|
+ size = PERCPU_ENOUGH_ROOM; |
6400 |
|
|
6401 |
|
+ printk(KERN_INFO "PERCPU: Allocating %lu bytes of per cpu data\n", size); |
6402 |
|
for_each_cpu_mask (i, cpu_possible_map) { |
6403 |
|
char *ptr; |
6404 |
|
|
6405 |
|
@@ -169,7 +168,10 @@ |
6406 |
|
/* Setup up data that may be needed in __get_free_pages early */ |
6407 |
|
asm volatile("movl %0,%%fs ; movl %0,%%gs" :: "r" (0)); |
6408 |
|
#ifndef CONFIG_XEN |
6409 |
|
+ /* Memory clobbers used to order PDA accessed */ |
6410 |
|
+ mb(); |
6411 |
|
wrmsrl(MSR_GS_BASE, pda); |
6412 |
|
+ mb(); |
6413 |
|
#else |
6414 |
|
if (HYPERVISOR_set_segment_base(SEGBASE_GS_KERNEL, |
6415 |
|
(unsigned long)pda)) |
6416 |
|
@@ -302,28 +304,17 @@ |
6417 |
|
* set up and load the per-CPU TSS |
6418 |
|
*/ |
6419 |
|
for (v = 0; v < N_EXCEPTION_STACKS; v++) { |
6420 |
|
+ static const unsigned int order[N_EXCEPTION_STACKS] = { |
6421 |
|
+ [0 ... N_EXCEPTION_STACKS - 1] = EXCEPTION_STACK_ORDER, |
6422 |
|
+ [DEBUG_STACK - 1] = DEBUG_STACK_ORDER |
6423 |
|
+ }; |
6424 |
|
if (cpu) { |
6425 |
|
- static const unsigned int order[N_EXCEPTION_STACKS] = { |
6426 |
|
- [0 ... N_EXCEPTION_STACKS - 1] = EXCEPTION_STACK_ORDER, |
6427 |
|
- [DEBUG_STACK - 1] = DEBUG_STACK_ORDER |
6428 |
|
- }; |
6429 |
|
- |
6430 |
|
estacks = (char *)__get_free_pages(GFP_ATOMIC, order[v]); |
6431 |
|
if (!estacks) |
6432 |
|
panic("Cannot allocate exception stack %ld %d\n", |
6433 |
|
v, cpu); |
6434 |
|
} |
6435 |
|
- switch (v + 1) { |
6436 |
|
-#if DEBUG_STKSZ > EXCEPTION_STKSZ |
6437 |
|
- case DEBUG_STACK: |
6438 |
|
- cpu_pda(cpu)->debugstack = (unsigned long)estacks; |
6439 |
|
- estacks += DEBUG_STKSZ; |
6440 |
|
- break; |
6441 |
|
-#endif |
6442 |
|
- default: |
6443 |
|
- estacks += EXCEPTION_STKSZ; |
6444 |
|
- break; |
6445 |
|
- } |
6446 |
|
+ estacks += PAGE_SIZE << order[v]; |
6447 |
|
orig_ist->ist[v] = t->ist[v] = (unsigned long)estacks; |
6448 |
|
} |
6449 |
|
|
6450 |
|
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 |
6451 |
|
--- linux-2.6.25/arch/x86/kernel/setup_64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
6452 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/setup_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
6453 |
@@ -118,16 +118,6 @@ |
@@ -118,16 +118,6 @@ |
6454 |
|
|
6455 |
unsigned long mmu_cr4_features; |
unsigned long mmu_cr4_features; |
6873 |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
6874 |
|
|
6875 |
/* VIA/Cyrix/Centaur-defined */ |
/* VIA/Cyrix/Centaur-defined */ |
6876 |
--- a/arch/x86/kernel/smp_32-xen.c |
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 |
6877 |
+++ b/arch/x86/kernel/smp_32-xen.c |
--- linux-2.6.25/arch/x86/kernel/smp_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
6878 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/smp_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
6879 |
@@ -279,8 +279,7 @@ |
@@ -279,8 +279,7 @@ |
6880 |
* 2) Leave the mm if we are in the lazy tlb mode. |
* 2) Leave the mm if we are in the lazy tlb mode. |
6881 |
*/ |
*/ |
6975 |
+ return 0; |
+ return 0; |
6976 |
+} |
+} |
6977 |
+EXPORT_SYMBOL(smp_call_function_single); |
+EXPORT_SYMBOL(smp_call_function_single); |
6978 |
--- a/arch/x86/kernel/smp_64-xen.c |
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 |
6979 |
+++ b/arch/x86/kernel/smp_64-xen.c |
--- linux-2.6.25/arch/x86/kernel/smp_64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
6980 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/smp_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
6981 |
@@ -381,9 +381,8 @@ |
@@ -381,9 +381,8 @@ |
6982 |
/* prevent preemption and reschedule on another processor */ |
/* prevent preemption and reschedule on another processor */ |
6983 |
int me = get_cpu(); |
int me = get_cpu(); |
7039 |
- return 0; /* Should not happen */ |
- return 0; /* Should not happen */ |
7040 |
-#endif |
-#endif |
7041 |
-} |
-} |
7042 |
--- a/arch/x86/kernel/time_32-xen.c |
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 |
7043 |
+++ b/arch/x86/kernel/time_32-xen.c |
--- linux-2.6.25/arch/x86/kernel/time_32-xen.c 2008-05-23 20:51:22.000000000 +0200 |
7044 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/time_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
7045 |
@@ -89,7 +89,6 @@ |
@@ -89,7 +89,6 @@ |
7046 |
unsigned long vxtime_hz = PIT_TICK_RATE; |
unsigned long vxtime_hz = PIT_TICK_RATE; |
7047 |
struct vxtime_data __vxtime __section_vxtime; /* for vsyscalls */ |
struct vxtime_data __vxtime __section_vxtime; /* for vsyscalls */ |
7224 |
|
|
7225 |
if ((hpet_enable() >= 0) && hpet_use_timer) { |
if ((hpet_enable() >= 0) && hpet_use_timer) { |
7226 |
printk("Using HPET for base-timer\n"); |
printk("Using HPET for base-timer\n"); |
7227 |
--- a/arch/x86/kernel/traps_32-xen.c |
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 |
7228 |
+++ b/arch/x86/kernel/traps_32-xen.c |
--- linux-2.6.25/arch/x86/kernel/traps_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
7229 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/traps_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
7230 |
@@ -28,6 +28,7 @@ |
@@ -28,6 +28,7 @@ |
7231 |
#include <linux/kprobes.h> |
#include <linux/kprobes.h> |
7232 |
#include <linux/kexec.h> |
#include <linux/kexec.h> |
7429 |
} |
} |
7430 |
} |
} |
7431 |
+EXPORT_SYMBOL(dump_trace); |
+EXPORT_SYMBOL(dump_trace); |
7432 |
|
+ |
|
-void show_trace(struct task_struct *task, struct pt_regs *regs, unsigned long * stack) |
|
7433 |
+static void |
+static void |
7434 |
+print_trace_warning_symbol(void *data, char *msg, unsigned long symbol) |
+print_trace_warning_symbol(void *data, char *msg, unsigned long symbol) |
7435 |
+{ |
+{ |
7442 |
+{ |
+{ |
7443 |
+ printk("%s%s\n", (char *)data, msg); |
+ printk("%s%s\n", (char *)data, msg); |
7444 |
+} |
+} |
7445 |
+ |
|
7446 |
|
-void show_trace(struct task_struct *task, struct pt_regs *regs, unsigned long * stack) |
7447 |
+static int print_trace_stack(void *data, char *name) |
+static int print_trace_stack(void *data, char *name) |
7448 |
+{ |
+{ |
7449 |
+ return 0; |
+ return 0; |
7673 |
#ifdef CONFIG_KPROBES |
#ifdef CONFIG_KPROBES |
7674 |
fastcall void __kprobes do_int3(struct pt_regs *regs, long error_code) |
fastcall void __kprobes do_int3(struct pt_regs *regs, long error_code) |
7675 |
{ |
{ |
7676 |
--- a/arch/x86/kernel/traps_64-xen.c |
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 |
7677 |
+++ b/arch/x86/kernel/traps_64-xen.c |
--- linux-2.6.25/arch/x86/kernel/traps_64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
7678 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/traps_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
7679 |
@@ -23,6 +23,7 @@ |
@@ -23,6 +23,7 @@ |
7680 |
#include <linux/delay.h> |
#include <linux/delay.h> |
7681 |
#include <linux/spinlock.h> |
#include <linux/spinlock.h> |
8129 |
-__setup("call_trace=", call_trace_setup); |
-__setup("call_trace=", call_trace_setup); |
8130 |
+early_param("call_trace", call_trace_setup); |
+early_param("call_trace", call_trace_setup); |
8131 |
#endif |
#endif |
8132 |
--- a/arch/x86/kernel/vsyscall_64-xen.c |
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 |
8133 |
+++ b/arch/x86/kernel/vsyscall_64-xen.c |
--- linux-2.6.25/arch/x86/kernel/vsyscall_64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
8134 |
|
+++ linux-2.6.25-xen/arch/x86/kernel/vsyscall_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
8135 |
@@ -26,6 +26,10 @@ |
@@ -26,6 +26,10 @@ |
8136 |
#include <linux/seqlock.h> |
#include <linux/seqlock.h> |
8137 |
#include <linux/jiffies.h> |
#include <linux/jiffies.h> |
8325 |
return 0; |
return 0; |
8326 |
} |
} |
8327 |
|
|
8328 |
--- a/arch/x86/mach-xen/setup.c |
diff -Naur linux-2.6.25/arch/x86/mach-xen/setup.c linux-2.6.25-xen/arch/x86/mach-xen/setup.c |
8329 |
+++ b/arch/x86/mach-xen/setup.c |
--- linux-2.6.25/arch/x86/mach-xen/setup.c 2008-05-23 20:51:11.000000000 +0200 |
8330 |
|
+++ linux-2.6.25-xen/arch/x86/mach-xen/setup.c 2008-05-23 20:39:03.000000000 +0200 |
8331 |
@@ -103,8 +103,10 @@ |
@@ -103,8 +103,10 @@ |
8332 |
|
|
8333 |
setup_xen_features(); |
setup_xen_features(); |
8341 |
|
|
8342 |
if (HYPERVISOR_memory_op(XENMEM_machphys_mapping, &mapping) == 0) { |
if (HYPERVISOR_memory_op(XENMEM_machphys_mapping, &mapping) == 0) { |
8343 |
machine_to_phys_mapping = (unsigned long *)mapping.v_start; |
machine_to_phys_mapping = (unsigned long *)mapping.v_start; |
8344 |
--- a/arch/x86/mm/fault_32-xen.c |
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 |
8345 |
+++ b/arch/x86/mm/fault_32-xen.c |
--- linux-2.6.25/arch/x86/mm/fault_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
8346 |
|
+++ linux-2.6.25-xen/arch/x86/mm/fault_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
8347 |
@@ -27,21 +27,24 @@ |
@@ -27,21 +27,24 @@ |
8348 |
#include <asm/uaccess.h> |
#include <asm/uaccess.h> |
8349 |
#include <asm/desc.h> |
#include <asm/desc.h> |
8430 |
yield(); |
yield(); |
8431 |
down_read(&mm->mmap_sem); |
down_read(&mm->mmap_sem); |
8432 |
goto survive; |
goto survive; |
8433 |
--- a/arch/x86/mm/fault_64-xen.c |
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 |
8434 |
+++ b/arch/x86/mm/fault_64-xen.c |
--- linux-2.6.25/arch/x86/mm/fault_64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
8435 |
|
+++ linux-2.6.25-xen/arch/x86/mm/fault_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
8436 |
@@ -40,8 +40,7 @@ |
@@ -40,8 +40,7 @@ |
8437 |
#define PF_RSVD (1<<3) |
#define PF_RSVD (1<<3) |
8438 |
#define PF_INSTR (1<<4) |
#define PF_INSTR (1<<4) |
8570 |
} |
} |
8571 |
spin_unlock(&pgd_lock); |
spin_unlock(&pgd_lock); |
8572 |
set_bit(pgd_index(address), insync); |
set_bit(pgd_index(address), insync); |
8573 |
--- a/arch/x86/mm/highmem_32-xen.c |
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 |
8574 |
+++ b/arch/x86/mm/highmem_32-xen.c |
--- linux-2.6.25/arch/x86/mm/highmem_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
8575 |
|
+++ linux-2.6.25-xen/arch/x86/mm/highmem_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
8576 |
@@ -38,11 +38,9 @@ |
@@ -38,11 +38,9 @@ |
8577 |
|
|
8578 |
idx = type + KM_TYPE_NR*smp_processor_id(); |
idx = type + KM_TYPE_NR*smp_processor_id(); |
8639 |
|
|
8640 |
return (void*) vaddr; |
return (void*) vaddr; |
8641 |
} |
} |
8642 |
--- a/arch/x86/mm/hypervisor.c |
diff -Naur linux-2.6.25/arch/x86/mm/hypervisor.c linux-2.6.25-xen/arch/x86/mm/hypervisor.c |
8643 |
+++ b/arch/x86/mm/hypervisor.c |
--- linux-2.6.25/arch/x86/mm/hypervisor.c 2008-05-23 20:51:11.000000000 +0200 |
8644 |
|
+++ linux-2.6.25-xen/arch/x86/mm/hypervisor.c 2008-05-23 20:39:03.000000000 +0200 |
8645 |
@@ -569,7 +569,8 @@ |
@@ -569,7 +569,8 @@ |
8646 |
#define MAX_BATCHED_FULL_PTES 32 |
#define MAX_BATCHED_FULL_PTES 32 |
8647 |
|
|
8668 |
if (++i == MAX_BATCHED_FULL_PTES) { |
if (++i == MAX_BATCHED_FULL_PTES) { |
8669 |
if ((rc = HYPERVISOR_mmu_update( |
if ((rc = HYPERVISOR_mmu_update( |
8670 |
&u[0], i, NULL, DOMID_SELF)) != 0) |
&u[0], i, NULL, DOMID_SELF)) != 0) |
8671 |
--- a/arch/x86/mm/init_32-xen.c |
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 |
8672 |
+++ b/arch/x86/mm/init_32-xen.c |
--- linux-2.6.25/arch/x86/mm/init_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
8673 |
|
+++ linux-2.6.25-xen/arch/x86/mm/init_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
8674 |
@@ -464,16 +464,22 @@ |
@@ -464,16 +464,22 @@ |
8675 |
* on Enable |
* on Enable |
8676 |
* off Disable |
* off Disable |
8813 |
unsigned long start_pfn = start >> PAGE_SHIFT; |
unsigned long start_pfn = start >> PAGE_SHIFT; |
8814 |
unsigned long nr_pages = size >> PAGE_SHIFT; |
unsigned long nr_pages = size >> PAGE_SHIFT; |
8815 |
|
|
8816 |
--- a/arch/x86/mm/init_64-xen.c |
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 |
8817 |
+++ b/arch/x86/mm/init_64-xen.c |
--- linux-2.6.25/arch/x86/mm/init_64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
8818 |
|
+++ linux-2.6.25-xen/arch/x86/mm/init_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
8819 |
@@ -61,8 +61,6 @@ |
@@ -61,8 +61,6 @@ |
8820 |
|
|
8821 |
extern unsigned long *contiguous_bitmap; |
extern unsigned long *contiguous_bitmap; |
9127 |
} |
} |
9128 |
|
|
9129 |
int kern_addr_valid(unsigned long addr) |
int kern_addr_valid(unsigned long addr) |
9130 |
--- a/arch/x86/mm/ioremap_32-xen.c |
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 |
9131 |
+++ b/arch/x86/mm/ioremap_32-xen.c |
--- linux-2.6.25/arch/x86/mm/ioremap_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
9132 |
|
+++ linux-2.6.25-xen/arch/x86/mm/ioremap_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
9133 |
@@ -12,7 +12,7 @@ |
@@ -12,7 +12,7 @@ |
9134 |
#include <linux/init.h> |
#include <linux/init.h> |
9135 |
#include <linux/slab.h> |
#include <linux/slab.h> |
9177 |
vunmap((void __force *) addr); |
vunmap((void __force *) addr); |
9178 |
return NULL; |
return NULL; |
9179 |
} |
} |
9180 |
--- a/arch/x86/mm/pageattr_64-xen.c |
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 |
9181 |
+++ b/arch/x86/mm/pageattr_64-xen.c |
--- linux-2.6.25/arch/x86/mm/pageattr_64-xen.c 2008-05-23 20:51:11.000000000 +0200 |
9182 |
|
+++ linux-2.6.25-xen/arch/x86/mm/pageattr_64-xen.c 2008-05-23 20:39:03.000000000 +0200 |
9183 |
@@ -371,8 +371,8 @@ |
@@ -371,8 +371,8 @@ |
9184 |
BUG_ON(pud_none(*pud)); |
BUG_ON(pud_none(*pud)); |
9185 |
pmd = pmd_offset(pud, address); |
pmd = pmd_offset(pud, address); |
9244 |
} |
} |
9245 |
} |
} |
9246 |
up_write(&init_mm.mmap_sem); |
up_write(&init_mm.mmap_sem); |
9247 |
--- a/arch/x86/mm/pgtable_32-xen.c |
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 |
9248 |
+++ b/arch/x86/mm/pgtable_32-xen.c |
--- linux-2.6.25/arch/x86/mm/pgtable_32-xen.c 2008-05-23 20:51:11.000000000 +0200 |
9249 |
|
+++ linux-2.6.25-xen/arch/x86/mm/pgtable_32-xen.c 2008-05-23 20:39:03.000000000 +0200 |
9250 |
@@ -68,7 +68,9 @@ |
@@ -68,7 +68,9 @@ |
9251 |
printk(KERN_INFO "%lu pages writeback\n", |
printk(KERN_INFO "%lu pages writeback\n", |
9252 |
global_page_state(NR_WRITEBACK)); |
global_page_state(NR_WRITEBACK)); |
9302 |
} |
} |
9303 |
|
|
9304 |
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) |
9305 |
--- a/arch/x86/pci/irq-xen.c |
diff -Naur linux-2.6.25/arch/x86/pci/irq-xen.c linux-2.6.25-xen/arch/x86/pci/irq-xen.c |
9306 |
+++ b/arch/x86/pci/irq-xen.c |
--- linux-2.6.25/arch/x86/pci/irq-xen.c 2008-05-23 20:51:11.000000000 +0200 |
9307 |
|
+++ linux-2.6.25-xen/arch/x86/pci/irq-xen.c 2008-05-23 20:39:03.000000000 +0200 |
9308 |
@@ -991,10 +991,6 @@ |
@@ -991,10 +991,6 @@ |
9309 |
pci_name(bridge), 'A' + pin, irq); |
pci_name(bridge), 'A' + pin, irq); |
9310 |
} |
} |
9361 |
- |
- |
9362 |
- return count; |
- return count; |
9363 |
-} |
-} |
9364 |
--- a/drivers/char/tpm/tpm_xen.c |
diff -Naur linux-2.6.25/drivers/char/tpm/tpm_xen.c linux-2.6.25-xen/drivers/char/tpm/tpm_xen.c |
9365 |
+++ b/drivers/char/tpm/tpm_xen.c |
--- linux-2.6.25/drivers/char/tpm/tpm_xen.c 2008-05-23 20:51:15.000000000 +0200 |
9366 |
|
+++ linux-2.6.25-xen/drivers/char/tpm/tpm_xen.c 2008-05-23 20:39:03.000000000 +0200 |
9367 |
@@ -85,8 +85,7 @@ |
@@ -85,8 +85,7 @@ |
9368 |
|
|
9369 |
/* local function prototypes */ |
/* local function prototypes */ |
9383 |
{ |
{ |
9384 |
struct tpm_private *tp = tpm_priv; |
struct tpm_private *tp = tpm_priv; |
9385 |
unsigned long flags; |
unsigned long flags; |
9386 |
--- a/drivers/pci/Kconfig |
diff -Naur linux-2.6.25/drivers/pci/Kconfig linux-2.6.25-xen/drivers/pci/Kconfig |
9387 |
+++ b/drivers/pci/Kconfig |
--- linux-2.6.25/drivers/pci/Kconfig 2008-04-17 04:49:44.000000000 +0200 |
9388 |
|
+++ linux-2.6.25-xen/drivers/pci/Kconfig 2008-05-23 20:39:03.000000000 +0200 |
9389 |
@@ -45,7 +45,7 @@ |
@@ -45,7 +45,7 @@ |
9390 |
config HT_IRQ |
config HT_IRQ |
9391 |
bool "Interrupts on hypertransport devices" |
bool "Interrupts on hypertransport devices" |
9395 |
help |
help |
9396 |
This allows native hypertransport devices to use interrupts. |
This allows native hypertransport devices to use interrupts. |
9397 |
|
|
9398 |
--- a/drivers/xen/Kconfig |
diff -Naur linux-2.6.25/drivers/xen/balloon/balloon.c linux-2.6.25-xen/drivers/xen/balloon/balloon.c |
9399 |
+++ b/drivers/xen/Kconfig |
--- linux-2.6.25/drivers/xen/balloon/balloon.c 2008-05-23 20:51:11.000000000 +0200 |
9400 |
@@ -278,6 +278,9 @@ |
+++ linux-2.6.25-xen/drivers/xen/balloon/balloon.c 2008-05-23 20:39:03.000000000 +0200 |
|
config HAVE_IRQ_IGNORE_UNHANDLED |
|
|
def_bool y |
|
|
|
|
|
+config GENERIC_HARDIRQS_NO__DO_IRQ |
|
|
+ def_bool y |
|
|
+ |
|
|
config NO_IDLE_HZ |
|
|
def_bool y |
|
|
|
|
|
--- a/drivers/xen/balloon/balloon.c |
|
|
+++ b/drivers/xen/balloon/balloon.c |
|
9401 |
@@ -84,7 +84,7 @@ |
@@ -84,7 +84,7 @@ |
9402 |
/* VM /proc information for memory */ |
/* VM /proc information for memory */ |
9403 |
extern unsigned long totalram_pages; |
extern unsigned long totalram_pages; |
9407 |
extern unsigned long totalhigh_pages; |
extern unsigned long totalhigh_pages; |
9408 |
#define inc_totalhigh_pages() (totalhigh_pages++) |
#define inc_totalhigh_pages() (totalhigh_pages++) |
9409 |
#define dec_totalhigh_pages() (totalhigh_pages--) |
#define dec_totalhigh_pages() (totalhigh_pages--) |
9410 |
--- a/drivers/xen/blkback/blkback.c |
diff -Naur linux-2.6.25/drivers/xen/blkback/blkback.c linux-2.6.25-xen/drivers/xen/blkback/blkback.c |
9411 |
+++ b/drivers/xen/blkback/blkback.c |
--- linux-2.6.25/drivers/xen/blkback/blkback.c 2008-05-23 20:51:11.000000000 +0200 |
9412 |
|
+++ linux-2.6.25-xen/drivers/xen/blkback/blkback.c 2008-05-23 20:39:03.000000000 +0200 |
9413 |
@@ -288,7 +288,7 @@ |
@@ -288,7 +288,7 @@ |
9414 |
wake_up(&blkif->wq); |
wake_up(&blkif->wq); |
9415 |
} |
} |
9419 |
{ |
{ |
9420 |
blkif_notify_work(dev_id); |
blkif_notify_work(dev_id); |
9421 |
return IRQ_HANDLED; |
return IRQ_HANDLED; |
9422 |
--- a/drivers/xen/blkback/common.h |
diff -Naur linux-2.6.25/drivers/xen/blkback/common.h linux-2.6.25-xen/drivers/xen/blkback/common.h |
9423 |
+++ b/drivers/xen/blkback/common.h |
--- linux-2.6.25/drivers/xen/blkback/common.h 2008-05-23 20:51:11.000000000 +0200 |
9424 |
|
+++ linux-2.6.25-xen/drivers/xen/blkback/common.h 2008-05-23 20:39:03.000000000 +0200 |
9425 |
@@ -130,7 +130,7 @@ |
@@ -130,7 +130,7 @@ |
9426 |
|
|
9427 |
void blkif_xenbus_init(void); |
void blkif_xenbus_init(void); |
9431 |
int blkif_schedule(void *arg); |
int blkif_schedule(void *arg); |
9432 |
|
|
9433 |
int blkback_barrier(struct xenbus_transaction xbt, |
int blkback_barrier(struct xenbus_transaction xbt, |
9434 |
--- a/drivers/xen/blkfront/blkfront.c |
diff -Naur linux-2.6.25/drivers/xen/blkfront/blkfront.c linux-2.6.25-xen/drivers/xen/blkfront/blkfront.c |
9435 |
+++ b/drivers/xen/blkfront/blkfront.c |
--- linux-2.6.25/drivers/xen/blkfront/blkfront.c 2008-05-23 20:51:11.000000000 +0200 |
9436 |
|
+++ linux-2.6.25-xen/drivers/xen/blkfront/blkfront.c 2008-05-23 20:39:03.000000000 +0200 |
9437 |
@@ -69,7 +69,7 @@ |
@@ -69,7 +69,7 @@ |
9438 |
|
|
9439 |
static void kick_pending_request_queues(struct blkfront_info *); |
static void kick_pending_request_queues(struct blkfront_info *); |
9452 |
{ |
{ |
9453 |
struct request *req; |
struct request *req; |
9454 |
blkif_response_t *bret; |
blkif_response_t *bret; |
9455 |
--- a/drivers/xen/blktap/blktap.c |
diff -Naur linux-2.6.25/drivers/xen/blktap/blktap.c linux-2.6.25-xen/drivers/xen/blktap/blktap.c |
9456 |
+++ b/drivers/xen/blktap/blktap.c |
--- linux-2.6.25/drivers/xen/blktap/blktap.c 2008-05-23 20:51:11.000000000 +0200 |
9457 |
|
+++ linux-2.6.25-xen/drivers/xen/blktap/blktap.c 2008-05-23 20:39:03.000000000 +0200 |
9458 |
@@ -1175,7 +1175,7 @@ |
@@ -1175,7 +1175,7 @@ |
9459 |
wake_up(&blkif->wq); |
wake_up(&blkif->wq); |
9460 |
} |
} |
9464 |
{ |
{ |
9465 |
blkif_notify_work(dev_id); |
blkif_notify_work(dev_id); |
9466 |
return IRQ_HANDLED; |
return IRQ_HANDLED; |
9467 |
--- a/drivers/xen/blktap/common.h |
diff -Naur linux-2.6.25/drivers/xen/blktap/common.h linux-2.6.25-xen/drivers/xen/blktap/common.h |
9468 |
+++ b/drivers/xen/blktap/common.h |
--- linux-2.6.25/drivers/xen/blktap/common.h 2008-05-23 20:51:11.000000000 +0200 |
9469 |
|
+++ linux-2.6.25-xen/drivers/xen/blktap/common.h 2008-05-23 20:39:03.000000000 +0200 |
9470 |
@@ -112,7 +112,7 @@ |
@@ -112,7 +112,7 @@ |
9471 |
|
|
9472 |
void tap_blkif_xenbus_init(void); |
void tap_blkif_xenbus_init(void); |
9476 |
int tap_blkif_schedule(void *arg); |
int tap_blkif_schedule(void *arg); |
9477 |
|
|
9478 |
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); |
9479 |
--- a/drivers/xen/console/console.c |
diff -Naur linux-2.6.25/drivers/xen/console/console.c linux-2.6.25-xen/drivers/xen/console/console.c |
9480 |
+++ b/drivers/xen/console/console.c |
--- linux-2.6.25/drivers/xen/console/console.c 2008-05-23 20:51:11.000000000 +0200 |
9481 |
|
+++ linux-2.6.25-xen/drivers/xen/console/console.c 2008-05-23 20:39:03.000000000 +0200 |
9482 |
@@ -345,7 +345,7 @@ |
@@ -345,7 +345,7 @@ |
9483 |
static int xencons_priv_irq; |
static int xencons_priv_irq; |
9484 |
static char x_char; |
static char x_char; |
9515 |
|
|
9516 |
xencons_tx(); |
xencons_tx(); |
9517 |
|
|
9518 |
--- a/drivers/xen/console/xencons_ring.c |
diff -Naur linux-2.6.25/drivers/xen/console/xencons_ring.c linux-2.6.25-xen/drivers/xen/console/xencons_ring.c |
9519 |
+++ b/drivers/xen/console/xencons_ring.c |
--- linux-2.6.25/drivers/xen/console/xencons_ring.c 2008-05-23 20:51:11.000000000 +0200 |
9520 |
|
+++ linux-2.6.25-xen/drivers/xen/console/xencons_ring.c 2008-05-23 20:39:03.000000000 +0200 |
9521 |
@@ -83,7 +83,7 @@ |
@@ -83,7 +83,7 @@ |
9522 |
return sent; |
return sent; |
9523 |
} |
} |
9536 |
cons++; |
cons++; |
9537 |
} |
} |
9538 |
|
|
9539 |
--- a/drivers/xen/core/evtchn.c |
diff -Naur linux-2.6.25/drivers/xen/core/evtchn.c linux-2.6.25-xen/drivers/xen/core/evtchn.c |
9540 |
+++ b/drivers/xen/core/evtchn.c |
--- linux-2.6.25/drivers/xen/core/evtchn.c 2008-05-23 20:51:11.000000000 +0200 |
9541 |
|
+++ linux-2.6.25-xen/drivers/xen/core/evtchn.c 2008-05-23 20:39:03.000000000 +0200 |
9542 |
@@ -507,7 +507,7 @@ |
@@ -507,7 +507,7 @@ |
9543 |
|
|
9544 |
int bind_caller_port_to_irqhandler( |
int bind_caller_port_to_irqhandler( |
9680 |
+ handle_level_irq, "level"); |
+ handle_level_irq, "level"); |
9681 |
} |
} |
9682 |
} |
} |
9683 |
--- a/drivers/xen/core/reboot.c |
diff -Naur linux-2.6.25/drivers/xen/core/reboot.c linux-2.6.25-xen/drivers/xen/core/reboot.c |
9684 |
+++ b/drivers/xen/core/reboot.c |
--- linux-2.6.25/drivers/xen/core/reboot.c 2008-05-23 20:51:11.000000000 +0200 |
9685 |
|
+++ linux-2.6.25-xen/drivers/xen/core/reboot.c 2008-05-23 20:39:03.000000000 +0200 |
9686 |
@@ -13,6 +13,7 @@ |
@@ -13,6 +13,7 @@ |
9687 |
|
|
9688 |
#ifdef HAVE_XEN_PLATFORM_COMPAT_H |
#ifdef HAVE_XEN_PLATFORM_COMPAT_H |
9700 |
#endif |
#endif |
9701 |
} |
} |
9702 |
|
|
9703 |
--- a/drivers/xen/core/smpboot.c |
diff -Naur linux-2.6.25/drivers/xen/core/smpboot.c linux-2.6.25-xen/drivers/xen/core/smpboot.c |
9704 |
+++ b/drivers/xen/core/smpboot.c |
--- linux-2.6.25/drivers/xen/core/smpboot.c 2008-05-23 20:51:11.000000000 +0200 |
9705 |
|
+++ linux-2.6.25-xen/drivers/xen/core/smpboot.c 2008-05-23 20:39:03.000000000 +0200 |
9706 |
@@ -25,8 +25,8 @@ |
@@ -25,8 +25,8 @@ |
9707 |
#include <xen/cpu_hotplug.h> |
#include <xen/cpu_hotplug.h> |
9708 |
#include <xen/xenbus.h> |
#include <xen/xenbus.h> |
9723 |
#endif |
#endif |
9724 |
|
|
9725 |
void __init prefill_possible_map(void) |
void __init prefill_possible_map(void) |
9726 |
--- a/drivers/xen/fbfront/xenfb.c |
diff -Naur linux-2.6.25/drivers/xen/fbfront/xenfb.c linux-2.6.25-xen/drivers/xen/fbfront/xenfb.c |
9727 |
+++ b/drivers/xen/fbfront/xenfb.c |
--- linux-2.6.25/drivers/xen/fbfront/xenfb.c 2008-05-23 20:51:11.000000000 +0200 |
9728 |
|
+++ linux-2.6.25-xen/drivers/xen/fbfront/xenfb.c 2008-05-23 20:39:03.000000000 +0200 |
9729 |
@@ -523,8 +523,7 @@ |
@@ -523,8 +523,7 @@ |
9730 |
.fb_set_par = xenfb_set_par, |
.fb_set_par = xenfb_set_par, |
9731 |
}; |
}; |
9736 |
{ |
{ |
9737 |
/* |
/* |
9738 |
* No in events recognized, simply ignore them all. |
* No in events recognized, simply ignore them all. |
9739 |
--- a/drivers/xen/fbfront/xenkbd.c |
diff -Naur linux-2.6.25/drivers/xen/fbfront/xenkbd.c linux-2.6.25-xen/drivers/xen/fbfront/xenkbd.c |
9740 |
+++ b/drivers/xen/fbfront/xenkbd.c |
--- linux-2.6.25/drivers/xen/fbfront/xenkbd.c 2008-05-23 20:51:11.000000000 +0200 |
9741 |
|
+++ linux-2.6.25-xen/drivers/xen/fbfront/xenkbd.c 2008-05-23 20:39:03.000000000 +0200 |
9742 |
@@ -46,7 +46,7 @@ |
@@ -46,7 +46,7 @@ |
9743 |
* to do that. |
* to do that. |
9744 |
*/ |
*/ |
9748 |
{ |
{ |
9749 |
struct xenkbd_info *info = dev_id; |
struct xenkbd_info *info = dev_id; |
9750 |
struct xenkbd_page *page = info->page; |
struct xenkbd_page *page = info->page; |
9751 |
--- a/drivers/xen/gntdev/gntdev.c |
diff -Naur linux-2.6.25/drivers/xen/gntdev/gntdev.c linux-2.6.25-xen/drivers/xen/gntdev/gntdev.c |
9752 |
+++ b/drivers/xen/gntdev/gntdev.c |
--- linux-2.6.25/drivers/xen/gntdev/gntdev.c 2008-05-23 20:51:11.000000000 +0200 |
9753 |
|
+++ linux-2.6.25-xen/drivers/xen/gntdev/gntdev.c 2008-05-23 20:39:03.000000000 +0200 |
9754 |
@@ -755,9 +755,6 @@ |
@@ -755,9 +755,6 @@ |
9755 |
BUG(); |
BUG(); |
9756 |
} |
} |
9790 |
} |
} |
9791 |
|
|
9792 |
return copy; |
return copy; |
9793 |
--- a/drivers/xen/netback/accel.c |
diff -Naur linux-2.6.25/drivers/xen/Kconfig linux-2.6.25-xen/drivers/xen/Kconfig |
9794 |
+++ b/drivers/xen/netback/accel.c |
--- linux-2.6.25/drivers/xen/Kconfig 2008-05-23 20:51:14.000000000 +0200 |
9795 |
|
+++ linux-2.6.25-xen/drivers/xen/Kconfig 2008-05-23 20:39:03.000000000 +0200 |
9796 |
|
@@ -278,6 +278,9 @@ |
9797 |
|
config HAVE_IRQ_IGNORE_UNHANDLED |
9798 |
|
def_bool y |
9799 |
|
|
9800 |
|
+config GENERIC_HARDIRQS_NO__DO_IRQ |
9801 |
|
+ def_bool y |
9802 |
|
+ |
9803 |
|
config NO_IDLE_HZ |
9804 |
|
def_bool y |
9805 |
|
|
9806 |
|
diff -Naur linux-2.6.25/drivers/xen/netback/accel.c linux-2.6.25-xen/drivers/xen/netback/accel.c |
9807 |
|
--- linux-2.6.25/drivers/xen/netback/accel.c 2008-05-23 20:51:11.000000000 +0200 |
9808 |
|
+++ linux-2.6.25-xen/drivers/xen/netback/accel.c 2008-05-23 20:39:03.000000000 +0200 |
9809 |
@@ -65,7 +65,7 @@ |
@@ -65,7 +65,7 @@ |
9810 |
|
|
9811 |
if (IS_ERR(eth_name)) { |
if (IS_ERR(eth_name)) { |
9815 |
__FUNCTION__, PTR_ERR(eth_name)); |
__FUNCTION__, PTR_ERR(eth_name)); |
9816 |
return 0; |
return 0; |
9817 |
} else { |
} else { |
9818 |
--- a/drivers/xen/netback/common.h |
diff -Naur linux-2.6.25/drivers/xen/netback/common.h linux-2.6.25-xen/drivers/xen/netback/common.h |
9819 |
+++ b/drivers/xen/netback/common.h |
--- linux-2.6.25/drivers/xen/netback/common.h 2008-05-23 20:51:11.000000000 +0200 |
9820 |
|
+++ linux-2.6.25-xen/drivers/xen/netback/common.h 2008-05-23 20:39:03.000000000 +0200 |
9821 |
@@ -200,7 +200,7 @@ |
@@ -200,7 +200,7 @@ |
9822 |
|
|
9823 |
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); |
9827 |
|
|
9828 |
static inline int netbk_can_queue(struct net_device *dev) |
static inline int netbk_can_queue(struct net_device *dev) |
9829 |
{ |
{ |
9830 |
--- a/drivers/xen/netback/loopback.c |
diff -Naur linux-2.6.25/drivers/xen/netback/loopback.c linux-2.6.25-xen/drivers/xen/netback/loopback.c |
9831 |
+++ b/drivers/xen/netback/loopback.c |
--- linux-2.6.25/drivers/xen/netback/loopback.c 2008-05-23 20:51:11.000000000 +0200 |
9832 |
|
+++ linux-2.6.25-xen/drivers/xen/netback/loopback.c 2008-05-23 20:39:03.000000000 +0200 |
9833 |
@@ -151,7 +151,7 @@ |
@@ -151,7 +151,7 @@ |
9834 |
np->stats.rx_bytes += skb->len; |
np->stats.rx_bytes += skb->len; |
9835 |
np->stats.rx_packets++; |
np->stats.rx_packets++; |
9839 |
/* Defer checksum calculation. */ |
/* Defer checksum calculation. */ |
9840 |
skb->proto_csum_blank = 1; |
skb->proto_csum_blank = 1; |
9841 |
/* Must be a local packet: assert its integrity. */ |
/* Must be a local packet: assert its integrity. */ |
9842 |
--- a/drivers/xen/netback/netback.c |
diff -Naur linux-2.6.25/drivers/xen/netback/netback.c linux-2.6.25-xen/drivers/xen/netback/netback.c |
9843 |
+++ b/drivers/xen/netback/netback.c |
--- linux-2.6.25/drivers/xen/netback/netback.c 2008-05-23 20:51:11.000000000 +0200 |
9844 |
|
+++ linux-2.6.25-xen/drivers/xen/netback/netback.c 2008-05-23 20:39:03.000000000 +0200 |
9845 |
@@ -677,7 +677,7 @@ |
@@ -677,7 +677,7 @@ |
9846 |
id = meta[npo.meta_cons].id; |
id = meta[npo.meta_cons].id; |
9847 |
flags = nr_frags ? NETRXF_more_data : 0; |
flags = nr_frags ? NETRXF_more_data : 0; |
9869 |
{ |
{ |
9870 |
struct list_head *ent; |
struct list_head *ent; |
9871 |
netif_t *netif; |
netif_t *netif; |
9872 |
--- a/drivers/xen/netfront/netfront.c |
diff -Naur linux-2.6.25/drivers/xen/netfront/netfront.c linux-2.6.25-xen/drivers/xen/netfront/netfront.c |
9873 |
+++ b/drivers/xen/netfront/netfront.c |
--- linux-2.6.25/drivers/xen/netfront/netfront.c 2008-05-23 20:51:11.000000000 +0200 |
9874 |
|
+++ linux-2.6.25-xen/drivers/xen/netfront/netfront.c 2008-05-23 20:39:03.000000000 +0200 |
9875 |
@@ -136,7 +136,7 @@ |
@@ -136,7 +136,7 @@ |
9876 |
{ |
{ |
9877 |
return skb_is_gso(skb) && |
return skb_is_gso(skb) && |
9908 |
{ |
{ |
9909 |
struct net_device *dev = dev_id; |
struct net_device *dev = dev_id; |
9910 |
struct netfront_info *np = netdev_priv(dev); |
struct netfront_info *np = netdev_priv(dev); |
9911 |
--- a/drivers/xen/pciback/pciback.h |
diff -Naur linux-2.6.25/drivers/xen/pciback/pciback.h linux-2.6.25-xen/drivers/xen/pciback/pciback.h |
9912 |
+++ b/drivers/xen/pciback/pciback.h |
--- linux-2.6.25/drivers/xen/pciback/pciback.h 2008-05-23 20:51:11.000000000 +0200 |
9913 |
|
+++ linux-2.6.25-xen/drivers/xen/pciback/pciback.h 2008-05-23 20:39:03.000000000 +0200 |
9914 |
@@ -87,7 +87,7 @@ |
@@ -87,7 +87,7 @@ |
9915 |
void pciback_release_devices(struct pciback_device *pdev); |
void pciback_release_devices(struct pciback_device *pdev); |
9916 |
|
|
9920 |
void pciback_do_op(void *data); |
void pciback_do_op(void *data); |
9921 |
|
|
9922 |
int pciback_xenbus_register(void); |
int pciback_xenbus_register(void); |
9923 |
--- a/drivers/xen/pciback/pciback_ops.c |
diff -Naur linux-2.6.25/drivers/xen/pciback/pciback_ops.c linux-2.6.25-xen/drivers/xen/pciback/pciback_ops.c |
9924 |
+++ b/drivers/xen/pciback/pciback_ops.c |
--- linux-2.6.25/drivers/xen/pciback/pciback_ops.c 2008-05-23 20:51:11.000000000 +0200 |
9925 |
|
+++ linux-2.6.25-xen/drivers/xen/pciback/pciback_ops.c 2008-05-23 20:39:03.000000000 +0200 |
9926 |
@@ -85,7 +85,7 @@ |
@@ -85,7 +85,7 @@ |
9927 |
test_and_schedule_op(pdev); |
test_and_schedule_op(pdev); |
9928 |
} |
} |
9932 |
{ |
{ |
9933 |
struct pciback_device *pdev = dev_id; |
struct pciback_device *pdev = dev_id; |
9934 |
|
|
9935 |
--- a/drivers/xen/pcifront/pci_op.c |
diff -Naur linux-2.6.25/drivers/xen/pcifront/pci_op.c linux-2.6.25-xen/drivers/xen/pcifront/pci_op.c |
9936 |
+++ b/drivers/xen/pcifront/pci_op.c |
--- linux-2.6.25/drivers/xen/pcifront/pci_op.c 2008-05-23 20:51:11.000000000 +0200 |
9937 |
|
+++ linux-2.6.25-xen/drivers/xen/pcifront/pci_op.c 2008-05-23 20:39:03.000000000 +0200 |
9938 |
@@ -392,10 +392,16 @@ |
@@ -392,10 +392,16 @@ |
9939 |
|
|
9940 |
d = pci_scan_single_device(b, devfn); |
d = pci_scan_single_device(b, devfn); |
9953 |
} |
} |
9954 |
} |
} |
9955 |
|
|
9956 |
--- a/drivers/xen/privcmd/compat_privcmd.c |
diff -Naur linux-2.6.25/drivers/xen/privcmd/compat_privcmd.c linux-2.6.25-xen/drivers/xen/privcmd/compat_privcmd.c |
9957 |
+++ b/drivers/xen/privcmd/compat_privcmd.c |
--- linux-2.6.25/drivers/xen/privcmd/compat_privcmd.c 2008-05-23 20:51:11.000000000 +0200 |
9958 |
|
+++ linux-2.6.25-xen/drivers/xen/privcmd/compat_privcmd.c 2008-05-23 20:39:03.000000000 +0200 |
9959 |
@@ -18,7 +18,6 @@ |
@@ -18,7 +18,6 @@ |
9960 |
* Authors: Jimi Xenidis <jimix@watson.ibm.com> |
* Authors: Jimi Xenidis <jimix@watson.ibm.com> |
9961 |
*/ |
*/ |
9964 |
#include <linux/compat.h> |
#include <linux/compat.h> |
9965 |
#include <linux/ioctl.h> |
#include <linux/ioctl.h> |
9966 |
#include <linux/syscalls.h> |
#include <linux/syscalls.h> |
9967 |
--- a/drivers/xen/privcmd/privcmd.c |
diff -Naur linux-2.6.25/drivers/xen/privcmd/privcmd.c linux-2.6.25-xen/drivers/xen/privcmd/privcmd.c |
9968 |
+++ b/drivers/xen/privcmd/privcmd.c |
--- linux-2.6.25/drivers/xen/privcmd/privcmd.c 2008-05-23 20:51:11.000000000 +0200 |
9969 |
|
+++ linux-2.6.25-xen/drivers/xen/privcmd/privcmd.c 2008-05-23 20:39:03.000000000 +0200 |
9970 |
@@ -236,7 +236,7 @@ |
@@ -236,7 +236,7 @@ |
9971 |
#endif |
#endif |
9972 |
|
|
9976 |
vma->vm_ops = &privcmd_vm_ops; |
vma->vm_ops = &privcmd_vm_ops; |
9977 |
vma->vm_private_data = NULL; |
vma->vm_private_data = NULL; |
9978 |
|
|
9979 |
--- a/drivers/xen/sfc_netback/accel_xenbus.c |
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 |
9980 |
+++ b/drivers/xen/sfc_netback/accel_xenbus.c |
--- linux-2.6.25/drivers/xen/sfc_netback/accel_xenbus.c 2008-05-23 20:51:11.000000000 +0200 |
9981 |
|
+++ linux-2.6.25-xen/drivers/xen/sfc_netback/accel_xenbus.c 2008-05-23 20:39:03.000000000 +0200 |
9982 |
@@ -68,8 +68,7 @@ |
@@ -68,8 +68,7 @@ |
9983 |
|
|
9984 |
|
|
9999 |
{ |
{ |
10000 |
VPRINTK("netirq %d from device %s\n", irq, |
VPRINTK("netirq %d from device %s\n", irq, |
10001 |
((struct xenbus_device *)context)->nodename); |
((struct xenbus_device *)context)->nodename); |
10002 |
--- a/drivers/xen/sfc_netfront/accel.h |
diff -Naur linux-2.6.25/drivers/xen/sfc_netfront/accel.h linux-2.6.25-xen/drivers/xen/sfc_netfront/accel.h |
10003 |
+++ b/drivers/xen/sfc_netfront/accel.h |
--- linux-2.6.25/drivers/xen/sfc_netfront/accel.h 2008-05-23 20:51:11.000000000 +0200 |
10004 |
|
+++ linux-2.6.25-xen/drivers/xen/sfc_netfront/accel.h 2008-05-23 20:39:03.000000000 +0200 |
10005 |
@@ -449,10 +449,8 @@ |
@@ -449,10 +449,8 @@ |
10006 |
u32 ip, u16 port, u8 protocol); |
u32 ip, u16 port, u8 protocol); |
10007 |
|
|
10015 |
|
|
10016 |
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20) |
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20) |
10017 |
extern void netfront_accel_msg_from_bend(struct work_struct *context); |
extern void netfront_accel_msg_from_bend(struct work_struct *context); |
10018 |
--- a/drivers/xen/sfc_netfront/accel_msg.c |
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 |
10019 |
+++ b/drivers/xen/sfc_netfront/accel_msg.c |
--- linux-2.6.25/drivers/xen/sfc_netfront/accel_msg.c 2008-05-23 20:51:11.000000000 +0200 |
10020 |
|
+++ linux-2.6.25-xen/drivers/xen/sfc_netfront/accel_msg.c 2008-05-23 20:39:03.000000000 +0200 |
10021 |
@@ -490,8 +490,7 @@ |
@@ -490,8 +490,7 @@ |
10022 |
} |
} |
10023 |
|
|
10038 |
{ |
{ |
10039 |
netfront_accel_vnic *vnic = (netfront_accel_vnic *)context; |
netfront_accel_vnic *vnic = (netfront_accel_vnic *)context; |
10040 |
struct net_device *net_dev = vnic->net_dev; |
struct net_device *net_dev = vnic->net_dev; |
10041 |
--- a/drivers/xen/sfc_netfront/accel_tso.c |
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 |
10042 |
+++ b/drivers/xen/sfc_netfront/accel_tso.c |
--- linux-2.6.25/drivers/xen/sfc_netfront/accel_tso.c 2008-05-23 20:51:11.000000000 +0200 |
10043 |
|
+++ linux-2.6.25-xen/drivers/xen/sfc_netfront/accel_tso.c 2008-05-23 20:39:03.000000000 +0200 |
10044 |
@@ -363,7 +363,7 @@ |
@@ -363,7 +363,7 @@ |
10045 |
|
|
10046 |
tso_check_safe(skb); |
tso_check_safe(skb); |
10050 |
EPRINTK("Trying to TSO send a packet without HW checksum\n"); |
EPRINTK("Trying to TSO send a packet without HW checksum\n"); |
10051 |
|
|
10052 |
tso_start(&state, skb); |
tso_start(&state, skb); |
10053 |
--- a/drivers/xen/sfc_netfront/accel_vi.c |
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 |
10054 |
+++ b/drivers/xen/sfc_netfront/accel_vi.c |
--- linux-2.6.25/drivers/xen/sfc_netfront/accel_vi.c 2008-05-23 20:51:11.000000000 +0200 |
10055 |
|
+++ linux-2.6.25-xen/drivers/xen/sfc_netfront/accel_vi.c 2008-05-23 20:39:03.000000000 +0200 |
10056 |
@@ -461,7 +461,7 @@ |
@@ -461,7 +461,7 @@ |
10057 |
|
|
10058 |
frag_i = -1; |
frag_i = -1; |
10071 |
/* Set to zero to encourage falcon to work it out for us */ |
/* Set to zero to encourage falcon to work it out for us */ |
10072 |
*(u16*)(skb->h.raw + skb->csum) = 0; |
*(u16*)(skb->h.raw + skb->csum) = 0; |
10073 |
} |
} |
10074 |
--- a/drivers/xen/tpmback/common.h |
diff -Naur linux-2.6.25/drivers/xen/tpmback/common.h linux-2.6.25-xen/drivers/xen/tpmback/common.h |
10075 |
+++ b/drivers/xen/tpmback/common.h |
--- linux-2.6.25/drivers/xen/tpmback/common.h 2008-05-23 20:51:11.000000000 +0200 |
10076 |
|
+++ linux-2.6.25-xen/drivers/xen/tpmback/common.h 2008-05-23 20:39:03.000000000 +0200 |
10077 |
@@ -61,7 +61,7 @@ |
@@ -61,7 +61,7 @@ |
10078 |
void tpmif_xenbus_init(void); |
void tpmif_xenbus_init(void); |
10079 |
void tpmif_xenbus_exit(void); |
void tpmif_xenbus_exit(void); |
10083 |
|
|
10084 |
long int tpmback_get_instance(struct backend_info *bi); |
long int tpmback_get_instance(struct backend_info *bi); |
10085 |
|
|
10086 |
--- a/drivers/xen/tpmback/tpmback.c |
diff -Naur linux-2.6.25/drivers/xen/tpmback/tpmback.c linux-2.6.25-xen/drivers/xen/tpmback/tpmback.c |
10087 |
+++ b/drivers/xen/tpmback/tpmback.c |
--- linux-2.6.25/drivers/xen/tpmback/tpmback.c 2008-05-23 20:51:11.000000000 +0200 |
10088 |
|
+++ linux-2.6.25-xen/drivers/xen/tpmback/tpmback.c 2008-05-23 20:39:03.000000000 +0200 |
10089 |
@@ -502,7 +502,7 @@ |
@@ -502,7 +502,7 @@ |
10090 |
list_del(&pak->next); |
list_del(&pak->next); |
10091 |
write_unlock_irqrestore(&dataex.pak_lock, flags); |
write_unlock_irqrestore(&dataex.pak_lock, flags); |
10104 |
{ |
{ |
10105 |
tpmif_t *tpmif = (tpmif_t *) dev_id; |
tpmif_t *tpmif = (tpmif_t *) dev_id; |
10106 |
|
|
10107 |
--- a/drivers/xen/xenbus/xenbus_comms.c |
diff -Naur linux-2.6.25/drivers/xen/xenbus/xenbus_comms.c linux-2.6.25-xen/drivers/xen/xenbus/xenbus_comms.c |
10108 |
+++ b/drivers/xen/xenbus/xenbus_comms.c |
--- linux-2.6.25/drivers/xen/xenbus/xenbus_comms.c 2008-05-23 20:51:19.000000000 +0200 |
10109 |
|
+++ linux-2.6.25-xen/drivers/xen/xenbus/xenbus_comms.c 2008-05-23 20:39:03.000000000 +0200 |
10110 |
@@ -55,7 +55,7 @@ |
@@ -55,7 +55,7 @@ |
10111 |
|
|
10112 |
static DECLARE_WAIT_QUEUE_HEAD(xb_waitq); |
static DECLARE_WAIT_QUEUE_HEAD(xb_waitq); |
10116 |
{ |
{ |
10117 |
if (unlikely(xenstored_ready == 0)) { |
if (unlikely(xenstored_ready == 0)) { |
10118 |
xenstored_ready = 1; |
xenstored_ready = 1; |
10119 |
--- a/drivers/xen/xenoprof/xenoprofile.c |
diff -Naur linux-2.6.25/drivers/xen/xenoprof/xenoprofile.c linux-2.6.25-xen/drivers/xen/xenoprof/xenoprofile.c |
10120 |
+++ b/drivers/xen/xenoprof/xenoprofile.c |
--- linux-2.6.25/drivers/xen/xenoprof/xenoprofile.c 2008-05-23 20:51:11.000000000 +0200 |
10121 |
|
+++ linux-2.6.25-xen/drivers/xen/xenoprof/xenoprofile.c 2008-05-23 20:39:03.000000000 +0200 |
10122 |
@@ -195,7 +195,7 @@ |
@@ -195,7 +195,7 @@ |
10123 |
} |
} |
10124 |
|
|
10128 |
{ |
{ |
10129 |
struct xenoprof_buf * buf; |
struct xenoprof_buf * buf; |
10130 |
static unsigned long flag; |
static unsigned long flag; |
10131 |
--- a/include/asm-generic/pgtable.h |
diff -Naur linux-2.6.25/include/asm-generic/pgtable.h linux-2.6.25-xen/include/asm-generic/pgtable.h |
10132 |
+++ b/include/asm-generic/pgtable.h |
--- linux-2.6.25/include/asm-generic/pgtable.h 2008-05-23 20:51:15.000000000 +0200 |
10133 |
|
+++ linux-2.6.25-xen/include/asm-generic/pgtable.h 2008-05-23 20:39:03.000000000 +0200 |
10134 |
@@ -100,7 +100,7 @@ |
@@ -100,7 +100,7 @@ |
10135 |
#endif |
#endif |
10136 |
|
|
10140 |
#endif |
#endif |
10141 |
|
|
10142 |
#ifndef __HAVE_ARCH_PTE_SAME |
#ifndef __HAVE_ARCH_PTE_SAME |
10143 |
--- a/include/asm-x86/mach-xen/asm/desc_32.h |
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 |
10144 |
+++ b/include/asm-x86/mach-xen/asm/desc_32.h |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/desc_32.h 2008-05-23 20:51:11.000000000 +0200 |
10145 |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/desc_32.h 2008-05-23 20:39:03.000000000 +0200 |
10146 |
@@ -32,52 +32,110 @@ |
@@ -32,52 +32,110 @@ |
10147 |
return (struct desc_struct *)per_cpu(cpu_gdt_descr, cpu).address; |
return (struct desc_struct *)per_cpu(cpu_gdt_descr, cpu).address; |
10148 |
} |
} |
10303 |
static inline void clear_LDT(void) |
static inline void clear_LDT(void) |
10304 |
{ |
{ |
10305 |
int cpu = get_cpu(); |
int cpu = get_cpu(); |
10306 |
--- a/include/asm-x86/mach-xen/asm/dma-mapping_64.h |
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 |
10307 |
+++ b/include/asm-x86/mach-xen/asm/dma-mapping_64.h |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/dma-mapping_64.h 2008-05-23 20:51:11.000000000 +0200 |
10308 |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/dma-mapping_64.h 2008-05-23 20:39:03.000000000 +0200 |
10309 |
@@ -55,13 +55,6 @@ |
@@ -55,13 +55,6 @@ |
10310 |
extern struct dma_mapping_ops* dma_ops; |
extern struct dma_mapping_ops* dma_ops; |
10311 |
extern int iommu_merge; |
extern int iommu_merge; |
10320 |
#if 0 |
#if 0 |
10321 |
static inline int dma_mapping_error(dma_addr_t dma_addr) |
static inline int dma_mapping_error(dma_addr_t dma_addr) |
10322 |
{ |
{ |
10323 |
--- a/include/asm-x86/mach-xen/asm/e820_64.h |
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 |
10324 |
+++ b/include/asm-x86/mach-xen/asm/e820_64.h |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/e820_64.h 2008-05-23 20:51:11.000000000 +0200 |
10325 |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/e820_64.h 2008-05-23 20:39:03.000000000 +0200 |
10326 |
@@ -19,13 +19,9 @@ |
@@ -19,13 +19,9 @@ |
10327 |
|
|
10328 |
#define E820_RAM 1 |
#define E820_RAM 1 |
10360 |
|
|
10361 |
extern struct e820map e820; |
extern struct e820map e820; |
10362 |
|
|
10363 |
--- a/include/asm-x86/mach-xen/asm/fixmap_32.h |
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 |
10364 |
+++ b/include/asm-x86/mach-xen/asm/fixmap_32.h |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/fixmap_32.h 2008-05-23 20:51:11.000000000 +0200 |
10365 |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/fixmap_32.h 2008-05-23 20:39:03.000000000 +0200 |
10366 |
@@ -55,7 +55,7 @@ |
@@ -55,7 +55,7 @@ |
10367 |
#ifdef CONFIG_X86_LOCAL_APIC |
#ifdef CONFIG_X86_LOCAL_APIC |
10368 |
FIX_APIC_BASE, /* local (CPU) APIC) -- required for SMP or not */ |
FIX_APIC_BASE, /* local (CPU) APIC) -- required for SMP or not */ |
10384 |
|
|
10385 |
#define set_fixmap(idx, phys) \ |
#define set_fixmap(idx, phys) \ |
10386 |
__set_fixmap(idx, phys, PAGE_KERNEL) |
__set_fixmap(idx, phys, PAGE_KERNEL) |
10387 |
--- a/include/asm-x86/mach-xen/asm/fixmap_64.h |
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 |
10388 |
+++ b/include/asm-x86/mach-xen/asm/fixmap_64.h |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/fixmap_64.h 2008-05-23 20:51:11.000000000 +0200 |
10389 |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/fixmap_64.h 2008-05-23 20:39:03.000000000 +0200 |
10390 |
@@ -41,7 +41,7 @@ |
@@ -41,7 +41,7 @@ |
10391 |
#ifdef CONFIG_X86_LOCAL_APIC |
#ifdef CONFIG_X86_LOCAL_APIC |
10392 |
FIX_APIC_BASE, /* local (CPU) APIC) -- required for SMP or not */ |
FIX_APIC_BASE, /* local (CPU) APIC) -- required for SMP or not */ |
10396 |
FIX_IO_APIC_BASE_0, |
FIX_IO_APIC_BASE_0, |
10397 |
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, |
10398 |
#endif |
#endif |
10399 |
--- a/include/asm-x86/mach-xen/asm/hw_irq_32.h |
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 |
10400 |
+++ b/include/asm-x86/mach-xen/asm/hw_irq_32.h |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/hw_irq_32.h 2008-05-23 20:51:11.000000000 +0200 |
10401 |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/hw_irq_32.h 2008-05-23 20:39:03.000000000 +0200 |
10402 |
@@ -17,8 +17,6 @@ |
@@ -17,8 +17,6 @@ |
10403 |
#include <asm/irq.h> |
#include <asm/irq.h> |
10404 |
#include <asm/sections.h> |
#include <asm/sections.h> |
10428 |
#define platform_legacy_irq(irq) ((irq) < 16) |
#define platform_legacy_irq(irq) ((irq) < 16) |
10429 |
#endif |
#endif |
10430 |
|
|
10431 |
--- a/include/asm-x86/mach-xen/asm/hw_irq_64.h |
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 |
10432 |
+++ b/include/asm-x86/mach-xen/asm/hw_irq_64.h |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/hw_irq_64.h 2008-05-23 20:51:11.000000000 +0200 |
10433 |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/hw_irq_64.h 2008-05-23 20:39:03.000000000 +0200 |
10434 |
@@ -19,8 +19,7 @@ |
@@ -19,8 +19,7 @@ |
10435 |
#include <asm/irq.h> |
#include <asm/irq.h> |
10436 |
#include <linux/profile.h> |
#include <linux/profile.h> |
10455 |
|
|
10456 |
/* |
/* |
10457 |
* Various low-level irq details needed by irq.c, process.c, |
* Various low-level irq details needed by irq.c, process.c, |
10458 |
--- a/include/asm-x86/mach-xen/asm/io_32.h |
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 |
10459 |
+++ b/include/asm-x86/mach-xen/asm/io_32.h |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/io_32.h 2008-05-23 20:51:11.000000000 +0200 |
10460 |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/io_32.h 2008-05-23 20:39:03.000000000 +0200 |
10461 |
@@ -237,33 +237,6 @@ |
@@ -237,33 +237,6 @@ |
10462 |
|
|
10463 |
#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)) |
10492 |
/* |
/* |
10493 |
* Cache management |
* Cache management |
10494 |
* |
* |
10495 |
--- a/include/asm-x86/mach-xen/asm/io_64.h |
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 |
10496 |
+++ b/include/asm-x86/mach-xen/asm/io_64.h |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/io_64.h 2008-05-23 20:51:11.000000000 +0200 |
10497 |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/io_64.h 2008-05-23 20:39:03.000000000 +0200 |
10498 |
@@ -273,33 +273,6 @@ |
@@ -273,33 +273,6 @@ |
10499 |
|
|
10500 |
#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)) |
10529 |
/* Nothing to do */ |
/* Nothing to do */ |
10530 |
|
|
10531 |
#define dma_cache_inv(_start,_size) do { } while (0) |
#define dma_cache_inv(_start,_size) do { } while (0) |
10532 |
--- a/include/asm-x86/mach-xen/asm/pgtable-2level.h |
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 |
10533 |
+++ b/include/asm-x86/mach-xen/asm/pgtable-2level.h |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/pgtable-2level.h 2008-05-23 20:51:11.000000000 +0200 |
10534 |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/pgtable-2level.h 2008-05-23 20:39:03.000000000 +0200 |
10535 |
@@ -23,14 +23,6 @@ |
@@ -23,14 +23,6 @@ |
10536 |
set_pte((ptep), (pteval)); \ |
set_pte((ptep), (pteval)); \ |
10537 |
} while (0) |
} while (0) |
10572 |
#define __pte_mfn(_pte) ((_pte).pte_low >> PAGE_SHIFT) |
#define __pte_mfn(_pte) ((_pte).pte_low >> PAGE_SHIFT) |
10573 |
#define pte_mfn(_pte) ((_pte).pte_low & _PAGE_PRESENT ? \ |
#define pte_mfn(_pte) ((_pte).pte_low & _PAGE_PRESENT ? \ |
10574 |
__pte_mfn(_pte) : pfn_to_mfn(__pte_mfn(_pte))) |
__pte_mfn(_pte) : pfn_to_mfn(__pte_mfn(_pte))) |
10575 |
--- a/include/asm-x86/mach-xen/asm/pgtable-3level.h |
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 |
10576 |
+++ b/include/asm-x86/mach-xen/asm/pgtable-3level.h |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/pgtable_32.h 2008-05-23 20:51:11.000000000 +0200 |
10577 |
@@ -53,7 +53,6 @@ |
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/pgtable_32.h 2008-05-23 20:39:03.000000000 +0200 |
|
* 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; |
|
|
--- a/include/asm-x86/mach-xen/asm/pgtable_32.h |
|
|
+++ b/include/asm-x86/mach-xen/asm/pgtable_32.h |
|
10578 |
@@ -260,31 +260,89 @@ |
@@ -260,31 +260,89 @@ |
10579 |
# include <asm/pgtable-2level.h> |
# include <asm/pgtable-2level.h> |
10580 |
#endif |
#endif |
10785 |
#include <asm-generic/pgtable.h> |
#include <asm-generic/pgtable.h> |
10786 |
|
|
10787 |
#endif /* _I386_PGTABLE_H */ |
#endif /* _I386_PGTABLE_H */ |
10788 |
--- a/include/asm-x86/mach-xen/asm/pgtable_64.h |
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 |
10789 |
+++ b/include/asm-x86/mach-xen/asm/pgtable_64.h |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/pgtable-3level.h 2008-05-23 20:51:11.000000000 +0200 |
10790 |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/pgtable-3level.h 2008-05-23 20:39:03.000000000 +0200 |
10791 |
|
@@ -53,7 +53,6 @@ |
10792 |
|
* not possible, use pte_get_and_clear to obtain the old pte |
10793 |
|
* value and then use set_pte to update it. -ben |
10794 |
|
*/ |
10795 |
|
-#define __HAVE_ARCH_SET_PTE_ATOMIC |
10796 |
|
|
10797 |
|
static inline void set_pte(pte_t *ptep, pte_t pte) |
10798 |
|
{ |
10799 |
|
@@ -70,14 +69,6 @@ |
10800 |
|
set_pte((ptep), (pteval)); \ |
10801 |
|
} while (0) |
10802 |
|
|
10803 |
|
-#define set_pte_at_sync(_mm,addr,ptep,pteval) do { \ |
10804 |
|
- if (((_mm) != current->mm && (_mm) != &init_mm) || \ |
10805 |
|
- HYPERVISOR_update_va_mapping((addr), (pteval), UVMF_INVLPG)) { \ |
10806 |
|
- set_pte((ptep), (pteval)); \ |
10807 |
|
- xen_invlpg((addr)); \ |
10808 |
|
- } \ |
10809 |
|
-} while (0) |
10810 |
|
- |
10811 |
|
#define set_pmd(pmdptr,pmdval) \ |
10812 |
|
xen_l2_entry_update((pmdptr), (pmdval)) |
10813 |
|
#define set_pud(pudptr,pudval) \ |
10814 |
|
@@ -94,7 +85,7 @@ |
10815 |
|
#define pud_page(pud) \ |
10816 |
|
((struct page *) __va(pud_val(pud) & PAGE_MASK)) |
10817 |
|
|
10818 |
|
-#define pud_page_kernel(pud) \ |
10819 |
|
+#define pud_page_vaddr(pud) \ |
10820 |
|
((unsigned long) __va(pud_val(pud) & PAGE_MASK)) |
10821 |
|
|
10822 |
|
|
10823 |
|
@@ -124,6 +115,7 @@ |
10824 |
|
|
10825 |
|
#define pmd_clear(xp) do { set_pmd(xp, __pmd(0)); } while (0) |
10826 |
|
|
10827 |
|
+#define __HAVE_ARCH_PTEP_GET_AND_CLEAR |
10828 |
|
static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep) |
10829 |
|
{ |
10830 |
|
pte_t pte = *ptep; |
10831 |
|
@@ -142,6 +134,7 @@ |
10832 |
|
return pte; |
10833 |
|
} |
10834 |
|
|
10835 |
|
+#define __HAVE_ARCH_PTEP_CLEAR_FLUSH |
10836 |
|
#define ptep_clear_flush(vma, addr, ptep) \ |
10837 |
|
({ \ |
10838 |
|
pte_t *__ptep = (ptep); \ |
10839 |
|
@@ -159,6 +152,7 @@ |
10840 |
|
__res; \ |
10841 |
|
}) |
10842 |
|
|
10843 |
|
+#define __HAVE_ARCH_PTE_SAME |
10844 |
|
static inline int pte_same(pte_t a, pte_t b) |
10845 |
|
{ |
10846 |
|
return a.pte_low == b.pte_low && a.pte_high == b.pte_high; |
10847 |
|
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 |
10848 |
|
--- linux-2.6.25/include/asm-x86/mach-xen/asm/pgtable_64.h 2008-05-23 20:51:11.000000000 +0200 |
10849 |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/pgtable_64.h 2008-05-23 20:39:03.000000000 +0200 |
10850 |
@@ -43,12 +43,9 @@ |
@@ -43,12 +43,9 @@ |
10851 |
|
|
10852 |
#define swapper_pg_dir init_level4_pgt |
#define swapper_pg_dir init_level4_pgt |
11025 |
#define __HAVE_ARCH_PTEP_GET_AND_CLEAR |
#define __HAVE_ARCH_PTEP_GET_AND_CLEAR |
11026 |
#define __HAVE_ARCH_PTEP_GET_AND_CLEAR_FULL |
#define __HAVE_ARCH_PTEP_GET_AND_CLEAR_FULL |
11027 |
#define __HAVE_ARCH_PTEP_CLEAR_FLUSH |
#define __HAVE_ARCH_PTEP_CLEAR_FLUSH |
11028 |
--- a/include/asm-x86/mach-xen/asm/processor_32.h |
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 |
11029 |
+++ b/include/asm-x86/mach-xen/asm/processor_32.h |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/processor_32.h 2008-05-23 20:51:22.000000000 +0200 |
11030 |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/processor_32.h 2008-05-23 20:39:03.000000000 +0200 |
11031 |
@@ -146,6 +146,18 @@ |
@@ -146,6 +146,18 @@ |
11032 |
#define X86_EFLAGS_VIP 0x00100000 /* Virtual Interrupt Pending */ |
#define X86_EFLAGS_VIP 0x00100000 /* Virtual Interrupt Pending */ |
11033 |
#define X86_EFLAGS_ID 0x00200000 /* CPUID detection flag */ |
#define X86_EFLAGS_ID 0x00200000 /* CPUID detection flag */ |
11139 |
/* from system description table in BIOS. Mostly for MCA use, but |
/* from system description table in BIOS. Mostly for MCA use, but |
11140 |
others may find it useful. */ |
others may find it useful. */ |
11141 |
extern unsigned int machine_id; |
extern unsigned int machine_id; |
11142 |
--- a/include/asm-x86/mach-xen/asm/processor_64.h |
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 |
11143 |
+++ b/include/asm-x86/mach-xen/asm/processor_64.h |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/processor_64.h 2008-05-23 20:51:11.000000000 +0200 |
11144 |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/processor_64.h 2008-05-23 20:39:03.000000000 +0200 |
11145 |
@@ -484,6 +484,8 @@ |
@@ -484,6 +484,8 @@ |
11146 |
: :"a" (eax), "c" (ecx)); |
: :"a" (eax), "c" (ecx)); |
11147 |
} |
} |
11151 |
#define stack_current() \ |
#define stack_current() \ |
11152 |
({ \ |
({ \ |
11153 |
struct thread_info *ti; \ |
struct thread_info *ti; \ |
11154 |
--- a/include/asm-x86/mach-xen/asm/segment_32.h |
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 |
11155 |
+++ b/include/asm-x86/mach-xen/asm/segment_32.h |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/segment_32.h 2008-05-23 20:51:11.000000000 +0200 |
11156 |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/segment_32.h 2008-05-23 20:39:03.000000000 +0200 |
11157 |
@@ -61,11 +61,9 @@ |
@@ -61,11 +61,9 @@ |
11158 |
|
|
11159 |
#define GDT_ENTRY_KERNEL_CS (GDT_ENTRY_KERNEL_BASE + 0) |
#define GDT_ENTRY_KERNEL_CS (GDT_ENTRY_KERNEL_BASE + 0) |
11195 |
+ |
+ |
11196 |
+#define get_kernel_rpl() (xen_feature(XENFEAT_supervisor_mode_kernel)?0:1) |
+#define get_kernel_rpl() (xen_feature(XENFEAT_supervisor_mode_kernel)?0:1) |
11197 |
#endif |
#endif |
11198 |
--- a/include/asm-x86/mach-xen/asm/smp_32.h |
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 |
11199 |
+++ b/include/asm-x86/mach-xen/asm/smp_32.h |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/smp_32.h 2008-05-23 20:51:11.000000000 +0200 |
11200 |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/smp_32.h 2008-05-23 20:39:03.000000000 +0200 |
11201 |
@@ -79,25 +79,36 @@ |
@@ -79,25 +79,36 @@ |
11202 |
return GET_APIC_ID(*(unsigned long *)(APIC_BASE+APIC_ID)); |
return GET_APIC_ID(*(unsigned long *)(APIC_BASE+APIC_ID)); |
11203 |
} |
} |
11242 |
+#endif |
+#endif |
11243 |
+ |
+ |
11244 |
#endif |
#endif |
11245 |
--- a/include/asm-x86/mach-xen/asm/smp_64.h |
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 |
11246 |
+++ b/include/asm-x86/mach-xen/asm/smp_64.h |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/smp_64.h 2008-05-23 20:51:11.000000000 +0200 |
11247 |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/smp_64.h 2008-05-23 20:39:03.000000000 +0200 |
11248 |
@@ -4,15 +4,12 @@ |
@@ -4,15 +4,12 @@ |
11249 |
/* |
/* |
11250 |
* We need the APIC definitions automatically as part of 'smp.h' |
* We need the APIC definitions automatically as part of 'smp.h' |
11350 |
+#endif /* !CONFIG_SMP */ |
+#endif /* !CONFIG_SMP */ |
11351 |
#endif |
#endif |
11352 |
|
|
11353 |
--- a/include/asm-x86/mach-xen/asm/system_32.h |
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 |
11354 |
+++ b/include/asm-x86/mach-xen/asm/system_32.h |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/system_32.h 2008-05-23 20:51:11.000000000 +0200 |
11355 |
|
+++ 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 |
@@ -291,6 +294,39 @@ |
@@ -296,6 +299,39 @@ |
11367 |
: "=a"(prev) |
return old; |
11368 |
: "r"(new), "m"(*__xg(ptr)), "0"(old) |
} |
11369 |
: "memory"); |
|
|
+ return prev; |
|
|
+ } |
|
|
+ return old; |
|
|
+} |
|
|
+ |
|
11370 |
+/* |
+/* |
11371 |
+ * Always use locked operations when touching memory shared with a |
+ * Always use locked operations when touching memory shared with a |
11372 |
+ * hypervisor, since the system may be SMP even if the guest kernel |
+ * hypervisor, since the system may be SMP even if the guest kernel |
11395 |
+ : "=a"(prev) |
+ : "=a"(prev) |
11396 |
+ : "r"(new), "m"(*__xg(ptr)), "0"(old) |
+ : "r"(new), "m"(*__xg(ptr)), "0"(old) |
11397 |
+ : "memory"); |
+ : "memory"); |
11398 |
return prev; |
+ return prev; |
11399 |
} |
+ } |
11400 |
return old; |
+ return old; |
11401 |
--- a/include/asm-x86/mach-xen/asm/system_64.h |
+} |
11402 |
+++ b/include/asm-x86/mach-xen/asm/system_64.h |
+ |
11403 |
|
#ifndef CONFIG_X86_CMPXCHG |
11404 |
|
/* |
11405 |
|
* Building a kernel capable running on 80386. It may be necessary to |
11406 |
|
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 |
11407 |
|
--- linux-2.6.25/include/asm-x86/mach-xen/asm/system_64.h 2008-05-23 20:51:11.000000000 +0200 |
11408 |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/system_64.h 2008-05-23 20:39:03.000000000 +0200 |
11409 |
@@ -24,6 +24,7 @@ |
@@ -24,6 +24,7 @@ |
11410 |
#define __EXTRA_CLOBBER \ |
#define __EXTRA_CLOBBER \ |
11411 |
,"rcx","rbx","rdx","r8","r9","r10","r11","r12","r13","r14","r15" |
,"rcx","rbx","rdx","r8","r9","r10","r11","r12","r13","r14","r15" |
11414 |
#define switch_to(prev,next,last) \ |
#define switch_to(prev,next,last) \ |
11415 |
asm volatile(SAVE_CONTEXT \ |
asm volatile(SAVE_CONTEXT \ |
11416 |
"movq %%rsp,%P[threadrsp](%[prev])\n\t" /* save RSP */ \ |
"movq %%rsp,%P[threadrsp](%[prev])\n\t" /* save RSP */ \ |
11417 |
--- a/include/asm-x86/mach-xen/asm/tlbflush_32.h |
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 |
11418 |
+++ b/include/asm-x86/mach-xen/asm/tlbflush_32.h |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/tlbflush_32.h 2008-05-23 20:51:11.000000000 +0200 |
11419 |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/tlbflush_32.h 2008-05-23 20:39:03.000000000 +0200 |
11420 |
@@ -8,8 +8,6 @@ |
@@ -8,8 +8,6 @@ |
11421 |
#define __flush_tlb_global() xen_tlb_flush() |
#define __flush_tlb_global() xen_tlb_flush() |
11422 |
#define __flush_tlb_all() xen_tlb_flush() |
#define __flush_tlb_all() xen_tlb_flush() |
11426 |
#define cpu_has_invlpg (boot_cpu_data.x86 > 3) |
#define cpu_has_invlpg (boot_cpu_data.x86 > 3) |
11427 |
|
|
11428 |
#define __flush_tlb_single(addr) xen_invlpg(addr) |
#define __flush_tlb_single(addr) xen_invlpg(addr) |
11429 |
--- a/include/asm-x86/mach-xen/asm/tlbflush_64.h |
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 |
11430 |
+++ b/include/asm-x86/mach-xen/asm/tlbflush_64.h |
--- linux-2.6.25/include/asm-x86/mach-xen/asm/tlbflush_64.h 2008-05-23 20:51:11.000000000 +0200 |
11431 |
|
+++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/tlbflush_64.h 2008-05-23 20:39:03.000000000 +0200 |
11432 |
@@ -12,9 +12,6 @@ |
@@ -12,9 +12,6 @@ |
11433 |
*/ |
*/ |
11434 |
#define __flush_tlb_global() xen_tlb_flush() |
#define __flush_tlb_global() xen_tlb_flush() |
11439 |
#define __flush_tlb_all() __flush_tlb_global() |
#define __flush_tlb_all() __flush_tlb_global() |
11440 |
|
|
11441 |
#define __flush_tlb_one(addr) xen_invlpg((unsigned long)addr) |
#define __flush_tlb_one(addr) xen_invlpg((unsigned long)addr) |
11442 |
--- a/include/asm-x86/thread_info_64.h |
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 |
11443 |
+++ b/include/asm-x86/thread_info_64.h |
--- linux-2.6.25/include/asm-x86/thread_info_64.h 2008-04-17 04:49:44.000000000 +0200 |
11444 |
|
+++ linux-2.6.25-xen/include/asm-x86/thread_info_64.h 2008-05-23 20:39:03.000000000 +0200 |
11445 |
@@ -157,10 +157,14 @@ |
@@ -157,10 +157,14 @@ |
11446 |
(_TIF_SIGPENDING|_TIF_SINGLESTEP|_TIF_MCE_NOTIFY|_TIF_HRTICK_RESCHED) |
(_TIF_SIGPENDING|_TIF_SINGLESTEP|_TIF_MCE_NOTIFY|_TIF_HRTICK_RESCHED) |
11447 |
|
|
11457 |
|
|
11458 |
#define PREEMPT_ACTIVE 0x10000000 |
#define PREEMPT_ACTIVE 0x10000000 |
11459 |
|
|
11460 |
--- a/include/linux/skbuff.h |
diff -Naur linux-2.6.25/include/linux/skbuff.h linux-2.6.25-xen/include/linux/skbuff.h |
11461 |
+++ b/include/linux/skbuff.h |
--- linux-2.6.25/include/linux/skbuff.h 2008-05-23 20:51:15.000000000 +0200 |
11462 |
|
+++ linux-2.6.25-xen/include/linux/skbuff.h 2008-05-23 20:39:03.000000000 +0200 |
11463 |
@@ -1821,5 +1821,12 @@ |
@@ -1821,5 +1821,12 @@ |
11464 |
} |
} |
11465 |
|
|
11473 |
+ |
+ |
11474 |
#endif /* __KERNEL__ */ |
#endif /* __KERNEL__ */ |
11475 |
#endif /* _LINUX_SKBUFF_H */ |
#endif /* _LINUX_SKBUFF_H */ |
11476 |
--- a/include/xen/evtchn.h |
diff -Naur linux-2.6.25/include/xen/evtchn.h linux-2.6.25-xen/include/xen/evtchn.h |
11477 |
+++ b/include/xen/evtchn.h |
--- linux-2.6.25/include/xen/evtchn.h 2008-05-23 20:51:11.000000000 +0200 |
11478 |
|
+++ linux-2.6.25-xen/include/xen/evtchn.h 2008-05-23 20:39:03.000000000 +0200 |
11479 |
@@ -54,34 +54,34 @@ |
@@ -54,34 +54,34 @@ |
11480 |
*/ |
*/ |
11481 |
int bind_caller_port_to_irqhandler( |
int bind_caller_port_to_irqhandler( |
11516 |
unsigned long irqflags, |
unsigned long irqflags, |
11517 |
const char *devname, |
const char *devname, |
11518 |
void *dev_id); |
void *dev_id); |
11519 |
--- a/include/xen/xencons.h |
diff -Naur linux-2.6.25/include/xen/xencons.h linux-2.6.25-xen/include/xen/xencons.h |
11520 |
+++ b/include/xen/xencons.h |
--- linux-2.6.25/include/xen/xencons.h 2008-05-23 20:51:11.000000000 +0200 |
11521 |
|
+++ linux-2.6.25-xen/include/xen/xencons.h 2008-05-23 20:39:03.000000000 +0200 |
11522 |
@@ -8,7 +8,7 @@ |
@@ -8,7 +8,7 @@ |
11523 |
void xencons_resume(void); |
void xencons_resume(void); |
11524 |
|
|
11528 |
void xencons_tx(void); |
void xencons_tx(void); |
11529 |
|
|
11530 |
int xencons_ring_init(void); |
int xencons_ring_init(void); |
11531 |
--- a/mm/mprotect.c |
diff -Naur linux-2.6.25/mm/mprotect.c linux-2.6.25-xen/mm/mprotect.c |
11532 |
+++ b/mm/mprotect.c |
--- linux-2.6.25/mm/mprotect.c 2008-05-23 20:51:15.000000000 +0200 |
11533 |
|
+++ linux-2.6.25-xen/mm/mprotect.c 2008-05-23 20:39:03.000000000 +0200 |
11534 |
@@ -86,7 +86,7 @@ |
@@ -86,7 +86,7 @@ |
11535 |
next = pmd_addr_end(addr, end); |
next = pmd_addr_end(addr, end); |
11536 |
if (pmd_none_or_clear_bad(pmd)) |
if (pmd_none_or_clear_bad(pmd)) |
11540 |
continue; |
continue; |
11541 |
change_pte_range(mm, pmd, addr, next, newprot, dirty_accountable); |
change_pte_range(mm, pmd, addr, next, newprot, dirty_accountable); |
11542 |
} while (pmd++, addr = next, addr != end); |
} while (pmd++, addr = next, addr != end); |
11543 |
--- a/net/core/dev.c |
diff -Naur linux-2.6.25/net/core/dev.c linux-2.6.25-xen/net/core/dev.c |
11544 |
+++ b/net/core/dev.c |
--- linux-2.6.25/net/core/dev.c 2008-05-23 20:51:15.000000000 +0200 |
11545 |
@@ -1611,15 +1611,14 @@ |
+++ linux-2.6.25-xen/net/core/dev.c 2008-05-23 20:39:03.000000000 +0200 |
11546 |
|
@@ -1607,15 +1607,14 @@ |
11547 |
} |
} |
11548 |
if ((skb->h.raw + skb->csum + 2) > skb->tail) |
if ((skb->h.raw + skb->csum + 2) > skb->tail) |
11549 |
goto out; |
goto out; |
11561 |
#endif |
#endif |
11562 |
|
|
11563 |
/** |
/** |
11564 |
@@ -2115,7 +2114,7 @@ |
@@ -2111,7 +2110,7 @@ |
11565 |
case CHECKSUM_UNNECESSARY: |
case CHECKSUM_UNNECESSARY: |
11566 |
skb->proto_data_valid = 1; |
skb->proto_data_valid = 1; |
11567 |
break; |
break; |
11570 |
/* XXX Implement me. */ |
/* XXX Implement me. */ |
11571 |
default: |
default: |
11572 |
skb->proto_data_valid = 0; |
skb->proto_data_valid = 0; |
11573 |
@@ -4648,7 +4647,6 @@ |
@@ -4644,7 +4643,6 @@ |
11574 |
EXPORT_SYMBOL(net_enable_timestamp); |
EXPORT_SYMBOL(net_enable_timestamp); |
11575 |
EXPORT_SYMBOL(net_disable_timestamp); |
EXPORT_SYMBOL(net_disable_timestamp); |
11576 |
EXPORT_SYMBOL(dev_get_flags); |
EXPORT_SYMBOL(dev_get_flags); |