--- trunk/kernel26-xen/patches-2.6.25-r1/1020-2.6.25-xen-patch-2.6.19.patch 2008/05/23 17:41:14 610 +++ trunk/kernel26-xen/patches-2.6.25-r1/1020-2.6.25-xen-patch-2.6.19.patch 2008/05/23 18:49:01 611 @@ -1,138 +1,6 @@ -From: www.kernel.org -Subject: Linux 2.6.19 -Patch-mainline: 2.6.19 - -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 +diff -Naur linux-2.6.25/arch/x86/ia32/ia32entry-xen.S linux-2.6.25-xen/arch/x86/ia32/ia32entry-xen.S +--- linux-2.6.25/arch/x86/ia32/ia32entry-xen.S 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/ia32/ia32entry-xen.S 2008-05-23 20:39:03.000000000 +0200 @@ -83,6 +83,7 @@ */ ENTRY(ia32_sysenter_target) @@ -182,27 +50,20 @@ .quad compat_sys_move_pages + .quad sys_getcpu ia32_syscall_end: ---- a/arch/x86/kernel/Makefile -+++ b/arch/x86/kernel/Makefile -@@ -91,7 +91,7 @@ - ### - # 64 bit specific files - ifeq ($(CONFIG_X86_64),y) -- obj-y += genapic_64.o genapic_flat_64.o -+ obj-$(CONFIG_X86_LOCAL_APIC) += genapic_64.o genapic_flat_64.o - obj-$(CONFIG_X86_XEN_GENAPIC) += genapic_64.o genapic_xen_64.o - obj-$(CONFIG_X86_PM_TIMER) += pmtimer_64.o - obj-$(CONFIG_AUDIT) += audit_64.o -@@ -104,5 +104,6 @@ - pci-dma_64-$(CONFIG_XEN) += pci-dma_32.o - endif +diff -Naur linux-2.6.25/arch/x86/Kconfig linux-2.6.25-xen/arch/x86/Kconfig +--- linux-2.6.25/arch/x86/Kconfig 2008-05-23 20:51:22.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/Kconfig 2008-05-23 20:39:03.000000000 +0200 +@@ -390,6 +390,7 @@ --disabled-obj-$(CONFIG_XEN) := i8253.o i8259_$(BITS).o reboot.o smpboot_$(BITS).o tsc_$(BITS).o -+disabled-obj-$(CONFIG_XEN) := early-quirks.o i8253.o i8259_$(BITS).o reboot.o \ -+ smpboot_$(BITS).o tsc_$(BITS).o - %/head_$(BITS).o %/head_$(BITS).s: $(if $(CONFIG_XEN),EXTRA_AFLAGS,dummy) := ---- a/arch/x86/kernel/apic_32-xen.c -+++ b/arch/x86/kernel/apic_32-xen.c + 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. +diff -Naur linux-2.6.25/arch/x86/kernel/apic_32-xen.c linux-2.6.25-xen/arch/x86/kernel/apic_32-xen.c +--- linux-2.6.25/arch/x86/kernel/apic_32-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/apic_32-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -54,7 +54,6 @@ /* * Knob to control our willingness to enable the local APIC. @@ -243,8 +104,9 @@ #endif } } ---- a/arch/x86/kernel/apic_64-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/kernel/apic_64-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/apic_64-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -43,7 +43,7 @@ */ void ack_bad_irq(unsigned int irq) @@ -310,8 +172,9 @@ #endif return 1; ---- a/arch/x86/kernel/cpu/common-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/kernel/cpu/common-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/cpu/common-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -43,7 +43,7 @@ extern int disable_pse; @@ -375,8 +238,9 @@ /* Clear all 6 debug registers: */ set_debugreg(0, 0); ---- a/arch/x86/kernel/e820_64-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/kernel/e820_64-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/e820_64-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -16,6 +16,7 @@ #include #include @@ -857,8 +721,9 @@ } unsigned long pci_mem_start = 0xaeedbabe; ---- a/arch/x86/kernel/early_printk-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/kernel/early_printk-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/early_printk-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -244,20 +244,16 @@ static int __initdata keep_early; @@ -905,8 +770,9 @@ } -__setup("earlyprintk=", setup_early_printk); ---- a/arch/x86/kernel/entry_32-xen.S -+++ b/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 +--- linux-2.6.25/arch/x86/kernel/entry_32-xen.S 2008-05-23 20:51:22.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/entry_32-xen.S 2008-05-23 20:39:03.000000000 +0200 @@ -80,8 +80,12 @@ NMI_MASK = 0x80000000 @@ -1279,14 +1145,15 @@ .section .rodata,"a" #include "syscall_table.S" ---- a/arch/x86/kernel/entry_64-xen.S -+++ b/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 +--- linux-2.6.25/arch/x86/kernel/entry_64-xen.S 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/entry_64-xen.S 2008-05-23 20:47:55.000000000 +0200 @@ -4,9 +4,6 @@ * Copyright (C) 1991, 1992 Linus Torvalds * Copyright (C) 2000, 2001, 2002 Andi Kleen SuSE Labs * Copyright (C) 2000 Pavel Machek - * -- * $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 $ - * * Jun Nakajima * Asit Mallick @@ -1338,15 +1205,15 @@ CFI_DEF_CFA rsp,SS+8-\ref /*CFI_REL_OFFSET ss,SS-\ref*/ CFI_REL_OFFSET rsp,RSP-\ref -@@ -334,6 +343,8 @@ - LOAD_ARGS ARGOFFSET /* reload args from stack in case ptrace changed it */ - RESTORE_REST +@@ -255,6 +264,8 @@ + CFI_REMEMBER_STATE + jnz tracesys cmpq $__NR_syscall_max,%rax + movq $-ENOSYS,%rcx + cmova %rcx,%rax - ja 1f - movq %r10,%rcx /* fixup for C */ - call *sys_call_table(,%rax,8) + ja badsys + movq %r10,%rcx + call *sys_call_table(,%rax,8) # XXX: rip relative @@ -349,6 +360,7 @@ */ ENTRY(int_ret_from_sys_call) @@ -1523,8 +1390,9 @@ ENTRY(alignment_check) errorentry do_alignment_check ---- a/arch/x86/kernel/genapic_xen_64.c -+++ b/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 +--- linux-2.6.25/arch/x86/kernel/genapic_xen_64.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/genapic_xen_64.c 2008-05-23 20:39:03.000000000 +0200 @@ -71,6 +71,13 @@ return cpu_online_map; } @@ -1549,8 +1417,21 @@ #ifdef CONFIG_XEN_PRIVILEGED_GUEST .apic_id_registered = xen_apic_id_registered, #endif ---- a/arch/x86/kernel/head64-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/kernel/head_32-xen.S 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/head_32-xen.S 2008-05-23 20:39:03.000000000 +0200 +@@ -62,7 +62,7 @@ + movl %eax,%gs + cld # gcc2 wants the direction flag cleared at all times + +- pushl %eax # fake return address ++ pushl $0 # fake return address for unwinder + jmp start_kernel + + #define HYPERCALL_PAGE_OFFSET 0x1000 +diff -Naur linux-2.6.25/arch/x86/kernel/head64-xen.c linux-2.6.25-xen/arch/x86/kernel/head64-xen.c +--- linux-2.6.25/arch/x86/kernel/head64-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/head64-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -54,11 +54,9 @@ new_data = *(int *) (x86_boot_params + NEW_CL_POINTER); if (!new_data) { @@ -1632,25 +1513,15 @@ - setup_boot_cpu_data(); start_kernel(); } ---- a/arch/x86/kernel/head_32-xen.S -+++ b/arch/x86/kernel/head_32-xen.S -@@ -62,7 +62,7 @@ - movl %eax,%gs - cld # gcc2 wants the direction flag cleared at all times - -- pushl %eax # fake return address -+ pushl $0 # fake return address for unwinder - jmp start_kernel - - #define HYPERCALL_PAGE_OFFSET 0x1000 ---- a/arch/x86/kernel/head_64-xen.S -+++ b/arch/x86/kernel/head_64-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 +--- linux-2.6.25/arch/x86/kernel/head_64-xen.S 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/head_64-xen.S 2008-05-23 20:49:19.000000000 +0200 @@ -5,9 +5,6 @@ * Copyright (C) 2000 Pavel Machek * Copyright (C) 2000 Karsten Keil * Copyright (C) 2001,2002 Andi Kleen - * -- * $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 $ - * * Jun Nakajima * Modified for Xen @@ -1664,8 +1535,9 @@ gdt_end: /* asm/segment.h:GDT_ENTRIES must match this */ /* This should be a multiple of the cache line size */ ---- a/arch/x86/kernel/io_apic_32-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/kernel/io_apic_32-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/io_apic_32-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -31,6 +31,9 @@ #include #include @@ -2740,8 +2612,9 @@ + return 0; +} +early_param("noapic", parse_noapic); ---- a/arch/x86/kernel/io_apic_64-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/kernel/io_apic_64-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/io_apic_64-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -26,9 +26,12 @@ #include #include @@ -2869,10 +2742,8 @@ apic_op.value = value; WARN_ON(HYPERVISOR_physdev_op(PHYSDEVOP_apic_write, &apic_op)); +#endif - } - --#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) ++} ++ +#ifndef CONFIG_XEN +/* + * Re-write a value: to be used for read-modify-write @@ -2882,12 +2753,13 @@ +{ + struct io_apic __iomem *io_apic = io_apic_base(apic); + writel(value, &io_apic->data); -+} + } +#else +#define io_apic_modify io_apic_write +#endif --#define clear_IO_APIC() ((void)0) +-#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) +/* + * Synchronize the IO-APIC and the CPU by doing + * a dummy read from the IO-APIC @@ -2900,12 +2772,13 @@ +#endif +} --#else +-#define clear_IO_APIC() ((void)0) +union entry_union { + struct { u32 w1, w2; }; + struct IO_APIC_route_entry entry; +}; -+ + +-#else +static struct IO_APIC_route_entry ioapic_read_entry(int apic, int pin) +{ + union entry_union eu; @@ -4433,8 +4306,9 @@ spin_unlock_irqrestore(&ioapic_lock, flags); return 0; ---- a/arch/x86/kernel/ioport_64-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/kernel/ioport_64-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/ioport_64-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -58,6 +58,7 @@ memset(bitmap, 0xff, IO_BITMAP_BYTES); @@ -4443,8 +4317,9 @@ set_xen_guest_handle(set_iobitmap.bitmap, (char *)bitmap); set_iobitmap.nr_ports = IO_BITMAP_BITS; ---- a/arch/x86/kernel/irq_32-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/kernel/irq_32-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/irq_32-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -53,8 +53,10 @@ */ fastcall unsigned int do_IRQ(struct pt_regs *regs) @@ -4501,8 +4376,9 @@ seq_printf(p, " %s", action->name); for (action=action->next; action; action = action->next) ---- a/arch/x86/kernel/irq_64-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/kernel/irq_64-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/irq_64-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -20,11 +20,6 @@ #include @@ -4582,8 +4458,9 @@ + printk("unexpected IRQ trap at irq %02x\n", irq); } #endif ---- a/arch/x86/kernel/ldt_32-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/kernel/ldt_32-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/ldt_32-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -1,5 +1,5 @@ /* - * linux/kernel/ldt.c @@ -4591,8 +4468,29 @@ * * Copyright (C) 1992 Krishna Balasubramanian and Linus Torvalds * Copyright (C) 1999 Ingo Molnar ---- a/arch/x86/kernel/microcode-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/kernel/Makefile 2008-05-23 20:51:22.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/Makefile 2008-05-23 20:39:03.000000000 +0200 +@@ -91,7 +91,7 @@ + ### + # 64 bit specific files + ifeq ($(CONFIG_X86_64),y) +- obj-y += genapic_64.o genapic_flat_64.o ++ obj-$(CONFIG_X86_LOCAL_APIC) += genapic_64.o genapic_flat_64.o + obj-$(CONFIG_X86_XEN_GENAPIC) += genapic_64.o genapic_xen_64.o + obj-$(CONFIG_X86_PM_TIMER) += pmtimer_64.o + obj-$(CONFIG_AUDIT) += audit_64.o +@@ -104,5 +104,6 @@ + pci-dma_64-$(CONFIG_XEN) += pci-dma_32.o + endif + +-disabled-obj-$(CONFIG_XEN) := i8253.o i8259_$(BITS).o reboot.o smpboot_$(BITS).o tsc_$(BITS).o ++disabled-obj-$(CONFIG_XEN) := early-quirks.o i8253.o i8259_$(BITS).o reboot.o \ ++ smpboot_$(BITS).o tsc_$(BITS).o + %/head_$(BITS).o %/head_$(BITS).s: $(if $(CONFIG_XEN),EXTRA_AFLAGS,dummy) := +diff -Naur linux-2.6.25/arch/x86/kernel/microcode-xen.c linux-2.6.25-xen/arch/x86/kernel/microcode-xen.c +--- linux-2.6.25/arch/x86/kernel/microcode-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/microcode-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -2,6 +2,7 @@ * Intel CPU Microcode Update Driver for Linux * @@ -4728,8 +4626,9 @@ module_init(microcode_init) module_exit(microcode_exit) -MODULE_ALIAS_MISCDEV(MICROCODE_MINOR); ---- a/arch/x86/kernel/mpparse_32-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/kernel/mpparse_32-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/mpparse_32-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -30,6 +30,7 @@ #include @@ -4896,8 +4795,9 @@ /* * Mapping between Global System Interrups, which * represent all possible interrupts, and IRQs ---- a/arch/x86/kernel/mpparse_64-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/kernel/mpparse_64-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/mpparse_64-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -41,8 +41,7 @@ * Various Linux-internal data structures created from the * MP-table. @@ -5511,8 +5411,9 @@ - -#endif /*CONFIG_X86_IO_APIC*/ #endif /*CONFIG_ACPI*/ ---- a/arch/x86/kernel/pci-dma_32-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/kernel/pci-dma_32-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/pci-dma_32-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -116,8 +116,7 @@ { int i, rc; @@ -5571,8 +5472,9 @@ if (swiotlb) swiotlb_unmap_single(dev, dma_addr, size, direction); else ---- a/arch/x86/kernel/pci-swiotlb_64-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/kernel/pci-swiotlb_64-xen.c 2008-05-23 20:51:21.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/pci-swiotlb_64-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -3,7 +3,8 @@ #include #include @@ -5583,8 +5485,9 @@ #include #include #include ---- a/arch/x86/kernel/process_32-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/kernel/process_32-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/process_32-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -37,6 +37,7 @@ #include #include @@ -5674,8 +5577,9 @@ sp -= get_random_int() % 8192; return sp & ~0xf; } ---- a/arch/x86/kernel/process_64-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/kernel/process_64-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/process_64-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -89,25 +89,24 @@ } EXPORT_SYMBOL(idle_notifier_unregister); @@ -5882,103 +5786,9 @@ sp -= get_random_int() % 8192; return sp & ~0xf; } ---- a/arch/x86/kernel/setup64-xen.c -+++ b/arch/x86/kernel/setup64-xen.c -@@ -31,7 +31,7 @@ - #include - #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 +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 +--- linux-2.6.25/arch/x86/kernel/setup_32-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/setup_32-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -56,6 +56,7 @@ #include #include @@ -6260,6 +6070,9 @@ - else if (!memcmp(from, "acpi_sci=edge", 13)) - acpi_sci_flags.trigger = 1; +- +- else if (!memcmp(from, "acpi_sci=level", 14)) +- acpi_sci_flags.trigger = 3; +#ifdef CONFIG_PROC_VMCORE +/* elfcorehdr= specifies the location of elf core header + * stored by the crashed kernel. @@ -6269,16 +6082,16 @@ + if (!arg) + return -EINVAL; -- else if (!memcmp(from, "acpi_sci=level", 14)) -- acpi_sci_flags.trigger = 3; +- else if (!memcmp(from, "acpi_sci=high", 13)) +- acpi_sci_flags.polarity = 1; + elfcorehdr_addr = memparse(arg, &arg); + return 0; +} +early_param("elfcorehdr", parse_elfcorehdr); +#endif /* CONFIG_PROC_VMCORE */ -- else if (!memcmp(from, "acpi_sci=high", 13)) -- acpi_sci_flags.polarity = 1; +- else if (!memcmp(from, "acpi_sci=low", 12)) +- acpi_sci_flags.polarity = 3; +/* + * highmem=size forces highmem to be exactly 'size' bytes. + * This works even on boxes that have no highmem otherwise. @@ -6289,26 +6102,14 @@ + if (!arg) + return -EINVAL; -- else if (!memcmp(from, "acpi_sci=low", 12)) -- acpi_sci_flags.polarity = 3; +-#ifdef CONFIG_X86_IO_APIC +- else if (!memcmp(from, "acpi_skip_timer_override", 24)) +- acpi_skip_timer_override = 1; + highmem_pages = memparse(arg, &arg) >> PAGE_SHIFT; + return 0; +} +early_param("highmem", parse_highmem); --#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; - - if (!memcmp(from, "disable_timer_pin_1", 19)) - disable_timer_pin_1 = 1; - if (!memcmp(from, "enable_timer_pin_1", 18)) @@ -6319,7 +6120,16 @@ - disable_ioapic_setup(); -#endif /* CONFIG_X86_IO_APIC */ -#endif /* CONFIG_ACPI */ -- ++/* ++ * 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; + -#ifdef CONFIG_X86_LOCAL_APIC - /* enable local APIC */ - else if (!memcmp(from, "lapic", 5)) @@ -6541,8 +6351,105 @@ #ifdef CONFIG_ACPI acpi_boot_init(); ---- a/arch/x86/kernel/setup_64-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/kernel/setup64-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/setup64-xen.c 2008-05-23 20:39:03.000000000 +0200 +@@ -31,7 +31,7 @@ + #include + #endif + +-char x86_boot_params[BOOT_PARAM_SIZE] __initdata = {0,}; ++char x86_boot_params[BOOT_PARAM_SIZE] __initdata; + + cpumask_t cpu_initialized __cpuinitdata = CPU_MASK_NONE; + +@@ -55,8 +55,10 @@ + on Enable(default) + off Disable + */ +-int __init nonx_setup(char *str) ++static int __init nonx_setup(char *str) + { ++ if (!str) ++ return -EINVAL; + if (!strncmp(str, "on", 2)) { + __supported_pte_mask |= _PAGE_NX; + do_not_nx = 0; +@@ -64,9 +66,9 @@ + do_not_nx = 1; + __supported_pte_mask &= ~_PAGE_NX; + } +- return 1; ++ return 0; + } +-__setup("noexec=", nonx_setup); /* parsed early actually */ ++early_param("noexec", nonx_setup); + + int force_personality32 = 0; + +@@ -102,12 +104,9 @@ + #endif + + /* Copy section for each CPU (we discard the original) */ +- size = ALIGN(__per_cpu_end - __per_cpu_start, SMP_CACHE_BYTES); +-#ifdef CONFIG_MODULES +- if (size < PERCPU_ENOUGH_ROOM) +- size = PERCPU_ENOUGH_ROOM; +-#endif ++ size = PERCPU_ENOUGH_ROOM; + ++ printk(KERN_INFO "PERCPU: Allocating %lu bytes of per cpu data\n", size); + for_each_cpu_mask (i, cpu_possible_map) { + char *ptr; + +@@ -169,7 +168,10 @@ + /* Setup up data that may be needed in __get_free_pages early */ + asm volatile("movl %0,%%fs ; movl %0,%%gs" :: "r" (0)); + #ifndef CONFIG_XEN ++ /* Memory clobbers used to order PDA accessed */ ++ mb(); + wrmsrl(MSR_GS_BASE, pda); ++ mb(); + #else + if (HYPERVISOR_set_segment_base(SEGBASE_GS_KERNEL, + (unsigned long)pda)) +@@ -302,28 +304,17 @@ + * set up and load the per-CPU TSS + */ + for (v = 0; v < N_EXCEPTION_STACKS; v++) { ++ static const unsigned int order[N_EXCEPTION_STACKS] = { ++ [0 ... N_EXCEPTION_STACKS - 1] = EXCEPTION_STACK_ORDER, ++ [DEBUG_STACK - 1] = DEBUG_STACK_ORDER ++ }; + if (cpu) { +- static const unsigned int order[N_EXCEPTION_STACKS] = { +- [0 ... N_EXCEPTION_STACKS - 1] = EXCEPTION_STACK_ORDER, +- [DEBUG_STACK - 1] = DEBUG_STACK_ORDER +- }; +- + estacks = (char *)__get_free_pages(GFP_ATOMIC, order[v]); + if (!estacks) + panic("Cannot allocate exception stack %ld %d\n", + v, cpu); + } +- switch (v + 1) { +-#if DEBUG_STKSZ > EXCEPTION_STKSZ +- case DEBUG_STACK: +- cpu_pda(cpu)->debugstack = (unsigned long)estacks; +- estacks += DEBUG_STKSZ; +- break; +-#endif +- default: +- estacks += EXCEPTION_STKSZ; +- break; +- } ++ estacks += PAGE_SIZE << order[v]; + orig_ist->ist[v] = t->ist[v] = (unsigned long)estacks; + } + +diff -Naur linux-2.6.25/arch/x86/kernel/setup_64-xen.c linux-2.6.25-xen/arch/x86/kernel/setup_64-xen.c +--- linux-2.6.25/arch/x86/kernel/setup_64-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/setup_64-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -118,16 +118,6 @@ unsigned long mmu_cr4_features; @@ -6966,8 +6873,9 @@ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* VIA/Cyrix/Centaur-defined */ ---- a/arch/x86/kernel/smp_32-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/kernel/smp_32-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/smp_32-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -279,8 +279,7 @@ * 2) Leave the mm if we are in the lazy tlb mode. */ @@ -7067,8 +6975,9 @@ + return 0; +} +EXPORT_SYMBOL(smp_call_function_single); ---- a/arch/x86/kernel/smp_64-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/kernel/smp_64-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/smp_64-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -381,9 +381,8 @@ /* prevent preemption and reschedule on another processor */ int me = get_cpu(); @@ -7130,8 +7039,9 @@ - return 0; /* Should not happen */ -#endif -} ---- a/arch/x86/kernel/time_32-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/kernel/time_32-xen.c 2008-05-23 20:51:22.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/time_32-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -89,7 +89,6 @@ unsigned long vxtime_hz = PIT_TICK_RATE; struct vxtime_data __vxtime __section_vxtime; /* for vsyscalls */ @@ -7314,8 +7224,9 @@ if ((hpet_enable() >= 0) && hpet_use_timer) { printk("Using HPET for base-timer\n"); ---- a/arch/x86/kernel/traps_32-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/kernel/traps_32-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/traps_32-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -28,6 +28,7 @@ #include #include @@ -7518,8 +7429,7 @@ } } +EXPORT_SYMBOL(dump_trace); - --void show_trace(struct task_struct *task, struct pt_regs *regs, unsigned long * stack) ++ +static void +print_trace_warning_symbol(void *data, char *msg, unsigned long symbol) +{ @@ -7532,7 +7442,8 @@ +{ + printk("%s%s\n", (char *)data, msg); +} -+ + +-void show_trace(struct task_struct *task, struct pt_regs *regs, unsigned long * stack) +static int print_trace_stack(void *data, char *name) +{ + return 0; @@ -7762,8 +7673,9 @@ #ifdef CONFIG_KPROBES fastcall void __kprobes do_int3(struct pt_regs *regs, long error_code) { ---- a/arch/x86/kernel/traps_64-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/kernel/traps_64-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/traps_64-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -23,6 +23,7 @@ #include #include @@ -8217,8 +8129,9 @@ -__setup("call_trace=", call_trace_setup); +early_param("call_trace", call_trace_setup); #endif ---- a/arch/x86/kernel/vsyscall_64-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/kernel/vsyscall_64-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/kernel/vsyscall_64-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -26,6 +26,10 @@ #include #include @@ -8412,8 +8325,9 @@ return 0; } ---- a/arch/x86/mach-xen/setup.c -+++ b/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 +--- linux-2.6.25/arch/x86/mach-xen/setup.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/mach-xen/setup.c 2008-05-23 20:39:03.000000000 +0200 @@ -103,8 +103,10 @@ setup_xen_features(); @@ -8427,8 +8341,9 @@ if (HYPERVISOR_memory_op(XENMEM_machphys_mapping, &mapping) == 0) { machine_to_phys_mapping = (unsigned long *)mapping.v_start; ---- a/arch/x86/mm/fault_32-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/mm/fault_32-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/mm/fault_32-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -27,21 +27,24 @@ #include #include @@ -8515,8 +8430,9 @@ yield(); down_read(&mm->mmap_sem); goto survive; ---- a/arch/x86/mm/fault_64-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/mm/fault_64-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/mm/fault_64-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -40,8 +40,7 @@ #define PF_RSVD (1<<3) #define PF_INSTR (1<<4) @@ -8654,8 +8570,9 @@ } spin_unlock(&pgd_lock); set_bit(pgd_index(address), insync); ---- a/arch/x86/mm/highmem_32-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/mm/highmem_32-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/mm/highmem_32-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -38,11 +38,9 @@ idx = type + KM_TYPE_NR*smp_processor_id(); @@ -8722,8 +8639,9 @@ return (void*) vaddr; } ---- a/arch/x86/mm/hypervisor.c -+++ b/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 +--- linux-2.6.25/arch/x86/mm/hypervisor.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/mm/hypervisor.c 2008-05-23 20:39:03.000000000 +0200 @@ -569,7 +569,8 @@ #define MAX_BATCHED_FULL_PTES 32 @@ -8750,8 +8668,9 @@ if (++i == MAX_BATCHED_FULL_PTES) { if ((rc = HYPERVISOR_mmu_update( &u[0], i, NULL, DOMID_SELF)) != 0) ---- a/arch/x86/mm/init_32-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/mm/init_32-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/mm/init_32-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -464,16 +464,22 @@ * on Enable * off Disable @@ -8894,8 +8813,9 @@ unsigned long start_pfn = start >> PAGE_SHIFT; unsigned long nr_pages = size >> PAGE_SHIFT; ---- a/arch/x86/mm/init_64-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/mm/init_64-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/mm/init_64-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -61,8 +61,6 @@ extern unsigned long *contiguous_bitmap; @@ -9207,8 +9127,9 @@ } int kern_addr_valid(unsigned long addr) ---- a/arch/x86/mm/ioremap_32-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/mm/ioremap_32-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/mm/ioremap_32-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -12,7 +12,7 @@ #include #include @@ -9256,8 +9177,9 @@ vunmap((void __force *) addr); return NULL; } ---- a/arch/x86/mm/pageattr_64-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/mm/pageattr_64-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/mm/pageattr_64-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -371,8 +371,8 @@ BUG_ON(pud_none(*pud)); pmd = pmd_offset(pud, address); @@ -9322,8 +9244,9 @@ } } up_write(&init_mm.mmap_sem); ---- a/arch/x86/mm/pgtable_32-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/mm/pgtable_32-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/mm/pgtable_32-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -68,7 +68,9 @@ printk(KERN_INFO "%lu pages writeback\n", global_page_state(NR_WRITEBACK)); @@ -9379,8 +9302,9 @@ } pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address) ---- a/arch/x86/pci/irq-xen.c -+++ b/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 +--- linux-2.6.25/arch/x86/pci/irq-xen.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/arch/x86/pci/irq-xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -991,10 +991,6 @@ pci_name(bridge), 'A' + pin, irq); } @@ -9437,8 +9361,9 @@ - - return count; -} ---- a/drivers/char/tpm/tpm_xen.c -+++ b/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 +--- linux-2.6.25/drivers/char/tpm/tpm_xen.c 2008-05-23 20:51:15.000000000 +0200 ++++ linux-2.6.25-xen/drivers/char/tpm/tpm_xen.c 2008-05-23 20:39:03.000000000 +0200 @@ -85,8 +85,7 @@ /* local function prototypes */ @@ -9458,8 +9383,9 @@ { struct tpm_private *tp = tpm_priv; unsigned long flags; ---- a/drivers/pci/Kconfig -+++ b/drivers/pci/Kconfig +diff -Naur linux-2.6.25/drivers/pci/Kconfig linux-2.6.25-xen/drivers/pci/Kconfig +--- linux-2.6.25/drivers/pci/Kconfig 2008-04-17 04:49:44.000000000 +0200 ++++ linux-2.6.25-xen/drivers/pci/Kconfig 2008-05-23 20:39:03.000000000 +0200 @@ -45,7 +45,7 @@ config HT_IRQ bool "Interrupts on hypertransport devices" @@ -9469,20 +9395,9 @@ help This allows native hypertransport devices to use interrupts. ---- a/drivers/xen/Kconfig -+++ b/drivers/xen/Kconfig -@@ -278,6 +278,9 @@ - config HAVE_IRQ_IGNORE_UNHANDLED - def_bool y - -+config GENERIC_HARDIRQS_NO__DO_IRQ -+ def_bool y -+ - config NO_IDLE_HZ - def_bool y - ---- a/drivers/xen/balloon/balloon.c -+++ b/drivers/xen/balloon/balloon.c +diff -Naur linux-2.6.25/drivers/xen/balloon/balloon.c linux-2.6.25-xen/drivers/xen/balloon/balloon.c +--- linux-2.6.25/drivers/xen/balloon/balloon.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/balloon/balloon.c 2008-05-23 20:39:03.000000000 +0200 @@ -84,7 +84,7 @@ /* VM /proc information for memory */ extern unsigned long totalram_pages; @@ -9492,8 +9407,9 @@ extern unsigned long totalhigh_pages; #define inc_totalhigh_pages() (totalhigh_pages++) #define dec_totalhigh_pages() (totalhigh_pages--) ---- a/drivers/xen/blkback/blkback.c -+++ b/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 +--- linux-2.6.25/drivers/xen/blkback/blkback.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/blkback/blkback.c 2008-05-23 20:39:03.000000000 +0200 @@ -288,7 +288,7 @@ wake_up(&blkif->wq); } @@ -9503,8 +9419,9 @@ { blkif_notify_work(dev_id); return IRQ_HANDLED; ---- a/drivers/xen/blkback/common.h -+++ b/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 +--- linux-2.6.25/drivers/xen/blkback/common.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/blkback/common.h 2008-05-23 20:39:03.000000000 +0200 @@ -130,7 +130,7 @@ void blkif_xenbus_init(void); @@ -9514,8 +9431,9 @@ int blkif_schedule(void *arg); int blkback_barrier(struct xenbus_transaction xbt, ---- a/drivers/xen/blkfront/blkfront.c -+++ b/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 +--- linux-2.6.25/drivers/xen/blkfront/blkfront.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/blkfront/blkfront.c 2008-05-23 20:39:03.000000000 +0200 @@ -69,7 +69,7 @@ static void kick_pending_request_queues(struct blkfront_info *); @@ -9534,8 +9452,9 @@ { struct request *req; blkif_response_t *bret; ---- a/drivers/xen/blktap/blktap.c -+++ b/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 +--- linux-2.6.25/drivers/xen/blktap/blktap.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/blktap/blktap.c 2008-05-23 20:39:03.000000000 +0200 @@ -1175,7 +1175,7 @@ wake_up(&blkif->wq); } @@ -9545,8 +9464,9 @@ { blkif_notify_work(dev_id); return IRQ_HANDLED; ---- a/drivers/xen/blktap/common.h -+++ b/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 +--- linux-2.6.25/drivers/xen/blktap/common.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/blktap/common.h 2008-05-23 20:39:03.000000000 +0200 @@ -112,7 +112,7 @@ void tap_blkif_xenbus_init(void); @@ -9556,8 +9476,9 @@ int tap_blkif_schedule(void *arg); int dom_to_devid(domid_t domid, int xenbus_id, blkif_t *blkif); ---- a/drivers/xen/console/console.c -+++ b/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 +--- linux-2.6.25/drivers/xen/console/console.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/console/console.c 2008-05-23 20:39:03.000000000 +0200 @@ -345,7 +345,7 @@ static int xencons_priv_irq; static char x_char; @@ -9594,8 +9515,9 @@ xencons_tx(); ---- a/drivers/xen/console/xencons_ring.c -+++ b/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 +--- linux-2.6.25/drivers/xen/console/xencons_ring.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/console/xencons_ring.c 2008-05-23 20:39:03.000000000 +0200 @@ -83,7 +83,7 @@ return sent; } @@ -9614,8 +9536,9 @@ cons++; } ---- a/drivers/xen/core/evtchn.c -+++ b/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 +--- linux-2.6.25/drivers/xen/core/evtchn.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/core/evtchn.c 2008-05-23 20:39:03.000000000 +0200 @@ -507,7 +507,7 @@ int bind_caller_port_to_irqhandler( @@ -9757,8 +9680,9 @@ + handle_level_irq, "level"); } } ---- a/drivers/xen/core/reboot.c -+++ b/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 +--- linux-2.6.25/drivers/xen/core/reboot.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/core/reboot.c 2008-05-23 20:39:03.000000000 +0200 @@ -13,6 +13,7 @@ #ifdef HAVE_XEN_PLATFORM_COMPAT_H @@ -9776,8 +9700,9 @@ #endif } ---- a/drivers/xen/core/smpboot.c -+++ b/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 +--- linux-2.6.25/drivers/xen/core/smpboot.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/core/smpboot.c 2008-05-23 20:39:03.000000000 +0200 @@ -25,8 +25,8 @@ #include #include @@ -9798,8 +9723,9 @@ #endif void __init prefill_possible_map(void) ---- a/drivers/xen/fbfront/xenfb.c -+++ b/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 +--- linux-2.6.25/drivers/xen/fbfront/xenfb.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/fbfront/xenfb.c 2008-05-23 20:39:03.000000000 +0200 @@ -523,8 +523,7 @@ .fb_set_par = xenfb_set_par, }; @@ -9810,8 +9736,9 @@ { /* * No in events recognized, simply ignore them all. ---- a/drivers/xen/fbfront/xenkbd.c -+++ b/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 +--- linux-2.6.25/drivers/xen/fbfront/xenkbd.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/fbfront/xenkbd.c 2008-05-23 20:39:03.000000000 +0200 @@ -46,7 +46,7 @@ * to do that. */ @@ -9821,8 +9748,9 @@ { struct xenkbd_info *info = dev_id; struct xenkbd_page *page = info->page; ---- a/drivers/xen/gntdev/gntdev.c -+++ b/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 +--- linux-2.6.25/drivers/xen/gntdev/gntdev.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/gntdev/gntdev.c 2008-05-23 20:39:03.000000000 +0200 @@ -755,9 +755,6 @@ BUG(); } @@ -9862,8 +9790,22 @@ } return copy; ---- a/drivers/xen/netback/accel.c -+++ b/drivers/xen/netback/accel.c +diff -Naur linux-2.6.25/drivers/xen/Kconfig linux-2.6.25-xen/drivers/xen/Kconfig +--- linux-2.6.25/drivers/xen/Kconfig 2008-05-23 20:51:14.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/Kconfig 2008-05-23 20:39:03.000000000 +0200 +@@ -278,6 +278,9 @@ + config HAVE_IRQ_IGNORE_UNHANDLED + def_bool y + ++config GENERIC_HARDIRQS_NO__DO_IRQ ++ def_bool y ++ + config NO_IDLE_HZ + def_bool y + +diff -Naur linux-2.6.25/drivers/xen/netback/accel.c linux-2.6.25-xen/drivers/xen/netback/accel.c +--- linux-2.6.25/drivers/xen/netback/accel.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/netback/accel.c 2008-05-23 20:39:03.000000000 +0200 @@ -65,7 +65,7 @@ if (IS_ERR(eth_name)) { @@ -9873,8 +9815,9 @@ __FUNCTION__, PTR_ERR(eth_name)); return 0; } else { ---- a/drivers/xen/netback/common.h -+++ b/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 +--- linux-2.6.25/drivers/xen/netback/common.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/netback/common.h 2008-05-23 20:39:03.000000000 +0200 @@ -200,7 +200,7 @@ int netif_be_start_xmit(struct sk_buff *skb, struct net_device *dev); @@ -9884,8 +9827,9 @@ static inline int netbk_can_queue(struct net_device *dev) { ---- a/drivers/xen/netback/loopback.c -+++ b/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 +--- linux-2.6.25/drivers/xen/netback/loopback.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/netback/loopback.c 2008-05-23 20:39:03.000000000 +0200 @@ -151,7 +151,7 @@ np->stats.rx_bytes += skb->len; np->stats.rx_packets++; @@ -9895,8 +9839,9 @@ /* Defer checksum calculation. */ skb->proto_csum_blank = 1; /* Must be a local packet: assert its integrity. */ ---- a/drivers/xen/netback/netback.c -+++ b/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 +--- linux-2.6.25/drivers/xen/netback/netback.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/netback/netback.c 2008-05-23 20:39:03.000000000 +0200 @@ -677,7 +677,7 @@ id = meta[npo.meta_cons].id; flags = nr_frags ? NETRXF_more_data : 0; @@ -9924,8 +9869,9 @@ { struct list_head *ent; netif_t *netif; ---- a/drivers/xen/netfront/netfront.c -+++ b/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 +--- linux-2.6.25/drivers/xen/netfront/netfront.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/netfront/netfront.c 2008-05-23 20:39:03.000000000 +0200 @@ -136,7 +136,7 @@ { return skb_is_gso(skb) && @@ -9962,8 +9908,9 @@ { struct net_device *dev = dev_id; struct netfront_info *np = netdev_priv(dev); ---- a/drivers/xen/pciback/pciback.h -+++ b/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 +--- linux-2.6.25/drivers/xen/pciback/pciback.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/pciback/pciback.h 2008-05-23 20:39:03.000000000 +0200 @@ -87,7 +87,7 @@ void pciback_release_devices(struct pciback_device *pdev); @@ -9973,8 +9920,9 @@ void pciback_do_op(void *data); int pciback_xenbus_register(void); ---- a/drivers/xen/pciback/pciback_ops.c -+++ b/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 +--- linux-2.6.25/drivers/xen/pciback/pciback_ops.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/pciback/pciback_ops.c 2008-05-23 20:39:03.000000000 +0200 @@ -85,7 +85,7 @@ test_and_schedule_op(pdev); } @@ -9984,8 +9932,9 @@ { struct pciback_device *pdev = dev_id; ---- a/drivers/xen/pcifront/pci_op.c -+++ b/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 +--- linux-2.6.25/drivers/xen/pcifront/pci_op.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/pcifront/pci_op.c 2008-05-23 20:39:03.000000000 +0200 @@ -392,10 +392,16 @@ d = pci_scan_single_device(b, devfn); @@ -10004,8 +9953,9 @@ } } ---- a/drivers/xen/privcmd/compat_privcmd.c -+++ b/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 +--- linux-2.6.25/drivers/xen/privcmd/compat_privcmd.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/privcmd/compat_privcmd.c 2008-05-23 20:39:03.000000000 +0200 @@ -18,7 +18,6 @@ * Authors: Jimi Xenidis */ @@ -10014,8 +9964,9 @@ #include #include #include ---- a/drivers/xen/privcmd/privcmd.c -+++ b/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 +--- linux-2.6.25/drivers/xen/privcmd/privcmd.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/privcmd/privcmd.c 2008-05-23 20:39:03.000000000 +0200 @@ -236,7 +236,7 @@ #endif @@ -10025,8 +9976,9 @@ vma->vm_ops = &privcmd_vm_ops; vma->vm_private_data = NULL; ---- a/drivers/xen/sfc_netback/accel_xenbus.c -+++ b/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 +--- linux-2.6.25/drivers/xen/sfc_netback/accel_xenbus.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/sfc_netback/accel_xenbus.c 2008-05-23 20:39:03.000000000 +0200 @@ -68,8 +68,7 @@ @@ -10047,8 +9999,9 @@ { VPRINTK("netirq %d from device %s\n", irq, ((struct xenbus_device *)context)->nodename); ---- a/drivers/xen/sfc_netfront/accel.h -+++ b/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 +--- linux-2.6.25/drivers/xen/sfc_netfront/accel.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/sfc_netfront/accel.h 2008-05-23 20:39:03.000000000 +0200 @@ -449,10 +449,8 @@ u32 ip, u16 port, u8 protocol); @@ -10062,8 +10015,9 @@ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20) extern void netfront_accel_msg_from_bend(struct work_struct *context); ---- a/drivers/xen/sfc_netfront/accel_msg.c -+++ b/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 +--- linux-2.6.25/drivers/xen/sfc_netfront/accel_msg.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/sfc_netfront/accel_msg.c 2008-05-23 20:39:03.000000000 +0200 @@ -490,8 +490,7 @@ } @@ -10084,8 +10038,9 @@ { netfront_accel_vnic *vnic = (netfront_accel_vnic *)context; struct net_device *net_dev = vnic->net_dev; ---- a/drivers/xen/sfc_netfront/accel_tso.c -+++ b/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 +--- linux-2.6.25/drivers/xen/sfc_netfront/accel_tso.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/sfc_netfront/accel_tso.c 2008-05-23 20:39:03.000000000 +0200 @@ -363,7 +363,7 @@ tso_check_safe(skb); @@ -10095,8 +10050,9 @@ EPRINTK("Trying to TSO send a packet without HW checksum\n"); tso_start(&state, skb); ---- a/drivers/xen/sfc_netfront/accel_vi.c -+++ b/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 +--- linux-2.6.25/drivers/xen/sfc_netfront/accel_vi.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/sfc_netfront/accel_vi.c 2008-05-23 20:39:03.000000000 +0200 @@ -461,7 +461,7 @@ frag_i = -1; @@ -10115,8 +10071,9 @@ /* Set to zero to encourage falcon to work it out for us */ *(u16*)(skb->h.raw + skb->csum) = 0; } ---- a/drivers/xen/tpmback/common.h -+++ b/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 +--- linux-2.6.25/drivers/xen/tpmback/common.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/tpmback/common.h 2008-05-23 20:39:03.000000000 +0200 @@ -61,7 +61,7 @@ void tpmif_xenbus_init(void); void tpmif_xenbus_exit(void); @@ -10126,8 +10083,9 @@ long int tpmback_get_instance(struct backend_info *bi); ---- a/drivers/xen/tpmback/tpmback.c -+++ b/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 +--- linux-2.6.25/drivers/xen/tpmback/tpmback.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/tpmback/tpmback.c 2008-05-23 20:39:03.000000000 +0200 @@ -502,7 +502,7 @@ list_del(&pak->next); write_unlock_irqrestore(&dataex.pak_lock, flags); @@ -10146,8 +10104,9 @@ { tpmif_t *tpmif = (tpmif_t *) dev_id; ---- a/drivers/xen/xenbus/xenbus_comms.c -+++ b/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 +--- linux-2.6.25/drivers/xen/xenbus/xenbus_comms.c 2008-05-23 20:51:19.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/xenbus/xenbus_comms.c 2008-05-23 20:39:03.000000000 +0200 @@ -55,7 +55,7 @@ static DECLARE_WAIT_QUEUE_HEAD(xb_waitq); @@ -10157,8 +10116,9 @@ { if (unlikely(xenstored_ready == 0)) { xenstored_ready = 1; ---- a/drivers/xen/xenoprof/xenoprofile.c -+++ b/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 +--- linux-2.6.25/drivers/xen/xenoprof/xenoprofile.c 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/drivers/xen/xenoprof/xenoprofile.c 2008-05-23 20:39:03.000000000 +0200 @@ -195,7 +195,7 @@ } @@ -10168,8 +10128,9 @@ { struct xenoprof_buf * buf; static unsigned long flag; ---- a/include/asm-generic/pgtable.h -+++ b/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 +--- linux-2.6.25/include/asm-generic/pgtable.h 2008-05-23 20:51:15.000000000 +0200 ++++ linux-2.6.25-xen/include/asm-generic/pgtable.h 2008-05-23 20:39:03.000000000 +0200 @@ -100,7 +100,7 @@ #endif @@ -10179,8 +10140,9 @@ #endif #ifndef __HAVE_ARCH_PTE_SAME ---- a/include/asm-x86/mach-xen/asm/desc_32.h -+++ b/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 +--- linux-2.6.25/include/asm-x86/mach-xen/asm/desc_32.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/desc_32.h 2008-05-23 20:39:03.000000000 +0200 @@ -32,52 +32,110 @@ return (struct desc_struct *)per_cpu(cpu_gdt_descr, cpu).address; } @@ -10341,8 +10303,9 @@ static inline void clear_LDT(void) { int cpu = get_cpu(); ---- a/include/asm-x86/mach-xen/asm/dma-mapping_64.h -+++ b/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 +--- linux-2.6.25/include/asm-x86/mach-xen/asm/dma-mapping_64.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/dma-mapping_64.h 2008-05-23 20:39:03.000000000 +0200 @@ -55,13 +55,6 @@ extern struct dma_mapping_ops* dma_ops; extern int iommu_merge; @@ -10357,8 +10320,9 @@ #if 0 static inline int dma_mapping_error(dma_addr_t dma_addr) { ---- a/include/asm-x86/mach-xen/asm/e820_64.h -+++ b/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 +--- linux-2.6.25/include/asm-x86/mach-xen/asm/e820_64.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/e820_64.h 2008-05-23 20:39:03.000000000 +0200 @@ -19,13 +19,9 @@ #define E820_RAM 1 @@ -10396,8 +10360,9 @@ extern struct e820map e820; ---- a/include/asm-x86/mach-xen/asm/fixmap_32.h -+++ b/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 +--- linux-2.6.25/include/asm-x86/mach-xen/asm/fixmap_32.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/fixmap_32.h 2008-05-23 20:39:03.000000000 +0200 @@ -55,7 +55,7 @@ #ifdef CONFIG_X86_LOCAL_APIC FIX_APIC_BASE, /* local (CPU) APIC) -- required for SMP or not */ @@ -10419,8 +10384,9 @@ #define set_fixmap(idx, phys) \ __set_fixmap(idx, phys, PAGE_KERNEL) ---- a/include/asm-x86/mach-xen/asm/fixmap_64.h -+++ b/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 +--- linux-2.6.25/include/asm-x86/mach-xen/asm/fixmap_64.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/fixmap_64.h 2008-05-23 20:39:03.000000000 +0200 @@ -41,7 +41,7 @@ #ifdef CONFIG_X86_LOCAL_APIC FIX_APIC_BASE, /* local (CPU) APIC) -- required for SMP or not */ @@ -10430,8 +10396,9 @@ FIX_IO_APIC_BASE_0, FIX_IO_APIC_BASE_END = FIX_IO_APIC_BASE_0 + MAX_IO_APICS-1, #endif ---- a/include/asm-x86/mach-xen/asm/hw_irq_32.h -+++ b/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 +--- linux-2.6.25/include/asm-x86/mach-xen/asm/hw_irq_32.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/hw_irq_32.h 2008-05-23 20:39:03.000000000 +0200 @@ -17,8 +17,6 @@ #include #include @@ -10461,8 +10428,9 @@ #define platform_legacy_irq(irq) ((irq) < 16) #endif ---- a/include/asm-x86/mach-xen/asm/hw_irq_64.h -+++ b/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 +--- linux-2.6.25/include/asm-x86/mach-xen/asm/hw_irq_64.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/hw_irq_64.h 2008-05-23 20:39:03.000000000 +0200 @@ -19,8 +19,7 @@ #include #include @@ -10487,8 +10455,9 @@ /* * Various low-level irq details needed by irq.c, process.c, ---- a/include/asm-x86/mach-xen/asm/io_32.h -+++ b/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 +--- linux-2.6.25/include/asm-x86/mach-xen/asm/io_32.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/io_32.h 2008-05-23 20:39:03.000000000 +0200 @@ -237,33 +237,6 @@ #define eth_io_copy_and_sum(a,b,c,d) eth_copy_and_sum((a),(void __force *)(b),(c),(d)) @@ -10523,8 +10492,9 @@ /* * Cache management * ---- a/include/asm-x86/mach-xen/asm/io_64.h -+++ b/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 +--- linux-2.6.25/include/asm-x86/mach-xen/asm/io_64.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/io_64.h 2008-05-23 20:39:03.000000000 +0200 @@ -273,33 +273,6 @@ #define eth_io_copy_and_sum(a,b,c,d) eth_copy_and_sum((a),(void *)(b),(c),(d)) @@ -10559,8 +10529,9 @@ /* Nothing to do */ #define dma_cache_inv(_start,_size) do { } while (0) ---- a/include/asm-x86/mach-xen/asm/pgtable-2level.h -+++ b/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 +--- linux-2.6.25/include/asm-x86/mach-xen/asm/pgtable-2level.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/pgtable-2level.h 2008-05-23 20:39:03.000000000 +0200 @@ -23,14 +23,6 @@ set_pte((ptep), (pteval)); \ } while (0) @@ -10601,66 +10572,9 @@ #define __pte_mfn(_pte) ((_pte).pte_low >> PAGE_SHIFT) #define pte_mfn(_pte) ((_pte).pte_low & _PAGE_PRESENT ? \ __pte_mfn(_pte) : pfn_to_mfn(__pte_mfn(_pte))) ---- a/include/asm-x86/mach-xen/asm/pgtable-3level.h -+++ b/include/asm-x86/mach-xen/asm/pgtable-3level.h -@@ -53,7 +53,6 @@ - * not possible, use pte_get_and_clear to obtain the old pte - * value and then use set_pte to update it. -ben - */ --#define __HAVE_ARCH_SET_PTE_ATOMIC - - static inline void set_pte(pte_t *ptep, pte_t pte) - { -@@ -70,14 +69,6 @@ - set_pte((ptep), (pteval)); \ - } while (0) - --#define set_pte_at_sync(_mm,addr,ptep,pteval) do { \ -- if (((_mm) != current->mm && (_mm) != &init_mm) || \ -- HYPERVISOR_update_va_mapping((addr), (pteval), UVMF_INVLPG)) { \ -- set_pte((ptep), (pteval)); \ -- xen_invlpg((addr)); \ -- } \ --} while (0) -- - #define set_pmd(pmdptr,pmdval) \ - xen_l2_entry_update((pmdptr), (pmdval)) - #define set_pud(pudptr,pudval) \ -@@ -94,7 +85,7 @@ - #define pud_page(pud) \ - ((struct page *) __va(pud_val(pud) & PAGE_MASK)) - --#define pud_page_kernel(pud) \ -+#define pud_page_vaddr(pud) \ - ((unsigned long) __va(pud_val(pud) & PAGE_MASK)) - - -@@ -124,6 +115,7 @@ - - #define pmd_clear(xp) do { set_pmd(xp, __pmd(0)); } while (0) - -+#define __HAVE_ARCH_PTEP_GET_AND_CLEAR - static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep) - { - pte_t pte = *ptep; -@@ -142,6 +134,7 @@ - return pte; - } - -+#define __HAVE_ARCH_PTEP_CLEAR_FLUSH - #define ptep_clear_flush(vma, addr, ptep) \ - ({ \ - pte_t *__ptep = (ptep); \ -@@ -159,6 +152,7 @@ - __res; \ - }) - -+#define __HAVE_ARCH_PTE_SAME - static inline int pte_same(pte_t a, pte_t b) - { - return a.pte_low == b.pte_low && a.pte_high == b.pte_high; ---- a/include/asm-x86/mach-xen/asm/pgtable_32.h -+++ b/include/asm-x86/mach-xen/asm/pgtable_32.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 +--- linux-2.6.25/include/asm-x86/mach-xen/asm/pgtable_32.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/pgtable_32.h 2008-05-23 20:39:03.000000000 +0200 @@ -260,31 +260,89 @@ # include #endif @@ -10871,8 +10785,68 @@ #include #endif /* _I386_PGTABLE_H */ ---- a/include/asm-x86/mach-xen/asm/pgtable_64.h -+++ b/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 +--- linux-2.6.25/include/asm-x86/mach-xen/asm/pgtable-3level.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/pgtable-3level.h 2008-05-23 20:39:03.000000000 +0200 +@@ -53,7 +53,6 @@ + * not possible, use pte_get_and_clear to obtain the old pte + * value and then use set_pte to update it. -ben + */ +-#define __HAVE_ARCH_SET_PTE_ATOMIC + + static inline void set_pte(pte_t *ptep, pte_t pte) + { +@@ -70,14 +69,6 @@ + set_pte((ptep), (pteval)); \ + } while (0) + +-#define set_pte_at_sync(_mm,addr,ptep,pteval) do { \ +- if (((_mm) != current->mm && (_mm) != &init_mm) || \ +- HYPERVISOR_update_va_mapping((addr), (pteval), UVMF_INVLPG)) { \ +- set_pte((ptep), (pteval)); \ +- xen_invlpg((addr)); \ +- } \ +-} while (0) +- + #define set_pmd(pmdptr,pmdval) \ + xen_l2_entry_update((pmdptr), (pmdval)) + #define set_pud(pudptr,pudval) \ +@@ -94,7 +85,7 @@ + #define pud_page(pud) \ + ((struct page *) __va(pud_val(pud) & PAGE_MASK)) + +-#define pud_page_kernel(pud) \ ++#define pud_page_vaddr(pud) \ + ((unsigned long) __va(pud_val(pud) & PAGE_MASK)) + + +@@ -124,6 +115,7 @@ + + #define pmd_clear(xp) do { set_pmd(xp, __pmd(0)); } while (0) + ++#define __HAVE_ARCH_PTEP_GET_AND_CLEAR + static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep) + { + pte_t pte = *ptep; +@@ -142,6 +134,7 @@ + return pte; + } + ++#define __HAVE_ARCH_PTEP_CLEAR_FLUSH + #define ptep_clear_flush(vma, addr, ptep) \ + ({ \ + pte_t *__ptep = (ptep); \ +@@ -159,6 +152,7 @@ + __res; \ + }) + ++#define __HAVE_ARCH_PTE_SAME + static inline int pte_same(pte_t a, pte_t b) + { + return a.pte_low == b.pte_low && a.pte_high == b.pte_high; +diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/pgtable_64.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/pgtable_64.h +--- linux-2.6.25/include/asm-x86/mach-xen/asm/pgtable_64.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/pgtable_64.h 2008-05-23 20:39:03.000000000 +0200 @@ -43,12 +43,9 @@ #define swapper_pg_dir init_level4_pgt @@ -11051,8 +11025,9 @@ #define __HAVE_ARCH_PTEP_GET_AND_CLEAR #define __HAVE_ARCH_PTEP_GET_AND_CLEAR_FULL #define __HAVE_ARCH_PTEP_CLEAR_FLUSH ---- a/include/asm-x86/mach-xen/asm/processor_32.h -+++ b/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 +--- linux-2.6.25/include/asm-x86/mach-xen/asm/processor_32.h 2008-05-23 20:51:22.000000000 +0200 ++++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/processor_32.h 2008-05-23 20:39:03.000000000 +0200 @@ -146,6 +146,18 @@ #define X86_EFLAGS_VIP 0x00100000 /* Virtual Interrupt Pending */ #define X86_EFLAGS_ID 0x00200000 /* CPUID detection flag */ @@ -11164,8 +11139,9 @@ /* from system description table in BIOS. Mostly for MCA use, but others may find it useful. */ extern unsigned int machine_id; ---- a/include/asm-x86/mach-xen/asm/processor_64.h -+++ b/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 +--- linux-2.6.25/include/asm-x86/mach-xen/asm/processor_64.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/processor_64.h 2008-05-23 20:39:03.000000000 +0200 @@ -484,6 +484,8 @@ : :"a" (eax), "c" (ecx)); } @@ -11175,8 +11151,9 @@ #define stack_current() \ ({ \ struct thread_info *ti; \ ---- a/include/asm-x86/mach-xen/asm/segment_32.h -+++ b/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 +--- linux-2.6.25/include/asm-x86/mach-xen/asm/segment_32.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/segment_32.h 2008-05-23 20:39:03.000000000 +0200 @@ -61,11 +61,9 @@ #define GDT_ENTRY_KERNEL_CS (GDT_ENTRY_KERNEL_BASE + 0) @@ -11218,8 +11195,9 @@ + +#define get_kernel_rpl() (xen_feature(XENFEAT_supervisor_mode_kernel)?0:1) #endif ---- a/include/asm-x86/mach-xen/asm/smp_32.h -+++ b/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 +--- linux-2.6.25/include/asm-x86/mach-xen/asm/smp_32.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/smp_32.h 2008-05-23 20:39:03.000000000 +0200 @@ -79,25 +79,36 @@ return GET_APIC_ID(*(unsigned long *)(APIC_BASE+APIC_ID)); } @@ -11264,8 +11242,9 @@ +#endif + #endif ---- a/include/asm-x86/mach-xen/asm/smp_64.h -+++ b/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 +--- linux-2.6.25/include/asm-x86/mach-xen/asm/smp_64.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/smp_64.h 2008-05-23 20:39:03.000000000 +0200 @@ -4,15 +4,12 @@ /* * We need the APIC definitions automatically as part of 'smp.h' @@ -11371,8 +11350,9 @@ +#endif /* !CONFIG_SMP */ #endif ---- a/include/asm-x86/mach-xen/asm/system_32.h -+++ b/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 +--- linux-2.6.25/include/asm-x86/mach-xen/asm/system_32.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/system_32.h 2008-05-23 20:39:03.000000000 +0200 @@ -267,6 +267,9 @@ #define cmpxchg(ptr,o,n)\ ((__typeof__(*(ptr)))__cmpxchg((ptr),(unsigned long)(o),\ @@ -11383,15 +11363,10 @@ #endif static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old, -@@ -291,6 +294,39 @@ - : "=a"(prev) - : "r"(new), "m"(*__xg(ptr)), "0"(old) - : "memory"); -+ return prev; -+ } -+ return old; -+} -+ +@@ -296,6 +299,39 @@ + return old; + } + +/* + * Always use locked operations when touching memory shared with a + * hypervisor, since the system may be SMP even if the guest kernel @@ -11420,11 +11395,17 @@ + : "=a"(prev) + : "r"(new), "m"(*__xg(ptr)), "0"(old) + : "memory"); - return prev; - } - return old; ---- a/include/asm-x86/mach-xen/asm/system_64.h -+++ b/include/asm-x86/mach-xen/asm/system_64.h ++ return prev; ++ } ++ return old; ++} ++ + #ifndef CONFIG_X86_CMPXCHG + /* + * Building a kernel capable running on 80386. It may be necessary to +diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/system_64.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/system_64.h +--- linux-2.6.25/include/asm-x86/mach-xen/asm/system_64.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/system_64.h 2008-05-23 20:39:03.000000000 +0200 @@ -24,6 +24,7 @@ #define __EXTRA_CLOBBER \ ,"rcx","rbx","rdx","r8","r9","r10","r11","r12","r13","r14","r15" @@ -11433,8 +11414,9 @@ #define switch_to(prev,next,last) \ asm volatile(SAVE_CONTEXT \ "movq %%rsp,%P[threadrsp](%[prev])\n\t" /* save RSP */ \ ---- a/include/asm-x86/mach-xen/asm/tlbflush_32.h -+++ b/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 +--- linux-2.6.25/include/asm-x86/mach-xen/asm/tlbflush_32.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/tlbflush_32.h 2008-05-23 20:39:03.000000000 +0200 @@ -8,8 +8,6 @@ #define __flush_tlb_global() xen_tlb_flush() #define __flush_tlb_all() xen_tlb_flush() @@ -11444,8 +11426,9 @@ #define cpu_has_invlpg (boot_cpu_data.x86 > 3) #define __flush_tlb_single(addr) xen_invlpg(addr) ---- a/include/asm-x86/mach-xen/asm/tlbflush_64.h -+++ b/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 +--- linux-2.6.25/include/asm-x86/mach-xen/asm/tlbflush_64.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/tlbflush_64.h 2008-05-23 20:39:03.000000000 +0200 @@ -12,9 +12,6 @@ */ #define __flush_tlb_global() xen_tlb_flush() @@ -11456,8 +11439,9 @@ #define __flush_tlb_all() __flush_tlb_global() #define __flush_tlb_one(addr) xen_invlpg((unsigned long)addr) ---- a/include/asm-x86/thread_info_64.h -+++ b/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 +--- linux-2.6.25/include/asm-x86/thread_info_64.h 2008-04-17 04:49:44.000000000 +0200 ++++ linux-2.6.25-xen/include/asm-x86/thread_info_64.h 2008-05-23 20:39:03.000000000 +0200 @@ -157,10 +157,14 @@ (_TIF_SIGPENDING|_TIF_SINGLESTEP|_TIF_MCE_NOTIFY|_TIF_HRTICK_RESCHED) @@ -11473,8 +11457,9 @@ #define PREEMPT_ACTIVE 0x10000000 ---- a/include/linux/skbuff.h -+++ b/include/linux/skbuff.h +diff -Naur linux-2.6.25/include/linux/skbuff.h linux-2.6.25-xen/include/linux/skbuff.h +--- linux-2.6.25/include/linux/skbuff.h 2008-05-23 20:51:15.000000000 +0200 ++++ linux-2.6.25-xen/include/linux/skbuff.h 2008-05-23 20:39:03.000000000 +0200 @@ -1821,5 +1821,12 @@ } @@ -11488,8 +11473,9 @@ + #endif /* __KERNEL__ */ #endif /* _LINUX_SKBUFF_H */ ---- a/include/xen/evtchn.h -+++ b/include/xen/evtchn.h +diff -Naur linux-2.6.25/include/xen/evtchn.h linux-2.6.25-xen/include/xen/evtchn.h +--- linux-2.6.25/include/xen/evtchn.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/include/xen/evtchn.h 2008-05-23 20:39:03.000000000 +0200 @@ -54,34 +54,34 @@ */ int bind_caller_port_to_irqhandler( @@ -11530,8 +11516,9 @@ unsigned long irqflags, const char *devname, void *dev_id); ---- a/include/xen/xencons.h -+++ b/include/xen/xencons.h +diff -Naur linux-2.6.25/include/xen/xencons.h linux-2.6.25-xen/include/xen/xencons.h +--- linux-2.6.25/include/xen/xencons.h 2008-05-23 20:51:11.000000000 +0200 ++++ linux-2.6.25-xen/include/xen/xencons.h 2008-05-23 20:39:03.000000000 +0200 @@ -8,7 +8,7 @@ void xencons_resume(void); @@ -11541,8 +11528,9 @@ void xencons_tx(void); int xencons_ring_init(void); ---- a/mm/mprotect.c -+++ b/mm/mprotect.c +diff -Naur linux-2.6.25/mm/mprotect.c linux-2.6.25-xen/mm/mprotect.c +--- linux-2.6.25/mm/mprotect.c 2008-05-23 20:51:15.000000000 +0200 ++++ linux-2.6.25-xen/mm/mprotect.c 2008-05-23 20:39:03.000000000 +0200 @@ -86,7 +86,7 @@ next = pmd_addr_end(addr, end); if (pmd_none_or_clear_bad(pmd)) @@ -11552,9 +11540,10 @@ continue; change_pte_range(mm, pmd, addr, next, newprot, dirty_accountable); } while (pmd++, addr = next, addr != end); ---- a/net/core/dev.c -+++ b/net/core/dev.c -@@ -1611,15 +1611,14 @@ +diff -Naur linux-2.6.25/net/core/dev.c linux-2.6.25-xen/net/core/dev.c +--- linux-2.6.25/net/core/dev.c 2008-05-23 20:51:15.000000000 +0200 ++++ linux-2.6.25-xen/net/core/dev.c 2008-05-23 20:39:03.000000000 +0200 +@@ -1607,15 +1607,14 @@ } if ((skb->h.raw + skb->csum + 2) > skb->tail) goto out; @@ -11572,7 +11561,7 @@ #endif /** -@@ -2115,7 +2114,7 @@ +@@ -2111,7 +2110,7 @@ case CHECKSUM_UNNECESSARY: skb->proto_data_valid = 1; break; @@ -11581,7 +11570,7 @@ /* XXX Implement me. */ default: skb->proto_data_valid = 0; -@@ -4648,7 +4647,6 @@ +@@ -4644,7 +4643,6 @@ EXPORT_SYMBOL(net_enable_timestamp); EXPORT_SYMBOL(net_disable_timestamp); EXPORT_SYMBOL(dev_get_flags);