--- 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 +++ trunk/kernel26-xen/patches-2.6.25-r1/1020-2.6.25-xen-patch-2.6.19.patch 2008/05/24 01:03:50 612 @@ -1,6 +1,138 @@ -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 +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 @@ -83,6 +83,7 @@ */ ENTRY(ia32_sysenter_target) @@ -50,20 +182,27 @@ .quad compat_sys_move_pages + .quad sys_getcpu ia32_syscall_end: -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 @@ +--- 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 - 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 +-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 @@ -54,7 +54,6 @@ /* * Knob to control our willingness to enable the local APIC. @@ -104,9 +243,8 @@ #endif } } -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 +--- a/arch/x86/kernel/apic_64-xen.c ++++ b/arch/x86/kernel/apic_64-xen.c @@ -43,7 +43,7 @@ */ void ack_bad_irq(unsigned int irq) @@ -172,9 +310,8 @@ #endif return 1; -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 +--- a/arch/x86/kernel/cpu/common-xen.c ++++ b/arch/x86/kernel/cpu/common-xen.c @@ -43,7 +43,7 @@ extern int disable_pse; @@ -238,9 +375,8 @@ /* Clear all 6 debug registers: */ set_debugreg(0, 0); -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 +--- a/arch/x86/kernel/e820_64-xen.c ++++ b/arch/x86/kernel/e820_64-xen.c @@ -16,6 +16,7 @@ #include #include @@ -721,9 +857,8 @@ } unsigned long pci_mem_start = 0xaeedbabe; -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 +--- a/arch/x86/kernel/early_printk-xen.c ++++ b/arch/x86/kernel/early_printk-xen.c @@ -244,20 +244,16 @@ static int __initdata keep_early; @@ -770,9 +905,8 @@ } -__setup("earlyprintk=", setup_early_printk); -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 +--- a/arch/x86/kernel/entry_32-xen.S ++++ b/arch/x86/kernel/entry_32-xen.S @@ -80,8 +80,12 @@ NMI_MASK = 0x80000000 @@ -1145,19 +1279,8 @@ .section .rodata,"a" #include "syscall_table.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.2 2008-05-23 18:49:01 niro Exp $ -- * - * Jun Nakajima - * Asit Mallick - * Modified for Xen +--- a/arch/x86/kernel/entry_64-xen.S ++++ b/arch/x86/kernel/entry_64-xen.S @@ -26,15 +23,25 @@ * at the top of the kernel process stack. * - partial stack frame: partially saved registers upto R11. @@ -1205,15 +1328,15 @@ CFI_DEF_CFA rsp,SS+8-\ref /*CFI_REL_OFFSET ss,SS-\ref*/ CFI_REL_OFFSET rsp,RSP-\ref -@@ -255,6 +264,8 @@ - CFI_REMEMBER_STATE - jnz tracesys +@@ -334,6 +343,8 @@ + LOAD_ARGS ARGOFFSET /* reload args from stack in case ptrace changed it */ + RESTORE_REST cmpq $__NR_syscall_max,%rax + movq $-ENOSYS,%rcx + cmova %rcx,%rax - ja badsys - movq %r10,%rcx - call *sys_call_table(,%rax,8) # XXX: rip relative + ja 1f + movq %r10,%rcx /* fixup for C */ + call *sys_call_table(,%rax,8) @@ -349,6 +360,7 @@ */ ENTRY(int_ret_from_sys_call) @@ -1390,9 +1513,8 @@ ENTRY(alignment_check) errorentry do_alignment_check -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 +--- a/arch/x86/kernel/genapic_xen_64.c ++++ b/arch/x86/kernel/genapic_xen_64.c @@ -71,6 +71,13 @@ return cpu_online_map; } @@ -1417,21 +1539,8 @@ #ifdef CONFIG_XEN_PRIVILEGED_GUEST .apic_id_registered = xen_apic_id_registered, #endif -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 +--- a/arch/x86/kernel/head64-xen.c ++++ b/arch/x86/kernel/head64-xen.c @@ -54,11 +54,9 @@ new_data = *(int *) (x86_boot_params + NEW_CL_POINTER); if (!new_data) { @@ -1513,19 +1622,19 @@ - setup_boot_cpu_data(); start_kernel(); } -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.2 2008-05-23 18:49:01 niro Exp $ -- * - * Jun Nakajima - * Modified for Xen - */ +--- 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 @@ -149,7 +146,7 @@ .quad 0,0 /* TSS */ .quad 0,0 /* LDT */ @@ -1535,9 +1644,8 @@ gdt_end: /* asm/segment.h:GDT_ENTRIES must match this */ /* This should be a multiple of the cache line size */ -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 +--- a/arch/x86/kernel/io_apic_32-xen.c ++++ b/arch/x86/kernel/io_apic_32-xen.c @@ -31,6 +31,9 @@ #include #include @@ -2612,9 +2720,8 @@ + return 0; +} +early_param("noapic", parse_noapic); -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 +--- a/arch/x86/kernel/io_apic_64-xen.c ++++ b/arch/x86/kernel/io_apic_64-xen.c @@ -26,9 +26,12 @@ #include #include @@ -2742,8 +2849,10 @@ 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 @@ -2753,13 +2862,12 @@ +{ + 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 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) +-#define clear_IO_APIC() ((void)0) +/* + * Synchronize the IO-APIC and the CPU by doing + * a dummy read from the IO-APIC @@ -2772,13 +2880,12 @@ +#endif +} --#define clear_IO_APIC() ((void)0) +-#else +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; @@ -4306,9 +4413,8 @@ spin_unlock_irqrestore(&ioapic_lock, flags); return 0; -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 +--- a/arch/x86/kernel/ioport_64-xen.c ++++ b/arch/x86/kernel/ioport_64-xen.c @@ -58,6 +58,7 @@ memset(bitmap, 0xff, IO_BITMAP_BYTES); @@ -4317,9 +4423,8 @@ set_xen_guest_handle(set_iobitmap.bitmap, (char *)bitmap); set_iobitmap.nr_ports = IO_BITMAP_BITS; -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 +--- a/arch/x86/kernel/irq_32-xen.c ++++ b/arch/x86/kernel/irq_32-xen.c @@ -53,8 +53,10 @@ */ fastcall unsigned int do_IRQ(struct pt_regs *regs) @@ -4376,9 +4481,8 @@ seq_printf(p, " %s", action->name); for (action=action->next; action; action = action->next) -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 +--- a/arch/x86/kernel/irq_64-xen.c ++++ b/arch/x86/kernel/irq_64-xen.c @@ -20,11 +20,6 @@ #include @@ -4458,9 +4562,8 @@ + printk("unexpected IRQ trap at irq %02x\n", irq); } #endif -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 +--- a/arch/x86/kernel/ldt_32-xen.c ++++ b/arch/x86/kernel/ldt_32-xen.c @@ -1,5 +1,5 @@ /* - * linux/kernel/ldt.c @@ -4468,29 +4571,8 @@ * * Copyright (C) 1992 Krishna Balasubramanian and Linus Torvalds * Copyright (C) 1999 Ingo Molnar -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 +--- a/arch/x86/kernel/microcode-xen.c ++++ b/arch/x86/kernel/microcode-xen.c @@ -2,6 +2,7 @@ * Intel CPU Microcode Update Driver for Linux * @@ -4626,9 +4708,8 @@ module_init(microcode_init) module_exit(microcode_exit) -MODULE_ALIAS_MISCDEV(MICROCODE_MINOR); -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 +--- a/arch/x86/kernel/mpparse_32-xen.c ++++ b/arch/x86/kernel/mpparse_32-xen.c @@ -30,6 +30,7 @@ #include @@ -4795,9 +4876,8 @@ /* * Mapping between Global System Interrups, which * represent all possible interrupts, and IRQs -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 +--- a/arch/x86/kernel/mpparse_64-xen.c ++++ b/arch/x86/kernel/mpparse_64-xen.c @@ -41,8 +41,7 @@ * Various Linux-internal data structures created from the * MP-table. @@ -5411,9 +5491,8 @@ - -#endif /*CONFIG_X86_IO_APIC*/ #endif /*CONFIG_ACPI*/ -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 +--- a/arch/x86/kernel/pci-dma_32-xen.c ++++ b/arch/x86/kernel/pci-dma_32-xen.c @@ -116,8 +116,7 @@ { int i, rc; @@ -5472,9 +5551,8 @@ if (swiotlb) swiotlb_unmap_single(dev, dma_addr, size, direction); else -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 +--- a/arch/x86/kernel/pci-swiotlb_64-xen.c ++++ b/arch/x86/kernel/pci-swiotlb_64-xen.c @@ -3,7 +3,8 @@ #include #include @@ -5485,9 +5563,8 @@ #include #include #include -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 +--- a/arch/x86/kernel/process_32-xen.c ++++ b/arch/x86/kernel/process_32-xen.c @@ -37,6 +37,7 @@ #include #include @@ -5577,9 +5654,8 @@ sp -= get_random_int() % 8192; return sp & ~0xf; } -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 +--- a/arch/x86/kernel/process_64-xen.c ++++ b/arch/x86/kernel/process_64-xen.c @@ -89,25 +89,24 @@ } EXPORT_SYMBOL(idle_notifier_unregister); @@ -5786,9 +5862,103 @@ sp -= get_random_int() % 8192; return sp & ~0xf; } -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 +--- 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 @@ -56,6 +56,7 @@ #include #include @@ -6070,9 +6240,6 @@ - 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. @@ -6082,16 +6249,16 @@ + if (!arg) + return -EINVAL; -- else if (!memcmp(from, "acpi_sci=high", 13)) -- acpi_sci_flags.polarity = 1; +- else if (!memcmp(from, "acpi_sci=level", 14)) +- acpi_sci_flags.trigger = 3; + elfcorehdr_addr = memparse(arg, &arg); + return 0; +} +early_param("elfcorehdr", parse_elfcorehdr); +#endif /* CONFIG_PROC_VMCORE */ -- else if (!memcmp(from, "acpi_sci=low", 12)) -- acpi_sci_flags.polarity = 3; +- else if (!memcmp(from, "acpi_sci=high", 13)) +- acpi_sci_flags.polarity = 1; +/* + * highmem=size forces highmem to be exactly 'size' bytes. + * This works even on boxes that have no highmem otherwise. @@ -6102,24 +6269,16 @@ + if (!arg) + return -EINVAL; --#ifdef CONFIG_X86_IO_APIC -- else if (!memcmp(from, "acpi_skip_timer_override", 24)) -- acpi_skip_timer_override = 1; +- else if (!memcmp(from, "acpi_sci=low", 12)) +- acpi_sci_flags.polarity = 3; + highmem_pages = memparse(arg, &arg) >> PAGE_SHIFT; + return 0; +} +early_param("highmem", parse_highmem); -- if (!memcmp(from, "disable_timer_pin_1", 19)) -- disable_timer_pin_1 = 1; -- if (!memcmp(from, "enable_timer_pin_1", 18)) -- disable_timer_pin_1 = -1; -- -- /* disable IO-APIC */ -- else if (!memcmp(from, "noapic", 6)) -- disable_ioapic_setup(); --#endif /* CONFIG_X86_IO_APIC */ --#endif /* CONFIG_ACPI */ +-#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 @@ -6130,6 +6289,17 @@ + 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)) +- disable_timer_pin_1 = -1; +- +- /* disable IO-APIC */ +- else if (!memcmp(from, "noapic", 6)) +- disable_ioapic_setup(); +-#endif /* CONFIG_X86_IO_APIC */ +-#endif /* CONFIG_ACPI */ +- -#ifdef CONFIG_X86_LOCAL_APIC - /* enable local APIC */ - else if (!memcmp(from, "lapic", 5)) @@ -6351,105 +6521,8 @@ #ifdef CONFIG_ACPI acpi_boot_init(); -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 +--- a/arch/x86/kernel/setup_64-xen.c ++++ b/arch/x86/kernel/setup_64-xen.c @@ -118,16 +118,6 @@ unsigned long mmu_cr4_features; @@ -6873,9 +6946,8 @@ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* VIA/Cyrix/Centaur-defined */ -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 +--- a/arch/x86/kernel/smp_32-xen.c ++++ b/arch/x86/kernel/smp_32-xen.c @@ -279,8 +279,7 @@ * 2) Leave the mm if we are in the lazy tlb mode. */ @@ -6975,9 +7047,8 @@ + return 0; +} +EXPORT_SYMBOL(smp_call_function_single); -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 +--- a/arch/x86/kernel/smp_64-xen.c ++++ b/arch/x86/kernel/smp_64-xen.c @@ -381,9 +381,8 @@ /* prevent preemption and reschedule on another processor */ int me = get_cpu(); @@ -7039,9 +7110,8 @@ - return 0; /* Should not happen */ -#endif -} -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 +--- a/arch/x86/kernel/time_32-xen.c ++++ b/arch/x86/kernel/time_32-xen.c @@ -89,7 +89,6 @@ unsigned long vxtime_hz = PIT_TICK_RATE; struct vxtime_data __vxtime __section_vxtime; /* for vsyscalls */ @@ -7224,9 +7294,8 @@ if ((hpet_enable() >= 0) && hpet_use_timer) { printk("Using HPET for base-timer\n"); -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 +--- a/arch/x86/kernel/traps_32-xen.c ++++ b/arch/x86/kernel/traps_32-xen.c @@ -28,6 +28,7 @@ #include #include @@ -7429,7 +7498,8 @@ } } +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) +{ @@ -7442,8 +7512,7 @@ +{ + 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; @@ -7673,9 +7742,8 @@ #ifdef CONFIG_KPROBES fastcall void __kprobes do_int3(struct pt_regs *regs, long error_code) { -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 +--- a/arch/x86/kernel/traps_64-xen.c ++++ b/arch/x86/kernel/traps_64-xen.c @@ -23,6 +23,7 @@ #include #include @@ -8129,9 +8197,8 @@ -__setup("call_trace=", call_trace_setup); +early_param("call_trace", call_trace_setup); #endif -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 +--- a/arch/x86/kernel/vsyscall_64-xen.c ++++ b/arch/x86/kernel/vsyscall_64-xen.c @@ -26,6 +26,10 @@ #include #include @@ -8325,9 +8392,8 @@ return 0; } -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 +--- a/arch/x86/mach-xen/setup.c ++++ b/arch/x86/mach-xen/setup.c @@ -103,8 +103,10 @@ setup_xen_features(); @@ -8341,9 +8407,8 @@ if (HYPERVISOR_memory_op(XENMEM_machphys_mapping, &mapping) == 0) { machine_to_phys_mapping = (unsigned long *)mapping.v_start; -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 +--- a/arch/x86/mm/fault_32-xen.c ++++ b/arch/x86/mm/fault_32-xen.c @@ -27,21 +27,24 @@ #include #include @@ -8430,9 +8495,8 @@ yield(); down_read(&mm->mmap_sem); goto survive; -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 +--- a/arch/x86/mm/fault_64-xen.c ++++ b/arch/x86/mm/fault_64-xen.c @@ -40,8 +40,7 @@ #define PF_RSVD (1<<3) #define PF_INSTR (1<<4) @@ -8570,9 +8634,8 @@ } spin_unlock(&pgd_lock); set_bit(pgd_index(address), insync); -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 +--- a/arch/x86/mm/highmem_32-xen.c ++++ b/arch/x86/mm/highmem_32-xen.c @@ -38,11 +38,9 @@ idx = type + KM_TYPE_NR*smp_processor_id(); @@ -8639,9 +8702,8 @@ return (void*) vaddr; } -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 +--- a/arch/x86/mm/hypervisor.c ++++ b/arch/x86/mm/hypervisor.c @@ -569,7 +569,8 @@ #define MAX_BATCHED_FULL_PTES 32 @@ -8668,9 +8730,8 @@ if (++i == MAX_BATCHED_FULL_PTES) { if ((rc = HYPERVISOR_mmu_update( &u[0], i, NULL, DOMID_SELF)) != 0) -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 +--- a/arch/x86/mm/init_32-xen.c ++++ b/arch/x86/mm/init_32-xen.c @@ -464,16 +464,22 @@ * on Enable * off Disable @@ -8813,9 +8874,8 @@ unsigned long start_pfn = start >> PAGE_SHIFT; unsigned long nr_pages = size >> PAGE_SHIFT; -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 +--- a/arch/x86/mm/init_64-xen.c ++++ b/arch/x86/mm/init_64-xen.c @@ -61,8 +61,6 @@ extern unsigned long *contiguous_bitmap; @@ -9127,9 +9187,8 @@ } int kern_addr_valid(unsigned long addr) -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 +--- a/arch/x86/mm/ioremap_32-xen.c ++++ b/arch/x86/mm/ioremap_32-xen.c @@ -12,7 +12,7 @@ #include #include @@ -9177,9 +9236,8 @@ vunmap((void __force *) addr); return NULL; } -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 +--- a/arch/x86/mm/pageattr_64-xen.c ++++ b/arch/x86/mm/pageattr_64-xen.c @@ -371,8 +371,8 @@ BUG_ON(pud_none(*pud)); pmd = pmd_offset(pud, address); @@ -9244,9 +9302,8 @@ } } up_write(&init_mm.mmap_sem); -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 +--- a/arch/x86/mm/pgtable_32-xen.c ++++ b/arch/x86/mm/pgtable_32-xen.c @@ -68,7 +68,9 @@ printk(KERN_INFO "%lu pages writeback\n", global_page_state(NR_WRITEBACK)); @@ -9302,9 +9359,8 @@ } pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address) -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 +--- a/arch/x86/pci/irq-xen.c ++++ b/arch/x86/pci/irq-xen.c @@ -991,10 +991,6 @@ pci_name(bridge), 'A' + pin, irq); } @@ -9361,9 +9417,8 @@ - - return count; -} -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 +--- a/drivers/char/tpm/tpm_xen.c ++++ b/drivers/char/tpm/tpm_xen.c @@ -85,8 +85,7 @@ /* local function prototypes */ @@ -9383,9 +9438,8 @@ { struct tpm_private *tp = tpm_priv; unsigned long flags; -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 +--- a/drivers/pci/Kconfig ++++ b/drivers/pci/Kconfig @@ -45,7 +45,7 @@ config HT_IRQ bool "Interrupts on hypertransport devices" @@ -9395,9 +9449,20 @@ help This allows native hypertransport devices to use interrupts. -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 +--- 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 @@ -84,7 +84,7 @@ /* VM /proc information for memory */ extern unsigned long totalram_pages; @@ -9407,9 +9472,8 @@ extern unsigned long totalhigh_pages; #define inc_totalhigh_pages() (totalhigh_pages++) #define dec_totalhigh_pages() (totalhigh_pages--) -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 +--- a/drivers/xen/blkback/blkback.c ++++ b/drivers/xen/blkback/blkback.c @@ -288,7 +288,7 @@ wake_up(&blkif->wq); } @@ -9419,9 +9483,8 @@ { blkif_notify_work(dev_id); return IRQ_HANDLED; -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 +--- a/drivers/xen/blkback/common.h ++++ b/drivers/xen/blkback/common.h @@ -130,7 +130,7 @@ void blkif_xenbus_init(void); @@ -9431,9 +9494,8 @@ int blkif_schedule(void *arg); int blkback_barrier(struct xenbus_transaction xbt, -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 +--- a/drivers/xen/blkfront/blkfront.c ++++ b/drivers/xen/blkfront/blkfront.c @@ -69,7 +69,7 @@ static void kick_pending_request_queues(struct blkfront_info *); @@ -9452,9 +9514,8 @@ { struct request *req; blkif_response_t *bret; -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 +--- a/drivers/xen/blktap/blktap.c ++++ b/drivers/xen/blktap/blktap.c @@ -1175,7 +1175,7 @@ wake_up(&blkif->wq); } @@ -9464,9 +9525,8 @@ { blkif_notify_work(dev_id); return IRQ_HANDLED; -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 +--- a/drivers/xen/blktap/common.h ++++ b/drivers/xen/blktap/common.h @@ -112,7 +112,7 @@ void tap_blkif_xenbus_init(void); @@ -9476,9 +9536,8 @@ int tap_blkif_schedule(void *arg); int dom_to_devid(domid_t domid, int xenbus_id, blkif_t *blkif); -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 +--- a/drivers/xen/console/console.c ++++ b/drivers/xen/console/console.c @@ -345,7 +345,7 @@ static int xencons_priv_irq; static char x_char; @@ -9515,9 +9574,8 @@ xencons_tx(); -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 +--- a/drivers/xen/console/xencons_ring.c ++++ b/drivers/xen/console/xencons_ring.c @@ -83,7 +83,7 @@ return sent; } @@ -9536,9 +9594,8 @@ cons++; } -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 +--- a/drivers/xen/core/evtchn.c ++++ b/drivers/xen/core/evtchn.c @@ -507,7 +507,7 @@ int bind_caller_port_to_irqhandler( @@ -9680,9 +9737,8 @@ + handle_level_irq, "level"); } } -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 +--- a/drivers/xen/core/reboot.c ++++ b/drivers/xen/core/reboot.c @@ -13,6 +13,7 @@ #ifdef HAVE_XEN_PLATFORM_COMPAT_H @@ -9700,9 +9756,8 @@ #endif } -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 +--- a/drivers/xen/core/smpboot.c ++++ b/drivers/xen/core/smpboot.c @@ -25,8 +25,8 @@ #include #include @@ -9723,9 +9778,8 @@ #endif void __init prefill_possible_map(void) -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 +--- a/drivers/xen/fbfront/xenfb.c ++++ b/drivers/xen/fbfront/xenfb.c @@ -523,8 +523,7 @@ .fb_set_par = xenfb_set_par, }; @@ -9736,9 +9790,8 @@ { /* * No in events recognized, simply ignore them all. -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 +--- a/drivers/xen/fbfront/xenkbd.c ++++ b/drivers/xen/fbfront/xenkbd.c @@ -46,7 +46,7 @@ * to do that. */ @@ -9748,9 +9801,8 @@ { struct xenkbd_info *info = dev_id; struct xenkbd_page *page = info->page; -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 +--- a/drivers/xen/gntdev/gntdev.c ++++ b/drivers/xen/gntdev/gntdev.c @@ -755,9 +755,6 @@ BUG(); } @@ -9790,22 +9842,8 @@ } return copy; -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 +--- a/drivers/xen/netback/accel.c ++++ b/drivers/xen/netback/accel.c @@ -65,7 +65,7 @@ if (IS_ERR(eth_name)) { @@ -9815,9 +9853,8 @@ __FUNCTION__, PTR_ERR(eth_name)); return 0; } else { -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 +--- a/drivers/xen/netback/common.h ++++ b/drivers/xen/netback/common.h @@ -200,7 +200,7 @@ int netif_be_start_xmit(struct sk_buff *skb, struct net_device *dev); @@ -9827,9 +9864,8 @@ static inline int netbk_can_queue(struct net_device *dev) { -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 +--- a/drivers/xen/netback/loopback.c ++++ b/drivers/xen/netback/loopback.c @@ -151,7 +151,7 @@ np->stats.rx_bytes += skb->len; np->stats.rx_packets++; @@ -9839,9 +9875,8 @@ /* Defer checksum calculation. */ skb->proto_csum_blank = 1; /* Must be a local packet: assert its integrity. */ -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 +--- a/drivers/xen/netback/netback.c ++++ b/drivers/xen/netback/netback.c @@ -677,7 +677,7 @@ id = meta[npo.meta_cons].id; flags = nr_frags ? NETRXF_more_data : 0; @@ -9869,9 +9904,8 @@ { struct list_head *ent; netif_t *netif; -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 +--- a/drivers/xen/netfront/netfront.c ++++ b/drivers/xen/netfront/netfront.c @@ -136,7 +136,7 @@ { return skb_is_gso(skb) && @@ -9908,9 +9942,8 @@ { struct net_device *dev = dev_id; struct netfront_info *np = netdev_priv(dev); -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 +--- a/drivers/xen/pciback/pciback.h ++++ b/drivers/xen/pciback/pciback.h @@ -87,7 +87,7 @@ void pciback_release_devices(struct pciback_device *pdev); @@ -9920,9 +9953,8 @@ void pciback_do_op(void *data); int pciback_xenbus_register(void); -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 +--- a/drivers/xen/pciback/pciback_ops.c ++++ b/drivers/xen/pciback/pciback_ops.c @@ -85,7 +85,7 @@ test_and_schedule_op(pdev); } @@ -9932,9 +9964,8 @@ { struct pciback_device *pdev = dev_id; -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 +--- a/drivers/xen/pcifront/pci_op.c ++++ b/drivers/xen/pcifront/pci_op.c @@ -392,10 +392,16 @@ d = pci_scan_single_device(b, devfn); @@ -9953,9 +9984,8 @@ } } -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 +--- a/drivers/xen/privcmd/compat_privcmd.c ++++ b/drivers/xen/privcmd/compat_privcmd.c @@ -18,7 +18,6 @@ * Authors: Jimi Xenidis */ @@ -9964,9 +9994,8 @@ #include #include #include -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 +--- a/drivers/xen/privcmd/privcmd.c ++++ b/drivers/xen/privcmd/privcmd.c @@ -236,7 +236,7 @@ #endif @@ -9976,9 +10005,8 @@ vma->vm_ops = &privcmd_vm_ops; vma->vm_private_data = NULL; -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 +--- a/drivers/xen/sfc_netback/accel_xenbus.c ++++ b/drivers/xen/sfc_netback/accel_xenbus.c @@ -68,8 +68,7 @@ @@ -9999,9 +10027,8 @@ { VPRINTK("netirq %d from device %s\n", irq, ((struct xenbus_device *)context)->nodename); -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 +--- a/drivers/xen/sfc_netfront/accel.h ++++ b/drivers/xen/sfc_netfront/accel.h @@ -449,10 +449,8 @@ u32 ip, u16 port, u8 protocol); @@ -10015,9 +10042,8 @@ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20) extern void netfront_accel_msg_from_bend(struct work_struct *context); -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 +--- a/drivers/xen/sfc_netfront/accel_msg.c ++++ b/drivers/xen/sfc_netfront/accel_msg.c @@ -490,8 +490,7 @@ } @@ -10038,9 +10064,8 @@ { netfront_accel_vnic *vnic = (netfront_accel_vnic *)context; struct net_device *net_dev = vnic->net_dev; -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 +--- a/drivers/xen/sfc_netfront/accel_tso.c ++++ b/drivers/xen/sfc_netfront/accel_tso.c @@ -363,7 +363,7 @@ tso_check_safe(skb); @@ -10050,9 +10075,8 @@ EPRINTK("Trying to TSO send a packet without HW checksum\n"); tso_start(&state, skb); -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 +--- a/drivers/xen/sfc_netfront/accel_vi.c ++++ b/drivers/xen/sfc_netfront/accel_vi.c @@ -461,7 +461,7 @@ frag_i = -1; @@ -10071,9 +10095,8 @@ /* Set to zero to encourage falcon to work it out for us */ *(u16*)(skb->h.raw + skb->csum) = 0; } -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 +--- a/drivers/xen/tpmback/common.h ++++ b/drivers/xen/tpmback/common.h @@ -61,7 +61,7 @@ void tpmif_xenbus_init(void); void tpmif_xenbus_exit(void); @@ -10083,9 +10106,8 @@ long int tpmback_get_instance(struct backend_info *bi); -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 +--- a/drivers/xen/tpmback/tpmback.c ++++ b/drivers/xen/tpmback/tpmback.c @@ -502,7 +502,7 @@ list_del(&pak->next); write_unlock_irqrestore(&dataex.pak_lock, flags); @@ -10104,9 +10126,8 @@ { tpmif_t *tpmif = (tpmif_t *) dev_id; -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 +--- a/drivers/xen/xenbus/xenbus_comms.c ++++ b/drivers/xen/xenbus/xenbus_comms.c @@ -55,7 +55,7 @@ static DECLARE_WAIT_QUEUE_HEAD(xb_waitq); @@ -10116,9 +10137,8 @@ { if (unlikely(xenstored_ready == 0)) { xenstored_ready = 1; -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 +--- a/drivers/xen/xenoprof/xenoprofile.c ++++ b/drivers/xen/xenoprof/xenoprofile.c @@ -195,7 +195,7 @@ } @@ -10128,9 +10148,8 @@ { struct xenoprof_buf * buf; static unsigned long flag; -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 +--- a/include/asm-generic/pgtable.h ++++ b/include/asm-generic/pgtable.h @@ -100,7 +100,7 @@ #endif @@ -10140,9 +10159,8 @@ #endif #ifndef __HAVE_ARCH_PTE_SAME -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 +--- a/include/asm-x86/mach-xen/asm/desc_32.h ++++ b/include/asm-x86/mach-xen/asm/desc_32.h @@ -32,52 +32,110 @@ return (struct desc_struct *)per_cpu(cpu_gdt_descr, cpu).address; } @@ -10303,9 +10321,8 @@ static inline void clear_LDT(void) { int cpu = get_cpu(); -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 +--- a/include/asm-x86/mach-xen/asm/dma-mapping_64.h ++++ b/include/asm-x86/mach-xen/asm/dma-mapping_64.h @@ -55,13 +55,6 @@ extern struct dma_mapping_ops* dma_ops; extern int iommu_merge; @@ -10320,9 +10337,8 @@ #if 0 static inline int dma_mapping_error(dma_addr_t dma_addr) { -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 +--- a/include/asm-x86/mach-xen/asm/e820_64.h ++++ b/include/asm-x86/mach-xen/asm/e820_64.h @@ -19,13 +19,9 @@ #define E820_RAM 1 @@ -10360,9 +10376,8 @@ extern struct e820map e820; -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 +--- a/include/asm-x86/mach-xen/asm/fixmap_32.h ++++ b/include/asm-x86/mach-xen/asm/fixmap_32.h @@ -55,7 +55,7 @@ #ifdef CONFIG_X86_LOCAL_APIC FIX_APIC_BASE, /* local (CPU) APIC) -- required for SMP or not */ @@ -10384,9 +10399,8 @@ #define set_fixmap(idx, phys) \ __set_fixmap(idx, phys, PAGE_KERNEL) -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 +--- a/include/asm-x86/mach-xen/asm/fixmap_64.h ++++ b/include/asm-x86/mach-xen/asm/fixmap_64.h @@ -41,7 +41,7 @@ #ifdef CONFIG_X86_LOCAL_APIC FIX_APIC_BASE, /* local (CPU) APIC) -- required for SMP or not */ @@ -10396,9 +10410,8 @@ FIX_IO_APIC_BASE_0, FIX_IO_APIC_BASE_END = FIX_IO_APIC_BASE_0 + MAX_IO_APICS-1, #endif -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 +--- a/include/asm-x86/mach-xen/asm/hw_irq_32.h ++++ b/include/asm-x86/mach-xen/asm/hw_irq_32.h @@ -17,8 +17,6 @@ #include #include @@ -10428,9 +10441,8 @@ #define platform_legacy_irq(irq) ((irq) < 16) #endif -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 +--- a/include/asm-x86/mach-xen/asm/hw_irq_64.h ++++ b/include/asm-x86/mach-xen/asm/hw_irq_64.h @@ -19,8 +19,7 @@ #include #include @@ -10455,9 +10467,8 @@ /* * Various low-level irq details needed by irq.c, process.c, -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 +--- a/include/asm-x86/mach-xen/asm/io_32.h ++++ b/include/asm-x86/mach-xen/asm/io_32.h @@ -237,33 +237,6 @@ #define eth_io_copy_and_sum(a,b,c,d) eth_copy_and_sum((a),(void __force *)(b),(c),(d)) @@ -10492,9 +10503,8 @@ /* * Cache management * -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 +--- a/include/asm-x86/mach-xen/asm/io_64.h ++++ b/include/asm-x86/mach-xen/asm/io_64.h @@ -273,33 +273,6 @@ #define eth_io_copy_and_sum(a,b,c,d) eth_copy_and_sum((a),(void *)(b),(c),(d)) @@ -10529,9 +10539,8 @@ /* Nothing to do */ #define dma_cache_inv(_start,_size) do { } while (0) -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 +--- a/include/asm-x86/mach-xen/asm/pgtable-2level.h ++++ b/include/asm-x86/mach-xen/asm/pgtable-2level.h @@ -23,14 +23,6 @@ set_pte((ptep), (pteval)); \ } while (0) @@ -10572,9 +10581,66 @@ #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))) -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 +--- 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 @@ -260,31 +260,89 @@ # include #endif @@ -10785,68 +10851,8 @@ #include #endif /* _I386_PGTABLE_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 +--- a/include/asm-x86/mach-xen/asm/pgtable_64.h ++++ b/include/asm-x86/mach-xen/asm/pgtable_64.h @@ -43,12 +43,9 @@ #define swapper_pg_dir init_level4_pgt @@ -11025,9 +11031,8 @@ #define __HAVE_ARCH_PTEP_GET_AND_CLEAR #define __HAVE_ARCH_PTEP_GET_AND_CLEAR_FULL #define __HAVE_ARCH_PTEP_CLEAR_FLUSH -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 +--- a/include/asm-x86/mach-xen/asm/processor_32.h ++++ b/include/asm-x86/mach-xen/asm/processor_32.h @@ -146,6 +146,18 @@ #define X86_EFLAGS_VIP 0x00100000 /* Virtual Interrupt Pending */ #define X86_EFLAGS_ID 0x00200000 /* CPUID detection flag */ @@ -11139,9 +11144,8 @@ /* from system description table in BIOS. Mostly for MCA use, but others may find it useful. */ extern unsigned int machine_id; -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 +--- a/include/asm-x86/mach-xen/asm/processor_64.h ++++ b/include/asm-x86/mach-xen/asm/processor_64.h @@ -484,6 +484,8 @@ : :"a" (eax), "c" (ecx)); } @@ -11151,9 +11155,8 @@ #define stack_current() \ ({ \ struct thread_info *ti; \ -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 +--- a/include/asm-x86/mach-xen/asm/segment_32.h ++++ b/include/asm-x86/mach-xen/asm/segment_32.h @@ -61,11 +61,9 @@ #define GDT_ENTRY_KERNEL_CS (GDT_ENTRY_KERNEL_BASE + 0) @@ -11195,9 +11198,8 @@ + +#define get_kernel_rpl() (xen_feature(XENFEAT_supervisor_mode_kernel)?0:1) #endif -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 +--- a/include/asm-x86/mach-xen/asm/smp_32.h ++++ b/include/asm-x86/mach-xen/asm/smp_32.h @@ -79,25 +79,36 @@ return GET_APIC_ID(*(unsigned long *)(APIC_BASE+APIC_ID)); } @@ -11242,9 +11244,8 @@ +#endif + #endif -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 +--- a/include/asm-x86/mach-xen/asm/smp_64.h ++++ b/include/asm-x86/mach-xen/asm/smp_64.h @@ -4,15 +4,12 @@ /* * We need the APIC definitions automatically as part of 'smp.h' @@ -11350,9 +11351,8 @@ +#endif /* !CONFIG_SMP */ #endif -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 +--- a/include/asm-x86/mach-xen/asm/system_32.h ++++ b/include/asm-x86/mach-xen/asm/system_32.h @@ -267,6 +267,9 @@ #define cmpxchg(ptr,o,n)\ ((__typeof__(*(ptr)))__cmpxchg((ptr),(unsigned long)(o),\ @@ -11363,10 +11363,15 @@ #endif static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old, -@@ -296,6 +299,39 @@ - return old; - } - +@@ -291,6 +294,39 @@ + : "=a"(prev) + : "r"(new), "m"(*__xg(ptr)), "0"(old) + : "memory"); ++ return prev; ++ } ++ return old; ++} ++ +/* + * Always use locked operations when touching memory shared with a + * hypervisor, since the system may be SMP even if the guest kernel @@ -11395,17 +11400,11 @@ + : "=a"(prev) + : "r"(new), "m"(*__xg(ptr)), "0"(old) + : "memory"); -+ 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 + return prev; + } + return old; +--- a/include/asm-x86/mach-xen/asm/system_64.h ++++ b/include/asm-x86/mach-xen/asm/system_64.h @@ -24,6 +24,7 @@ #define __EXTRA_CLOBBER \ ,"rcx","rbx","rdx","r8","r9","r10","r11","r12","r13","r14","r15" @@ -11414,9 +11413,8 @@ #define switch_to(prev,next,last) \ asm volatile(SAVE_CONTEXT \ "movq %%rsp,%P[threadrsp](%[prev])\n\t" /* save RSP */ \ -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 +--- a/include/asm-x86/mach-xen/asm/tlbflush_32.h ++++ b/include/asm-x86/mach-xen/asm/tlbflush_32.h @@ -8,8 +8,6 @@ #define __flush_tlb_global() xen_tlb_flush() #define __flush_tlb_all() xen_tlb_flush() @@ -11426,9 +11424,8 @@ #define cpu_has_invlpg (boot_cpu_data.x86 > 3) #define __flush_tlb_single(addr) xen_invlpg(addr) -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 +--- a/include/asm-x86/mach-xen/asm/tlbflush_64.h ++++ b/include/asm-x86/mach-xen/asm/tlbflush_64.h @@ -12,9 +12,6 @@ */ #define __flush_tlb_global() xen_tlb_flush() @@ -11439,9 +11436,8 @@ #define __flush_tlb_all() __flush_tlb_global() #define __flush_tlb_one(addr) xen_invlpg((unsigned long)addr) -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 +--- a/include/asm-x86/thread_info_64.h ++++ b/include/asm-x86/thread_info_64.h @@ -157,10 +157,14 @@ (_TIF_SIGPENDING|_TIF_SINGLESTEP|_TIF_MCE_NOTIFY|_TIF_HRTICK_RESCHED) @@ -11457,9 +11453,8 @@ #define PREEMPT_ACTIVE 0x10000000 -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 +--- a/include/linux/skbuff.h ++++ b/include/linux/skbuff.h @@ -1821,5 +1821,12 @@ } @@ -11473,9 +11468,8 @@ + #endif /* __KERNEL__ */ #endif /* _LINUX_SKBUFF_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 +--- a/include/xen/evtchn.h ++++ b/include/xen/evtchn.h @@ -54,34 +54,34 @@ */ int bind_caller_port_to_irqhandler( @@ -11516,9 +11510,8 @@ unsigned long irqflags, const char *devname, void *dev_id); -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 +--- a/include/xen/xencons.h ++++ b/include/xen/xencons.h @@ -8,7 +8,7 @@ void xencons_resume(void); @@ -11528,9 +11521,8 @@ void xencons_tx(void); int xencons_ring_init(void); -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 +--- a/mm/mprotect.c ++++ b/mm/mprotect.c @@ -86,7 +86,7 @@ next = pmd_addr_end(addr, end); if (pmd_none_or_clear_bad(pmd)) @@ -11540,10 +11532,9 @@ continue; change_pte_range(mm, pmd, addr, next, newprot, dirty_accountable); } while (pmd++, addr = next, addr != end); -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 @@ +--- a/net/core/dev.c ++++ b/net/core/dev.c +@@ -1611,15 +1611,14 @@ } if ((skb->h.raw + skb->csum + 2) > skb->tail) goto out; @@ -11561,7 +11552,7 @@ #endif /** -@@ -2111,7 +2110,7 @@ +@@ -2115,7 +2114,7 @@ case CHECKSUM_UNNECESSARY: skb->proto_data_valid = 1; break; @@ -11570,7 +11561,7 @@ /* XXX Implement me. */ default: skb->proto_data_valid = 0; -@@ -4644,7 +4643,6 @@ +@@ -4648,7 +4647,6 @@ EXPORT_SYMBOL(net_enable_timestamp); EXPORT_SYMBOL(net_disable_timestamp); EXPORT_SYMBOL(dev_get_flags);