[kernel] r8064 - in dists/sid/linux-2.6/debian: .
patches/features/all/xen patches/series
Bastian Blank
waldi at alioth.debian.org
Sun Dec 31 21:28:21 UTC 2006
Author: waldi
Date: Sun Dec 31 22:28:20 2006
New Revision: 8064
Added:
dists/sid/linux-2.6/debian/patches/features/all/xen/fedora-2.6.18-36186.patch
- copied, changed from r8013, dists/sid/linux-2.6/debian/patches/features/all/xen/fedora-2.6.18-36156.patch
Removed:
dists/sid/linux-2.6/debian/patches/features/all/xen/fedora-2.6.18-36156.patch
Modified:
dists/sid/linux-2.6/debian/changelog
dists/sid/linux-2.6/debian/patches/series/9-extra
Log:
Update xen patch to changeset 36186 from Fedora 2.6.18 branch.
* debian/changelog: Update.
* debian/patches/features/all/xen/fedora-2.6.18-36156.patch: Remove.
* debian/patches/features/all/xen/fedora-2.6.18-36186.patch: Add.
* debian/patches/series/9-extra: Update.
Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog (original)
+++ dists/sid/linux-2.6/debian/changelog Sun Dec 31 22:28:20 2006
@@ -15,7 +15,7 @@
[ Bastian Blank ]
* Bump ABI to 4.
* Update vserver patch to 2.0.2.2-rc9.
- * Update xen patch to changeset 36156 from Fedora 2.6.18 branch.
+ * Update xen patch to changeset 36186 from Fedora 2.6.18 branch.
* Build only the pae version of xen. (closes: #390862)
[ dann frazier ]
@@ -124,7 +124,7 @@
memory accesses in ehci-hub-control() by adding an alignment attribute
to the tbuf array declaration. Thanks to David Miller for the patch.
- -- Christian T. Steigies <cts at debian.org> Sun, 31 Dec 2006 17:29:17 +0100
+ -- Bastian Blank <waldi at debian.org> Sun, 31 Dec 2006 22:26:47 +0100
linux-2.6 (2.6.18-8) unstable; urgency=low
Copied: dists/sid/linux-2.6/debian/patches/features/all/xen/fedora-2.6.18-36186.patch (from r8013, dists/sid/linux-2.6/debian/patches/features/all/xen/fedora-2.6.18-36156.patch)
==============================================================================
--- dists/sid/linux-2.6/debian/patches/features/all/xen/fedora-2.6.18-36156.patch (original)
+++ dists/sid/linux-2.6/debian/patches/features/all/xen/fedora-2.6.18-36186.patch Sun Dec 31 22:28:20 2006
@@ -1,5 +1,5 @@
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/boot-xen/Makefile linux-2.6.18-xen/arch/i386/boot-xen/Makefile
---- linux-2.6.18/arch/i386/boot-xen/Makefile 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/boot-xen/Makefile linux-2.6.18-xen/arch/i386/boot-xen/Makefile
+--- linux-2.6.18.3/arch/i386/boot-xen/Makefile 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/i386/boot-xen/Makefile 2006-11-19 14:26:21.000000000 +0100
@@ -0,0 +1,21 @@
+
@@ -23,10 +23,10 @@
+ install -m0664 .config $(INSTALL_ROOT)/boot/config-$(XINSTALL_NAME)$(INSTALL_SUFFIX)
+ install -m0664 System.map $(INSTALL_ROOT)/boot/System.map-$(XINSTALL_NAME)$(INSTALL_SUFFIX)
+ ln -f -s vmlinuz-$(XINSTALL_NAME)$(INSTALL_SUFFIX) $(INSTALL_ROOT)/boot/vmlinuz-$(VERSION).$(PATCHLEVEL)$(XENGUEST)$(INSTALL_SUFFIX)
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/Kconfig linux-2.6.18-xen/arch/i386/Kconfig
---- linux-2.6.18/arch/i386/Kconfig 2006-09-20 05:42:06.000000000 +0200
-+++ linux-2.6.18-xen/arch/i386/Kconfig 2006-11-19 14:26:21.000000000 +0100
-@@ -16,10 +16,12 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/Kconfig linux-2.6.18-xen/arch/i386/Kconfig
+--- linux-2.6.18.3/arch/i386/Kconfig 2006-09-20 05:42:06.000000000 +0200
++++ linux-2.6.18-xen/arch/i386/Kconfig 2006-12-05 18:42:36.000000000 +0100
+@@ -16,6 +16,7 @@
config GENERIC_TIME
bool
@@ -34,12 +34,7 @@
default y
config LOCKDEP_SUPPORT
- bool
-+ depends on !X86_XEN
- default y
-
- config STACKTRACE_SUPPORT
-@@ -103,6 +105,15 @@
+@@ -103,6 +104,15 @@
help
Choose this option if your computer is a standard PC or compatible.
@@ -55,7 +50,7 @@
config X86_ELAN
bool "AMD Elan"
help
-@@ -213,6 +224,7 @@
+@@ -213,6 +223,7 @@
config HPET_TIMER
bool "HPET Timer Support"
@@ -63,7 +58,7 @@
help
This enables the use of the HPET for the kernel's internal timer.
HPET is the next generation timer replacing legacy 8254s.
-@@ -263,7 +275,7 @@
+@@ -263,7 +274,7 @@
config X86_UP_APIC
bool "Local APIC support on uniprocessors"
@@ -72,7 +67,7 @@
help
A local APIC (Advanced Programmable Interrupt Controller) is an
integrated interrupt controller in the CPU. If you have a single-CPU
-@@ -288,12 +300,12 @@
+@@ -288,12 +299,12 @@
config X86_LOCAL_APIC
bool
@@ -87,7 +82,7 @@
default y
config X86_VISWS_APIC
-@@ -303,7 +315,7 @@
+@@ -303,7 +314,7 @@
config X86_MCE
bool "Machine Check Exception"
@@ -96,7 +91,7 @@
---help---
Machine Check Exception support allows the processor to notify the
kernel if it detects a problem (e.g. overheating, component failure).
-@@ -402,6 +414,7 @@
+@@ -402,6 +413,7 @@
config MICROCODE
tristate "/dev/cpu/microcode - Intel IA32 CPU microcode support"
@@ -104,7 +99,7 @@
---help---
If you say Y here and also to "/dev file system support" in the
'File systems' section, you will be able to update the microcode on
-@@ -419,6 +432,7 @@
+@@ -419,6 +431,7 @@
config X86_MSR
tristate "/dev/cpu/*/msr - Model-specific register support"
@@ -112,7 +107,7 @@
help
This device gives privileged processes access to the x86
Model-Specific Registers (MSRs). It is a character device with
-@@ -434,6 +448,10 @@
+@@ -434,6 +447,10 @@
with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
/dev/cpu/31/cpuid.
@@ -123,7 +118,7 @@
source "drivers/firmware/Kconfig"
choice
-@@ -607,7 +625,7 @@
+@@ -607,7 +624,7 @@
config HIGHPTE
bool "Allocate 3rd-level pagetables from highmem"
@@ -132,7 +127,7 @@
help
The VM uses one page table entry for each page of physical memory.
For systems with a lot of RAM, this can be wasteful of precious
-@@ -616,6 +634,7 @@
+@@ -616,6 +633,7 @@
config MATH_EMULATION
bool "Math emulation"
@@ -140,7 +135,7 @@
---help---
Linux can emulate a math coprocessor (used for floating point
operations) if you don't have one. 486DX and Pentium processors have
-@@ -641,6 +660,8 @@
+@@ -641,6 +659,8 @@
config MTRR
bool "MTRR (Memory Type Range Register) support"
@@ -149,7 +144,7 @@
---help---
On Intel P6 family processors (Pentium Pro, Pentium II and later)
the Memory Type Range Registers (MTRRs) may be used to control
-@@ -675,7 +696,7 @@
+@@ -675,7 +695,7 @@
config EFI
bool "Boot from EFI support"
@@ -158,7 +153,7 @@
default n
---help---
This enables the the kernel to boot on EFI platforms using
-@@ -693,7 +714,7 @@
+@@ -693,7 +713,7 @@
config IRQBALANCE
bool "Enable kernel irq balancing"
@@ -167,7 +162,7 @@
default y
help
The default yes will allow the kernel to do irq load balancing.
-@@ -741,7 +762,7 @@
+@@ -741,7 +761,7 @@
config KEXEC
bool "kexec system call (EXPERIMENTAL)"
@@ -176,7 +171,7 @@
help
kexec is a system call that implements the ability to shutdown your
current kernel, and to start another kernel. It is like a reboot
-@@ -794,6 +815,7 @@
+@@ -794,6 +814,7 @@
config COMPAT_VDSO
bool "Compat VDSO support"
default y
@@ -184,7 +179,7 @@
help
Map the VDSO to the predictable old-style address too.
---help---
-@@ -810,18 +832,20 @@
+@@ -810,18 +831,20 @@
depends on HIGHMEM
menu "Power management options (ACPI, APM)"
@@ -208,7 +203,7 @@
---help---
APM is a BIOS specification for saving power using several different
techniques. This is mostly useful for battery powered laptops with
-@@ -1006,6 +1030,7 @@
+@@ -1006,6 +1029,7 @@
config PCI_GOBIOS
bool "BIOS"
@@ -216,7 +211,7 @@
config PCI_GOMMCONFIG
bool "MMConfig"
-@@ -1013,6 +1038,13 @@
+@@ -1013,6 +1037,13 @@
config PCI_GODIRECT
bool "Direct"
@@ -230,7 +225,7 @@
config PCI_GOANY
bool "Any"
-@@ -1020,7 +1052,7 @@
+@@ -1020,7 +1051,7 @@
config PCI_BIOS
bool
@@ -239,7 +234,7 @@
default y
config PCI_DIRECT
-@@ -1033,6 +1065,18 @@
+@@ -1033,6 +1064,18 @@
depends on PCI && ACPI && (PCI_GOMMCONFIG || PCI_GOANY)
default y
@@ -258,7 +253,7 @@
source "drivers/pci/pcie/Kconfig"
source "drivers/pci/Kconfig"
-@@ -1043,7 +1087,7 @@
+@@ -1043,7 +1086,7 @@
config ISA
bool "ISA support"
@@ -267,7 +262,7 @@
help
Find out whether you have ISA slots on your motherboard. ISA is the
name of a bus system, i.e. the way the CPU talks to the other stuff
-@@ -1070,7 +1114,7 @@
+@@ -1070,7 +1113,7 @@
source "drivers/eisa/Kconfig"
config MCA
@@ -276,7 +271,7 @@
default y if X86_VOYAGER
help
MicroChannel Architecture is found in some IBM PS/2 machines and
-@@ -1146,6 +1190,8 @@
+@@ -1146,6 +1189,8 @@
source "crypto/Kconfig"
@@ -285,7 +280,7 @@
source "lib/Kconfig"
#
-@@ -1171,7 +1217,7 @@
+@@ -1171,7 +1216,7 @@
config X86_HT
bool
@@ -294,7 +289,7 @@
default y
config X86_BIOS_REBOOT
-@@ -1184,6 +1230,16 @@
+@@ -1184,6 +1229,16 @@
depends on X86_SMP || (X86_VOYAGER && SMP)
default y
@@ -311,10 +306,10 @@
config KTIME_SCALAR
bool
default y
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/Kconfig.cpu linux-2.6.18-xen/arch/i386/Kconfig.cpu
---- linux-2.6.18/arch/i386/Kconfig.cpu 2006-09-20 05:42:06.000000000 +0200
-+++ linux-2.6.18-xen/arch/i386/Kconfig.cpu 2006-11-19 14:26:21.000000000 +0100
-@@ -251,7 +251,7 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/Kconfig.cpu linux-2.6.18-xen/arch/i386/Kconfig.cpu
+--- linux-2.6.18.3/arch/i386/Kconfig.cpu 2006-12-06 09:06:08.000000000 +0100
++++ linux-2.6.18-xen/arch/i386/Kconfig.cpu 2006-12-05 18:42:36.000000000 +0100
+@@ -252,7 +252,7 @@
config X86_F00F_BUG
bool
@@ -323,25 +318,17 @@
default y
config X86_WP_WORKS_OK
-@@ -311,5 +311,5 @@
+@@ -312,5 +312,5 @@
config X86_TSC
bool
- depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MGEODEGX1 || MGEODE_LX) && !X86_NUMAQ
+ depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MGEODEGX1 || MGEODE_LX) && !X86_NUMAQ && !X86_XEN
default y
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/Kconfig.debug linux-2.6.18-xen/arch/i386/Kconfig.debug
---- linux-2.6.18/arch/i386/Kconfig.debug 2006-09-20 05:42:06.000000000 +0200
-+++ linux-2.6.18-xen/arch/i386/Kconfig.debug 2006-11-19 14:26:21.000000000 +0100
-@@ -2,6 +2,7 @@
-
- config TRACE_IRQFLAGS_SUPPORT
- bool
-+ depends on !X86_XEN
- default y
-
- source "lib/Kconfig.debug"
-@@ -79,6 +80,7 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/Kconfig.debug linux-2.6.18-xen/arch/i386/Kconfig.debug
+--- linux-2.6.18.3/arch/i386/Kconfig.debug 2006-09-20 05:42:06.000000000 +0200
++++ linux-2.6.18-xen/arch/i386/Kconfig.debug 2006-12-05 18:42:36.000000000 +0100
+@@ -79,6 +79,7 @@
config DOUBLEFAULT
default y
bool "Enable doublefault exception handler" if EMBEDDED
@@ -349,9 +336,9 @@
help
This option allows trapping of rare doublefault exceptions that
would otherwise cause a system to silently reboot. Disabling this
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/acpi/boot-xen.c linux-2.6.18-xen/arch/i386/kernel/acpi/boot-xen.c
---- linux-2.6.18/arch/i386/kernel/acpi/boot-xen.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/arch/i386/kernel/acpi/boot-xen.c 2006-11-19 14:26:21.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/acpi/boot-xen.c linux-2.6.18-xen/arch/i386/kernel/acpi/boot-xen.c
+--- linux-2.6.18.3/arch/i386/kernel/acpi/boot-xen.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/arch/i386/kernel/acpi/boot-xen.c 2006-12-05 18:42:36.000000000 +0100
@@ -0,0 +1,1168 @@
+/*
+ * boot.c - Architecture-Specific Low-Level ACPI Boot Support
@@ -524,7 +511,7 @@
+ unsigned long i;
+ int config_size;
+
-+ if (!phys_addr || !size || !cpu_has_apic)
++ if (!phys_addr || !size)
+ return -EINVAL;
+
+ mcfg = (struct acpi_table_mcfg *)__acpi_map_table(phys_addr, size);
@@ -573,7 +560,7 @@
+{
+ struct acpi_table_madt *madt = NULL;
+
-+ if (!phys_addr || !size)
++ if (!phys_addr || !size || !cpu_has_apic)
+ return -EINVAL;
+
+ madt = (struct acpi_table_madt *)__acpi_map_table(phys_addr, size);
@@ -1113,7 +1100,7 @@
+ return -ENODEV;
+ }
+
-+ if (!cpu_has_apic)
++ if (!cpu_has_apic)
+ return -ENODEV;
+
+ /*
@@ -1521,8 +1508,8 @@
+
+ return 0;
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/acpi/Makefile linux-2.6.18-xen/arch/i386/kernel/acpi/Makefile
---- linux-2.6.18/arch/i386/kernel/acpi/Makefile 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/acpi/Makefile linux-2.6.18-xen/arch/i386/kernel/acpi/Makefile
+--- linux-2.6.18.3/arch/i386/kernel/acpi/Makefile 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/i386/kernel/acpi/Makefile 2006-11-19 14:26:21.000000000 +0100
@@ -6,3 +6,7 @@
obj-y += cstate.o processor.o
@@ -1532,9 +1519,9 @@
+include $(srctree)/scripts/Makefile.xen
+obj-y := $(call cherrypickxen, $(obj-y), $(src))
+endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/alternative.c linux-2.6.18-xen/arch/i386/kernel/alternative.c
---- linux-2.6.18/arch/i386/kernel/alternative.c 2006-09-20 05:42:06.000000000 +0200
-+++ linux-2.6.18-xen/arch/i386/kernel/alternative.c 2006-11-19 14:26:21.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/alternative.c linux-2.6.18-xen/arch/i386/kernel/alternative.c
+--- linux-2.6.18.3/arch/i386/kernel/alternative.c 2006-12-06 09:06:08.000000000 +0100
++++ linux-2.6.18-xen/arch/i386/kernel/alternative.c 2006-12-05 18:42:36.000000000 +0100
@@ -4,7 +4,11 @@
#include <asm/alternative.h>
#include <asm/sections.h>
@@ -1559,8 +1546,8 @@
DPRINTK("%s: vsyscall fixup: %p => %p\n",
__FUNCTION__, a->instr, instr);
}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/apic-xen.c linux-2.6.18-xen/arch/i386/kernel/apic-xen.c
---- linux-2.6.18/arch/i386/kernel/apic-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/apic-xen.c linux-2.6.18-xen/arch/i386/kernel/apic-xen.c
+--- linux-2.6.18.3/arch/i386/kernel/apic-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/i386/kernel/apic-xen.c 2006-11-19 14:26:21.000000000 +0100
@@ -0,0 +1,160 @@
+/*
@@ -1723,8 +1710,8 @@
+
+ return 0;
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/asm-offsets.c linux-2.6.18-xen/arch/i386/kernel/asm-offsets.c
---- linux-2.6.18/arch/i386/kernel/asm-offsets.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/asm-offsets.c linux-2.6.18-xen/arch/i386/kernel/asm-offsets.c
+--- linux-2.6.18.3/arch/i386/kernel/asm-offsets.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/i386/kernel/asm-offsets.c 2006-11-19 14:26:21.000000000 +0100
@@ -66,9 +66,14 @@
OFFSET(pbe_orig_address, pbe, orig_address);
@@ -1742,10 +1729,10 @@
DEFINE(PAGE_SIZE_asm, PAGE_SIZE);
DEFINE(VDSO_PRELINK, VDSO_PRELINK);
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/cpu/common-xen.c linux-2.6.18-xen/arch/i386/kernel/cpu/common-xen.c
---- linux-2.6.18/arch/i386/kernel/cpu/common-xen.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/arch/i386/kernel/cpu/common-xen.c 2006-11-19 14:26:21.000000000 +0100
-@@ -0,0 +1,740 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/cpu/common-xen.c linux-2.6.18-xen/arch/i386/kernel/cpu/common-xen.c
+--- linux-2.6.18.3/arch/i386/kernel/cpu/common-xen.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/arch/i386/kernel/cpu/common-xen.c 2006-12-05 18:42:36.000000000 +0100
+@@ -0,0 +1,739 @@
+#include <linux/init.h>
+#include <linux/string.h>
+#include <linux/delay.h>
@@ -2045,7 +2032,7 @@
+ if (c->x86 >= 0x6)
+ c->x86_model += ((tfms >> 16) & 0xF) << 4;
+ c->x86_mask = tfms & 15;
-+#if defined(CONFIG_X86_HT)
++#ifdef CONFIG_X86_HT
+ c->apicid = phys_pkg_id((ebx >> 24) & 0xFF, 0);
+#else
+ c->apicid = (ebx >> 24) & 0xFF;
@@ -2242,7 +2229,7 @@
+
+ if (smp_num_siblings > NR_CPUS) {
+ printk(KERN_WARNING "CPU: Unsupported number of the "
-+ "siblings %d", smp_num_siblings);
++ "siblings %d", smp_num_siblings);
+ smp_num_siblings = 1;
+ return;
+ }
@@ -2373,7 +2360,7 @@
+ }
+ printk(KERN_INFO "Initializing CPU#%d\n", cpu);
+
-+ if (cpu_has_vme || cpu_has_de)
++ if (cpu_has_vme || cpu_has_tsc || cpu_has_de)
+ clear_in_cr4(X86_CR4_VME|X86_CR4_PVI|X86_CR4_TSD|X86_CR4_DE);
+ if (tsc_disable && cpu_has_tsc) {
+ printk(KERN_NOTICE "Disabling TSC...\n");
@@ -2407,7 +2394,6 @@
+ local_irq_enable();
+ }
+ }
-+
+old_gdt:
+ /*
+ * Initialize the per-CPU GDT with the boot GDT,
@@ -2486,8 +2472,8 @@
+ per_cpu(cpu_tlbstate, cpu).active_mm = &init_mm;
+}
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/cpu/Makefile linux-2.6.18-xen/arch/i386/kernel/cpu/Makefile
---- linux-2.6.18/arch/i386/kernel/cpu/Makefile 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/cpu/Makefile linux-2.6.18-xen/arch/i386/kernel/cpu/Makefile
+--- linux-2.6.18.3/arch/i386/kernel/cpu/Makefile 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/i386/kernel/cpu/Makefile 2006-11-19 14:26:21.000000000 +0100
@@ -17,3 +17,8 @@
@@ -2498,8 +2484,8 @@
+include $(srctree)/scripts/Makefile.xen
+obj-y := $(call cherrypickxen, $(obj-y), $(src))
+endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/cpu/mtrr/main-xen.c linux-2.6.18-xen/arch/i386/kernel/cpu/mtrr/main-xen.c
---- linux-2.6.18/arch/i386/kernel/cpu/mtrr/main-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/cpu/mtrr/main-xen.c linux-2.6.18-xen/arch/i386/kernel/cpu/mtrr/main-xen.c
+--- linux-2.6.18.3/arch/i386/kernel/cpu/mtrr/main-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/i386/kernel/cpu/mtrr/main-xen.c 2006-11-19 14:26:22.000000000 +0100
@@ -0,0 +1,197 @@
+#include <linux/init.h>
@@ -2699,8 +2685,8 @@
+}
+
+subsys_initcall(mtrr_init);
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/cpu/mtrr/Makefile linux-2.6.18-xen/arch/i386/kernel/cpu/mtrr/Makefile
---- linux-2.6.18/arch/i386/kernel/cpu/mtrr/Makefile 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/cpu/mtrr/Makefile linux-2.6.18-xen/arch/i386/kernel/cpu/mtrr/Makefile
+--- linux-2.6.18.3/arch/i386/kernel/cpu/mtrr/Makefile 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/i386/kernel/cpu/mtrr/Makefile 2006-11-19 14:26:22.000000000 +0100
@@ -3,3 +3,10 @@
obj-y += cyrix.o
@@ -2713,14 +2699,14 @@
+obj-y := $(call filterxen, $(obj-y), $(n-obj-xen))
+obj-y := $(call cherrypickxen, $(obj-y))
+endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/early_printk-xen.c linux-2.6.18-xen/arch/i386/kernel/early_printk-xen.c
---- linux-2.6.18/arch/i386/kernel/early_printk-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/early_printk-xen.c linux-2.6.18-xen/arch/i386/kernel/early_printk-xen.c
+--- linux-2.6.18.3/arch/i386/kernel/early_printk-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/i386/kernel/early_printk-xen.c 2006-11-19 14:26:22.000000000 +0100
@@ -0,0 +1,2 @@
+
+#include "../../x86_64/kernel/early_printk-xen.c"
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/entry.S linux-2.6.18-xen/arch/i386/kernel/entry.S
---- linux-2.6.18/arch/i386/kernel/entry.S 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/entry.S linux-2.6.18-xen/arch/i386/kernel/entry.S
+--- linux-2.6.18.3/arch/i386/kernel/entry.S 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/i386/kernel/entry.S 2006-11-19 14:26:22.000000000 +0100
@@ -269,7 +269,7 @@
CFI_STARTPROC simple
@@ -2749,8 +2735,8 @@
pushfl; \
pushl $__KERNEL_CS; \
pushl $sysenter_past_esp
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/entry-xen.S linux-2.6.18-xen/arch/i386/kernel/entry-xen.S
---- linux-2.6.18/arch/i386/kernel/entry-xen.S 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/entry-xen.S linux-2.6.18-xen/arch/i386/kernel/entry-xen.S
+--- linux-2.6.18.3/arch/i386/kernel/entry-xen.S 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/i386/kernel/entry-xen.S 2006-11-19 14:26:22.000000000 +0100
@@ -0,0 +1,1213 @@
+/*
@@ -3966,8 +3952,8 @@
+#include "syscall_table.S"
+
+syscall_table_size=(.-sys_call_table)
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/fixup.c linux-2.6.18-xen/arch/i386/kernel/fixup.c
---- linux-2.6.18/arch/i386/kernel/fixup.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/fixup.c linux-2.6.18-xen/arch/i386/kernel/fixup.c
+--- linux-2.6.18.3/arch/i386/kernel/fixup.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/i386/kernel/fixup.c 2006-11-19 14:26:22.000000000 +0100
@@ -0,0 +1,92 @@
+/******************************************************************************
@@ -4062,8 +4048,8 @@
+ return 0;
+}
+__initcall(fixup_init);
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/head-xen.S linux-2.6.18-xen/arch/i386/kernel/head-xen.S
---- linux-2.6.18/arch/i386/kernel/head-xen.S 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/head-xen.S linux-2.6.18-xen/arch/i386/kernel/head-xen.S
+--- linux-2.6.18.3/arch/i386/kernel/head-xen.S 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/i386/kernel/head-xen.S 2006-11-19 14:26:22.000000000 +0100
@@ -0,0 +1,200 @@
+
@@ -4266,8 +4252,8 @@
+ ELFNOTE(Xen, XEN_ELFNOTE_PAE_MODE, .asciz, "no")
+#endif
+ ELFNOTE(Xen, XEN_ELFNOTE_LOADER, .asciz, "generic")
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/init_task-xen.c linux-2.6.18-xen/arch/i386/kernel/init_task-xen.c
---- linux-2.6.18/arch/i386/kernel/init_task-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/init_task-xen.c linux-2.6.18-xen/arch/i386/kernel/init_task-xen.c
+--- linux-2.6.18.3/arch/i386/kernel/init_task-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/i386/kernel/init_task-xen.c 2006-11-19 14:26:22.000000000 +0100
@@ -0,0 +1,51 @@
+#include <linux/mm.h>
@@ -4321,10 +4307,10 @@
+DEFINE_PER_CPU(struct tss_struct, init_tss) ____cacheline_internodealigned_in_smp = INIT_TSS;
+#endif
+
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/io_apic-xen.c linux-2.6.18-xen/arch/i386/kernel/io_apic-xen.c
---- linux-2.6.18/arch/i386/kernel/io_apic-xen.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/arch/i386/kernel/io_apic-xen.c 2006-11-19 14:26:22.000000000 +0100
-@@ -0,0 +1,2772 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/io_apic-xen.c linux-2.6.18-xen/arch/i386/kernel/io_apic-xen.c
+--- linux-2.6.18.3/arch/i386/kernel/io_apic-xen.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/arch/i386/kernel/io_apic-xen.c 2006-12-05 18:42:36.000000000 +0100
+@@ -0,0 +1,2771 @@
+/*
+ * Intel IO-APIC support for multi-Pentium hosts.
+ *
@@ -6528,6 +6514,8 @@
+ }
+}
+
++int timer_uses_ioapic_pin_0;
++
+#ifndef CONFIG_XEN
+static void enable_lapic_irq (unsigned int irq)
+{
@@ -6643,8 +6631,6 @@
+ spin_unlock_irqrestore(&ioapic_lock, flags);
+}
+
-+int timer_uses_ioapic_pin_0;
-+
+/*
+ * This code may look a bit paranoid, but it's supposed to cooperate with
+ * a wide range of boards and BIOS bugs. Fortunately only the timer IRQ
@@ -6769,7 +6755,6 @@
+ "report. Then try booting with the 'noapic' option");
+}
+#else
-+int timer_uses_ioapic_pin_0;
+#define check_timer() ((void)0)
+#endif
+
@@ -7097,8 +7082,8 @@
+}
+
+#endif /* CONFIG_ACPI */
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/ioport-xen.c linux-2.6.18-xen/arch/i386/kernel/ioport-xen.c
---- linux-2.6.18/arch/i386/kernel/ioport-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/ioport-xen.c linux-2.6.18-xen/arch/i386/kernel/ioport-xen.c
+--- linux-2.6.18.3/arch/i386/kernel/ioport-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/i386/kernel/ioport-xen.c 2006-11-19 14:26:22.000000000 +0100
@@ -0,0 +1,121 @@
+/*
@@ -7222,8 +7207,8 @@
+ set_iopl_mask(t->iopl);
+ return 0;
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/irq-xen.c linux-2.6.18-xen/arch/i386/kernel/irq-xen.c
---- linux-2.6.18/arch/i386/kernel/irq-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/irq-xen.c linux-2.6.18-xen/arch/i386/kernel/irq-xen.c
+--- linux-2.6.18.3/arch/i386/kernel/irq-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/i386/kernel/irq-xen.c 2006-11-19 14:26:22.000000000 +0100
@@ -0,0 +1,324 @@
+/*
@@ -7550,8 +7535,8 @@
+}
+#endif
+
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/ldt-xen.c linux-2.6.18-xen/arch/i386/kernel/ldt-xen.c
---- linux-2.6.18/arch/i386/kernel/ldt-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/ldt-xen.c linux-2.6.18-xen/arch/i386/kernel/ldt-xen.c
+--- linux-2.6.18.3/arch/i386/kernel/ldt-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/i386/kernel/ldt-xen.c 2006-11-19 14:26:22.000000000 +0100
@@ -0,0 +1,270 @@
+/*
@@ -7824,8 +7809,8 @@
+ }
+ return ret;
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/Makefile linux-2.6.18-xen/arch/i386/kernel/Makefile
---- linux-2.6.18/arch/i386/kernel/Makefile 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/Makefile linux-2.6.18-xen/arch/i386/kernel/Makefile
+--- linux-2.6.18.3/arch/i386/kernel/Makefile 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/i386/kernel/Makefile 2006-11-19 14:26:21.000000000 +0100
@@ -44,6 +44,12 @@
@@ -7870,8 +7855,8 @@
+obj-y := $(call cherrypickxen, $(obj-y))
+extra-y := $(call cherrypickxen, $(extra-y))
+endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/microcode-xen.c linux-2.6.18-xen/arch/i386/kernel/microcode-xen.c
---- linux-2.6.18/arch/i386/kernel/microcode-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/microcode-xen.c linux-2.6.18-xen/arch/i386/kernel/microcode-xen.c
+--- linux-2.6.18.3/arch/i386/kernel/microcode-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/i386/kernel/microcode-xen.c 2006-11-19 14:26:22.000000000 +0100
@@ -0,0 +1,147 @@
+/*
@@ -8021,8 +8006,8 @@
+module_init(microcode_init)
+module_exit(microcode_exit)
+MODULE_ALIAS_MISCDEV(MICROCODE_MINOR);
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/mpparse-xen.c linux-2.6.18-xen/arch/i386/kernel/mpparse-xen.c
---- linux-2.6.18/arch/i386/kernel/mpparse-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/mpparse-xen.c linux-2.6.18-xen/arch/i386/kernel/mpparse-xen.c
+--- linux-2.6.18.3/arch/i386/kernel/mpparse-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/i386/kernel/mpparse-xen.c 2006-11-19 14:26:22.000000000 +0100
@@ -0,0 +1,1185 @@
+/*
@@ -9210,8 +9195,8 @@
+
+#endif /* CONFIG_X86_IO_APIC */
+#endif /* CONFIG_ACPI */
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/pci-dma-xen.c linux-2.6.18-xen/arch/i386/kernel/pci-dma-xen.c
---- linux-2.6.18/arch/i386/kernel/pci-dma-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/pci-dma-xen.c linux-2.6.18-xen/arch/i386/kernel/pci-dma-xen.c
+--- linux-2.6.18.3/arch/i386/kernel/pci-dma-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/i386/kernel/pci-dma-xen.c 2006-11-19 14:26:22.000000000 +0100
@@ -0,0 +1,379 @@
+/*
@@ -9593,10 +9578,10 @@
+ swiotlb_sync_single_for_device(dev, dma_handle, size, direction);
+}
+EXPORT_SYMBOL(dma_sync_single_for_device);
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/process-xen.c linux-2.6.18-xen/arch/i386/kernel/process-xen.c
---- linux-2.6.18/arch/i386/kernel/process-xen.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/arch/i386/kernel/process-xen.c 2006-11-19 14:26:22.000000000 +0100
-@@ -0,0 +1,815 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/process-xen.c linux-2.6.18-xen/arch/i386/kernel/process-xen.c
+--- linux-2.6.18.3/arch/i386/kernel/process-xen.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/arch/i386/kernel/process-xen.c 2006-12-05 18:42:36.000000000 +0100
+@@ -0,0 +1,812 @@
+/*
+ * linux/arch/i386/kernel/process.c
+ *
@@ -9659,9 +9644,6 @@
+#include <asm/tlbflush.h>
+#include <asm/cpu.h>
+
-+#include <asm/tlbflush.h>
-+#include <asm/cpu.h>
-+
+asmlinkage void ret_from_fork(void) __asm__("ret_from_fork");
+
+static int hlt_counter;
@@ -10412,8 +10394,8 @@
+ sp -= get_random_int() % 8192;
+ return sp & ~0xf;
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/quirks-xen.c linux-2.6.18-xen/arch/i386/kernel/quirks-xen.c
---- linux-2.6.18/arch/i386/kernel/quirks-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/quirks-xen.c linux-2.6.18-xen/arch/i386/kernel/quirks-xen.c
+--- linux-2.6.18.3/arch/i386/kernel/quirks-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/i386/kernel/quirks-xen.c 2006-11-19 14:26:22.000000000 +0100
@@ -0,0 +1,47 @@
+/*
@@ -10463,10 +10445,10 @@
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_E7525_MCH, quirk_intel_irqbalance);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_E7520_MCH, quirk_intel_irqbalance);
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/setup-xen.c linux-2.6.18-xen/arch/i386/kernel/setup-xen.c
---- linux-2.6.18/arch/i386/kernel/setup-xen.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/arch/i386/kernel/setup-xen.c 2006-11-19 14:26:22.000000000 +0100
-@@ -0,0 +1,1836 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/setup-xen.c linux-2.6.18-xen/arch/i386/kernel/setup-xen.c
+--- linux-2.6.18.3/arch/i386/kernel/setup-xen.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/arch/i386/kernel/setup-xen.c 2006-12-05 18:42:36.000000000 +0100
+@@ -0,0 +1,1835 @@
+/*
+ * linux/arch/i386/kernel/setup.c
+ *
@@ -11858,13 +11840,15 @@
+#ifdef CONFIG_XEN_PRIVILEGED_GUEST
+ struct xen_memory_map memmap;
+
-+ map = (struct e820entry *)__get_free_page(GFP_ATOMIC);
-+ nr_map = E820MAX;
-+
++ map = machine_e820.map;
+ memmap.nr_entries = E820MAX;
++
+ set_xen_guest_handle(memmap.buffer, map);
+
-+ BUG_ON(HYPERVISOR_memory_op(XENMEM_machine_memory_map, &memmap));
++ if(HYPERVISOR_memory_op(XENMEM_machine_memory_map, &memmap))
++ BUG();
++ machine_e820.nr_map = memmap.nr_entries;
++ nr_map = memmap.nr_entries;
+ e820_setup_gap(map, memmap.nr_entries);
+#endif
+
@@ -11903,9 +11887,6 @@
+#endif
+ }
+ }
-+#ifdef CONFIG_XEN
-+ free_page((unsigned long)map);
-+#endif
+}
+
+/*
@@ -12303,8 +12284,8 @@
+ * c-basic-offset:8
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/smp-xen.c linux-2.6.18-xen/arch/i386/kernel/smp-xen.c
---- linux-2.6.18/arch/i386/kernel/smp-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/smp-xen.c linux-2.6.18-xen/arch/i386/kernel/smp-xen.c
+--- linux-2.6.18.3/arch/i386/kernel/smp-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/i386/kernel/smp-xen.c 2006-11-19 14:26:22.000000000 +0100
@@ -0,0 +1,624 @@
+/*
@@ -12931,8 +12912,8 @@
+ return IRQ_HANDLED;
+}
+
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/swiotlb.c linux-2.6.18-xen/arch/i386/kernel/swiotlb.c
---- linux-2.6.18/arch/i386/kernel/swiotlb.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/swiotlb.c linux-2.6.18-xen/arch/i386/kernel/swiotlb.c
+--- linux-2.6.18.3/arch/i386/kernel/swiotlb.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/i386/kernel/swiotlb.c 2006-11-19 14:26:22.000000000 +0100
@@ -0,0 +1,672 @@
+/*
@@ -13607,8 +13588,8 @@
+EXPORT_SYMBOL(swiotlb_unmap_page);
+EXPORT_SYMBOL(swiotlb_dma_mapping_error);
+EXPORT_SYMBOL(swiotlb_dma_supported);
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/sysenter.c linux-2.6.18-xen/arch/i386/kernel/sysenter.c
---- linux-2.6.18/arch/i386/kernel/sysenter.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/sysenter.c linux-2.6.18-xen/arch/i386/kernel/sysenter.c
+--- linux-2.6.18.3/arch/i386/kernel/sysenter.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/i386/kernel/sysenter.c 2006-11-19 14:26:22.000000000 +0100
@@ -23,6 +23,10 @@
#include <asm/pgtable.h>
@@ -13669,9 +13650,9 @@
if (!boot_cpu_has(X86_FEATURE_SEP)) {
memcpy(syscall_page,
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/time-xen.c linux-2.6.18-xen/arch/i386/kernel/time-xen.c
---- linux-2.6.18/arch/i386/kernel/time-xen.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/arch/i386/kernel/time-xen.c 2006-11-19 14:26:22.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/time-xen.c linux-2.6.18-xen/arch/i386/kernel/time-xen.c
+--- linux-2.6.18.3/arch/i386/kernel/time-xen.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/arch/i386/kernel/time-xen.c 2006-12-05 18:42:36.000000000 +0100
@@ -0,0 +1,1101 @@
+/*
+ * linux/arch/i386/kernel/time.c
@@ -14671,14 +14652,14 @@
+ cpu_clear(smp_processor_id(), nohz_cpu_mask);
+}
+
-+void safe_halt(void)
++void raw_safe_halt(void)
+{
+ stop_hz_timer();
+ /* Blocking includes an implicit local_irq_enable(). */
+ HYPERVISOR_block();
+ start_hz_timer();
+}
-+EXPORT_SYMBOL(safe_halt);
++EXPORT_SYMBOL(raw_safe_halt);
+
+void halt(void)
+{
@@ -14774,8 +14755,8 @@
+ return 0;
+}
+__initcall(xen_sysctl_init);
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/traps.c linux-2.6.18-xen/arch/i386/kernel/traps.c
---- linux-2.6.18/arch/i386/kernel/traps.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/traps.c linux-2.6.18-xen/arch/i386/kernel/traps.c
+--- linux-2.6.18.3/arch/i386/kernel/traps.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/i386/kernel/traps.c 2006-11-19 14:26:22.000000000 +0100
@@ -642,18 +642,11 @@
@@ -14797,10 +14778,10 @@
}
static void unknown_nmi_error(unsigned char reason, struct pt_regs * regs)
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/traps-xen.c linux-2.6.18-xen/arch/i386/kernel/traps-xen.c
---- linux-2.6.18/arch/i386/kernel/traps-xen.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/arch/i386/kernel/traps-xen.c 2006-11-19 14:26:22.000000000 +0100
-@@ -0,0 +1,1186 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/traps-xen.c linux-2.6.18-xen/arch/i386/kernel/traps-xen.c
+--- linux-2.6.18.3/arch/i386/kernel/traps-xen.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/arch/i386/kernel/traps-xen.c 2006-12-05 18:42:36.000000000 +0100
+@@ -0,0 +1,1185 @@
+/*
+ * linux/arch/i386/traps.c
+ *
@@ -15986,9 +15967,8 @@
+}
+__setup("call_trace=", call_trace_setup);
+#endif
-+
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/tsc.c linux-2.6.18-xen/arch/i386/kernel/tsc.c
---- linux-2.6.18/arch/i386/kernel/tsc.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/tsc.c linux-2.6.18-xen/arch/i386/kernel/tsc.c
+--- linux-2.6.18.3/arch/i386/kernel/tsc.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/i386/kernel/tsc.c 2006-11-19 14:26:22.000000000 +0100
@@ -101,6 +101,7 @@
return (cyc * cyc2ns_scale) >> CYC2NS_SCALE_FACTOR;
@@ -16006,8 +15986,8 @@
static unsigned long calculate_cpu_khz(void)
{
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/vm86.c linux-2.6.18-xen/arch/i386/kernel/vm86.c
---- linux-2.6.18/arch/i386/kernel/vm86.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/vm86.c linux-2.6.18-xen/arch/i386/kernel/vm86.c
+--- linux-2.6.18.3/arch/i386/kernel/vm86.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/i386/kernel/vm86.c 2006-11-19 14:26:22.000000000 +0100
@@ -97,7 +97,9 @@
struct pt_regs * FASTCALL(save_v86_state(struct kernel_vm86_regs * regs));
@@ -16063,8 +16043,8 @@
tsk->thread.screen_bitmap = info->screen_bitmap;
if (info->flags & VM86_SCREEN_BITMAP)
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/vmlinux.lds.S linux-2.6.18-xen/arch/i386/kernel/vmlinux.lds.S
---- linux-2.6.18/arch/i386/kernel/vmlinux.lds.S 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/vmlinux.lds.S linux-2.6.18-xen/arch/i386/kernel/vmlinux.lds.S
+--- linux-2.6.18.3/arch/i386/kernel/vmlinux.lds.S 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/i386/kernel/vmlinux.lds.S 2006-11-19 14:26:22.000000000 +0100
@@ -13,6 +13,12 @@
OUTPUT_ARCH(i386)
@@ -16104,8 +16084,8 @@
+
+ NOTES
}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/kernel/vsyscall-note-xen.S linux-2.6.18-xen/arch/i386/kernel/vsyscall-note-xen.S
---- linux-2.6.18/arch/i386/kernel/vsyscall-note-xen.S 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/kernel/vsyscall-note-xen.S linux-2.6.18-xen/arch/i386/kernel/vsyscall-note-xen.S
+--- linux-2.6.18.3/arch/i386/kernel/vsyscall-note-xen.S 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/i386/kernel/vsyscall-note-xen.S 2006-11-19 14:26:22.000000000 +0100
@@ -0,0 +1,32 @@
+/*
@@ -16140,8 +16120,8 @@
+NOTE_KERNELCAP_BEGIN(1, 1)
+NOTE_KERNELCAP(1, "nosegneg") /* Change 1 back to 0 when glibc is fixed! */
+NOTE_KERNELCAP_END
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/lib/delay.c linux-2.6.18-xen/arch/i386/lib/delay.c
---- linux-2.6.18/arch/i386/lib/delay.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/lib/delay.c linux-2.6.18-xen/arch/i386/lib/delay.c
+--- linux-2.6.18.3/arch/i386/lib/delay.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/i386/lib/delay.c 2006-11-19 14:26:22.000000000 +0100
@@ -61,6 +61,7 @@
delay_fn = delay_tsc;
@@ -16160,19 +16140,122 @@
void __delay(unsigned long loops)
{
delay_fn(loops);
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/mach-xen/Makefile linux-2.6.18-xen/arch/i386/mach-xen/Makefile
---- linux-2.6.18/arch/i386/mach-xen/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/arch/i386/mach-xen/Makefile 2006-11-19 14:26:22.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/mach-xen/irqflags.c linux-2.6.18-xen/arch/i386/mach-xen/irqflags.c
+--- linux-2.6.18.3/arch/i386/mach-xen/irqflags.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/arch/i386/mach-xen/irqflags.c 2006-12-05 18:42:36.000000000 +0100
+@@ -0,0 +1,99 @@
++#include <linux/module.h>
++#include <linux/smp.h>
++#include <asm/irqflags.h>
++#include <asm/hypervisor.h>
++
++/* interrupt control.. */
++
++/*
++ * The use of 'barrier' in the following reflects their use as local-lock
++ * operations. Reentrancy must be prevented (e.g., __cli()) /before/ following
++ * critical operations are executed. All critical operations must complete
++ * /before/ reentrancy is permitted (e.g., __sti()). Alpha architecture also
++ * includes these barriers, for example.
++ */
++
++unsigned long __raw_local_save_flags(void)
++{
++ struct vcpu_info *_vcpu;
++ unsigned long flags;
++
++ preempt_disable();
++ _vcpu = &HYPERVISOR_shared_info->vcpu_info[__vcpu_id];
++ flags = _vcpu->evtchn_upcall_mask;
++ preempt_enable();
++
++ return flags;
++}
++EXPORT_SYMBOL(__raw_local_save_flags);
++
++void raw_local_irq_restore(unsigned long flags)
++{
++ struct vcpu_info *_vcpu;
++
++ preempt_disable();
++ _vcpu = &HYPERVISOR_shared_info->vcpu_info[__vcpu_id];
++ if ((_vcpu->evtchn_upcall_mask = flags) == 0) {
++ barrier(); /* unmask then check (avoid races) */
++ if (unlikely(_vcpu->evtchn_upcall_pending))
++ force_evtchn_callback();
++ preempt_enable();
++ } else
++ preempt_enable_no_resched();
++
++}
++EXPORT_SYMBOL(raw_local_irq_restore);
++
++void raw_local_irq_disable(void)
++{
++ struct vcpu_info *_vcpu;
++
++ preempt_disable();
++ _vcpu = &HYPERVISOR_shared_info->vcpu_info[__vcpu_id];
++ _vcpu->evtchn_upcall_mask = 1;
++ preempt_enable_no_resched();
++}
++EXPORT_SYMBOL(raw_local_irq_disable);
++
++void raw_local_irq_enable(void)
++{
++ struct vcpu_info *_vcpu;
++
++ preempt_disable();
++ _vcpu = &HYPERVISOR_shared_info->vcpu_info[__vcpu_id];
++ _vcpu->evtchn_upcall_mask = 0;
++ barrier(); /* unmask then check (avoid races) */
++ if (unlikely(_vcpu->evtchn_upcall_pending))
++ force_evtchn_callback();
++ preempt_enable();
++}
++EXPORT_SYMBOL(raw_local_irq_enable);
++
++/* Cannot use preempt_enable() here as we would recurse in preempt_sched(). */
++int raw_irqs_disabled(void)
++{
++ struct vcpu_info *_vcpu;
++ int disabled;
++
++ preempt_disable();
++ _vcpu = &HYPERVISOR_shared_info->vcpu_info[__vcpu_id];
++ disabled = (_vcpu->evtchn_upcall_mask != 0);
++ preempt_enable_no_resched();
++ return disabled;
++}
++EXPORT_SYMBOL(raw_irqs_disabled);
++
++unsigned long __raw_local_irq_save(void)
++{
++ struct vcpu_info *_vcpu;
++ unsigned long flags;
++
++ preempt_disable();
++ _vcpu = &HYPERVISOR_shared_info->vcpu_info[__vcpu_id];
++ flags = _vcpu->evtchn_upcall_mask;
++ _vcpu->evtchn_upcall_mask = 1;
++ preempt_enable_no_resched();
++
++ return flags;
++}
++EXPORT_SYMBOL(__raw_local_irq_save);
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/mach-xen/Makefile linux-2.6.18-xen/arch/i386/mach-xen/Makefile
+--- linux-2.6.18.3/arch/i386/mach-xen/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/arch/i386/mach-xen/Makefile 2006-12-05 18:42:36.000000000 +0100
@@ -0,0 +1,5 @@
+#
+# Makefile for the linux kernel.
+#
+
-+obj-y := setup.o
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/mach-xen/setup.c linux-2.6.18-xen/arch/i386/mach-xen/setup.c
---- linux-2.6.18/arch/i386/mach-xen/setup.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/arch/i386/mach-xen/setup.c 2006-11-19 14:26:22.000000000 +0100
-@@ -0,0 +1,153 @@
++obj-y := setup.o irqflags.o
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/mach-xen/setup.c linux-2.6.18-xen/arch/i386/mach-xen/setup.c
+--- linux-2.6.18.3/arch/i386/mach-xen/setup.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/arch/i386/mach-xen/setup.c 2006-12-05 18:42:36.000000000 +0100
+@@ -0,0 +1,154 @@
+/*
+ * Machine specific setup for generic
+ */
@@ -16185,6 +16268,7 @@
+#include <asm/arch_hooks.h>
+#include <asm/e820.h>
+#include <asm/setup.h>
++#include <asm/fixmap.h>
+
+#include <xen/interface/callback.h>
+#include <xen/interface/memory.h>
@@ -16326,8 +16410,8 @@
+void __init pre_setup_arch_hook(void)
+{
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/Makefile linux-2.6.18-xen/arch/i386/Makefile
---- linux-2.6.18/arch/i386/Makefile 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/Makefile linux-2.6.18-xen/arch/i386/Makefile
+--- linux-2.6.18.3/arch/i386/Makefile 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/i386/Makefile 2006-11-19 14:26:21.000000000 +0100
@@ -48,6 +48,11 @@
@@ -16385,8 +16469,8 @@
arch/$(ARCH)/boot/image.iso \
arch/$(ARCH)/boot/mtools.conf
+CLEAN_FILES += vmlinuz vmlinux-stripped
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/mm/fault-xen.c linux-2.6.18-xen/arch/i386/mm/fault-xen.c
---- linux-2.6.18/arch/i386/mm/fault-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/mm/fault-xen.c linux-2.6.18-xen/arch/i386/mm/fault-xen.c
+--- linux-2.6.18.3/arch/i386/mm/fault-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/i386/mm/fault-xen.c 2006-11-19 14:26:22.000000000 +0100
@@ -0,0 +1,770 @@
+/*
@@ -17159,8 +17243,8 @@
+ }
+}
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/mm/highmem-xen.c linux-2.6.18-xen/arch/i386/mm/highmem-xen.c
---- linux-2.6.18/arch/i386/mm/highmem-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/mm/highmem-xen.c linux-2.6.18-xen/arch/i386/mm/highmem-xen.c
+--- linux-2.6.18.3/arch/i386/mm/highmem-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/i386/mm/highmem-xen.c 2006-11-19 14:26:22.000000000 +0100
@@ -0,0 +1,133 @@
+#include <linux/highmem.h>
@@ -17296,8 +17380,8 @@
+EXPORT_SYMBOL(kmap_atomic);
+EXPORT_SYMBOL(kunmap_atomic);
+EXPORT_SYMBOL(kmap_atomic_to_page);
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/mm/hypervisor.c linux-2.6.18-xen/arch/i386/mm/hypervisor.c
---- linux-2.6.18/arch/i386/mm/hypervisor.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/mm/hypervisor.c linux-2.6.18-xen/arch/i386/mm/hypervisor.c
+--- linux-2.6.18.3/arch/i386/mm/hypervisor.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/i386/mm/hypervisor.c 2006-11-19 14:26:22.000000000 +0100
@@ -0,0 +1,457 @@
+/******************************************************************************
@@ -17757,8 +17841,8 @@
+ mach_lp, (u64)entry_a | ((u64)entry_b<<32));
+}
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/mm/init-xen.c linux-2.6.18-xen/arch/i386/mm/init-xen.c
---- linux-2.6.18/arch/i386/mm/init-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/mm/init-xen.c linux-2.6.18-xen/arch/i386/mm/init-xen.c
+--- linux-2.6.18.3/arch/i386/mm/init-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/i386/mm/init-xen.c 2006-11-19 14:26:22.000000000 +0100
@@ -0,0 +1,851 @@
+/*
@@ -18612,8 +18696,8 @@
+}
+#endif
+
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/mm/ioremap-xen.c linux-2.6.18-xen/arch/i386/mm/ioremap-xen.c
---- linux-2.6.18/arch/i386/mm/ioremap-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/mm/ioremap-xen.c linux-2.6.18-xen/arch/i386/mm/ioremap-xen.c
+--- linux-2.6.18.3/arch/i386/mm/ioremap-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/i386/mm/ioremap-xen.c 2006-11-19 14:26:22.000000000 +0100
@@ -0,0 +1,443 @@
+/*
@@ -19059,8 +19143,8 @@
+ --nrpages;
+ }
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/mm/Makefile linux-2.6.18-xen/arch/i386/mm/Makefile
---- linux-2.6.18/arch/i386/mm/Makefile 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/mm/Makefile linux-2.6.18-xen/arch/i386/mm/Makefile
+--- linux-2.6.18.3/arch/i386/mm/Makefile 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/i386/mm/Makefile 2006-11-19 14:26:22.000000000 +0100
@@ -8,3 +8,11 @@
obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o
@@ -19074,8 +19158,8 @@
+
+obj-y := $(call cherrypickxen, $(obj-y))
+endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/mm/pageattr.c linux-2.6.18-xen/arch/i386/mm/pageattr.c
---- linux-2.6.18/arch/i386/mm/pageattr.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/mm/pageattr.c linux-2.6.18-xen/arch/i386/mm/pageattr.c
+--- linux-2.6.18.3/arch/i386/mm/pageattr.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/i386/mm/pageattr.c 2006-11-19 14:26:22.000000000 +0100
@@ -84,7 +84,7 @@
unsigned long flags;
@@ -19086,44 +19170,8 @@
return;
spin_lock_irqsave(&pgd_lock, flags);
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/mm/pgtable.c linux-2.6.18-xen/arch/i386/mm/pgtable.c
---- linux-2.6.18/arch/i386/mm/pgtable.c 2006-09-20 05:42:06.000000000 +0200
-+++ linux-2.6.18-xen/arch/i386/mm/pgtable.c 2006-11-19 14:26:22.000000000 +0100
-@@ -12,6 +12,7 @@
- #include <linux/slab.h>
- #include <linux/pagemap.h>
- #include <linux/spinlock.h>
-+#include <linux/module.h>
-
- #include <asm/system.h>
- #include <asm/pgtable.h>
-@@ -137,6 +138,10 @@
- __flush_tlb_one(vaddr);
- }
-
-+static int nr_fixmaps = 0;
-+unsigned long __FIXADDR_TOP = 0xfffff000;
-+EXPORT_SYMBOL(__FIXADDR_TOP);
-+
- void __set_fixmap (enum fixed_addresses idx, unsigned long phys, pgprot_t flags)
- {
- unsigned long address = __fix_to_virt(idx);
-@@ -146,6 +151,13 @@
- return;
- }
- set_pte_pfn(address, phys >> PAGE_SHIFT, flags);
-+ nr_fixmaps++;
-+}
-+
-+void set_fixaddr_top(unsigned long top)
-+{
-+ BUG_ON(nr_fixmaps > 0);
-+ __FIXADDR_TOP = top - PAGE_SIZE;
- }
-
- pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address)
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/mm/pgtable-xen.c linux-2.6.18-xen/arch/i386/mm/pgtable-xen.c
---- linux-2.6.18/arch/i386/mm/pgtable-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/mm/pgtable-xen.c linux-2.6.18-xen/arch/i386/mm/pgtable-xen.c
+--- linux-2.6.18.3/arch/i386/mm/pgtable-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/i386/mm/pgtable-xen.c 2006-11-19 14:26:22.000000000 +0100
@@ -0,0 +1,699 @@
+/*
@@ -19825,8 +19873,8 @@
+ !mm->context.has_foreign_mappings)
+ mm_unpin(mm);
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/oprofile/Makefile linux-2.6.18-xen/arch/i386/oprofile/Makefile
---- linux-2.6.18/arch/i386/oprofile/Makefile 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/oprofile/Makefile linux-2.6.18-xen/arch/i386/oprofile/Makefile
+--- linux-2.6.18.3/arch/i386/oprofile/Makefile 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/i386/oprofile/Makefile 2006-11-19 14:26:22.000000000 +0100
@@ -6,7 +6,11 @@
oprofilefs.o oprofile_stats.o \
@@ -19840,8 +19888,8 @@
op_model_ppro.o op_model_p4.o
oprofile-$(CONFIG_X86_IO_APIC) += nmi_timer_int.o
+endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/oprofile/xenoprof.c linux-2.6.18-xen/arch/i386/oprofile/xenoprof.c
---- linux-2.6.18/arch/i386/oprofile/xenoprof.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/oprofile/xenoprof.c linux-2.6.18-xen/arch/i386/oprofile/xenoprof.c
+--- linux-2.6.18.3/arch/i386/oprofile/xenoprof.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/i386/oprofile/xenoprof.c 2006-11-19 14:26:22.000000000 +0100
@@ -0,0 +1,584 @@
+/**
@@ -20428,9 +20476,9 @@
+ }
+
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/pci/irq-xen.c linux-2.6.18-xen/arch/i386/pci/irq-xen.c
---- linux-2.6.18/arch/i386/pci/irq-xen.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/arch/i386/pci/irq-xen.c 2006-11-19 14:26:22.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/pci/irq-xen.c linux-2.6.18-xen/arch/i386/pci/irq-xen.c
+--- linux-2.6.18.3/arch/i386/pci/irq-xen.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/arch/i386/pci/irq-xen.c 2006-12-05 18:42:36.000000000 +0100
@@ -0,0 +1,1206 @@
+/*
+ * Low-Level PCI Support for PC -- Routing of Interrupts
@@ -20694,13 +20742,13 @@
+ */
+static int pirq_via586_get(struct pci_dev *router, struct pci_dev *dev, int pirq)
+{
-+ static const unsigned int pirqmap[4] = { 3, 2, 5, 1 };
++ static const unsigned int pirqmap[5] = { 3, 2, 5, 1, 1 };
+ return read_config_nybble(router, 0x55, pirqmap[pirq-1]);
+}
+
+static int pirq_via586_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int irq)
+{
-+ static const unsigned int pirqmap[4] = { 3, 2, 5, 1 };
++ static const unsigned int pirqmap[5] = { 3, 2, 5, 1, 1 };
+ write_config_nybble(router, 0x55, pirqmap[pirq-1], irq);
+ return 1;
+}
@@ -21638,8 +21686,8 @@
+
+ return count;
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/pci/Makefile linux-2.6.18-xen/arch/i386/pci/Makefile
---- linux-2.6.18/arch/i386/pci/Makefile 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/pci/Makefile linux-2.6.18-xen/arch/i386/pci/Makefile
+--- linux-2.6.18.3/arch/i386/pci/Makefile 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/i386/pci/Makefile 2006-11-19 14:26:22.000000000 +0100
@@ -4,6 +4,10 @@
obj-$(CONFIG_PCI_MMCONFIG) += mmconfig.o direct.o
@@ -21661,8 +21709,8 @@
+include $(srctree)/scripts/Makefile.xen
+obj-y := $(call cherrypickxen, $(obj-y))
+endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/pci/pcifront.c linux-2.6.18-xen/arch/i386/pci/pcifront.c
---- linux-2.6.18/arch/i386/pci/pcifront.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/pci/pcifront.c linux-2.6.18-xen/arch/i386/pci/pcifront.c
+--- linux-2.6.18.3/arch/i386/pci/pcifront.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/i386/pci/pcifront.c 2006-11-19 14:26:22.000000000 +0100
@@ -0,0 +1,55 @@
+/*
@@ -21720,8 +21768,8 @@
+}
+
+arch_initcall(pcifront_x86_stub_init);
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/i386/power/Makefile linux-2.6.18-xen/arch/i386/power/Makefile
---- linux-2.6.18/arch/i386/power/Makefile 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/i386/power/Makefile linux-2.6.18-xen/arch/i386/power/Makefile
+--- linux-2.6.18.3/arch/i386/power/Makefile 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/i386/power/Makefile 2006-11-19 14:26:22.000000000 +0100
@@ -1,2 +1,4 @@
-obj-$(CONFIG_PM) += cpu.o
@@ -21729,8 +21777,8 @@
+obj-$(CONFIG_SOFTWARE_SUSPEND) += cpu.o
+obj-$(CONFIG_ACPI_SLEEP) += cpu.o
obj-$(CONFIG_SOFTWARE_SUSPEND) += swsusp.o
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/ia64/dig/setup.c linux-2.6.18-xen/arch/ia64/dig/setup.c
---- linux-2.6.18/arch/ia64/dig/setup.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/ia64/dig/setup.c linux-2.6.18-xen/arch/ia64/dig/setup.c
+--- linux-2.6.18.3/arch/ia64/dig/setup.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/ia64/dig/setup.c 2006-11-19 14:26:22.000000000 +0100
@@ -24,6 +24,8 @@
#include <asm/machvec.h>
@@ -21761,8 +21809,8 @@
+ xen_start_info->console.domU.evtchn = 0;
+#endif
}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/ia64/hp/sim/Makefile linux-2.6.18-xen/arch/ia64/hp/sim/Makefile
---- linux-2.6.18/arch/ia64/hp/sim/Makefile 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/ia64/hp/sim/Makefile linux-2.6.18-xen/arch/ia64/hp/sim/Makefile
+--- linux-2.6.18.3/arch/ia64/hp/sim/Makefile 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/ia64/hp/sim/Makefile 2006-11-19 14:26:22.000000000 +0100
@@ -14,3 +14,5 @@
obj-$(CONFIG_HP_SIMSERIAL) += simserial.o
@@ -21770,8 +21818,8 @@
obj-$(CONFIG_HP_SIMSCSI) += simscsi.o
+obj-$(CONFIG_XEN) += simserial.o
+obj-$(CONFIG_XEN) += hpsim_console.o
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/ia64/Kconfig linux-2.6.18-xen/arch/ia64/Kconfig
---- linux-2.6.18/arch/ia64/Kconfig 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/ia64/Kconfig linux-2.6.18-xen/arch/ia64/Kconfig
+--- linux-2.6.18.3/arch/ia64/Kconfig 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/ia64/Kconfig 2006-11-19 14:26:22.000000000 +0100
@@ -58,6 +58,20 @@
bool
@@ -21851,8 +21899,8 @@
+endif
+
+source "drivers/xen/Kconfig"
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/ia64/kernel/asm-offsets.c linux-2.6.18-xen/arch/ia64/kernel/asm-offsets.c
---- linux-2.6.18/arch/ia64/kernel/asm-offsets.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/ia64/kernel/asm-offsets.c linux-2.6.18-xen/arch/ia64/kernel/asm-offsets.c
+--- linux-2.6.18.3/arch/ia64/kernel/asm-offsets.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/ia64/kernel/asm-offsets.c 2006-11-19 14:26:22.000000000 +0100
@@ -268,4 +268,29 @@
DEFINE(IA64_TIME_SOURCE_MMIO64, TIME_SOURCE_MMIO64);
@@ -21884,8 +21932,8 @@
+ DEFINE_MAPPED_REG_OFS(XSI_BANK1_R16_OFS, bank1_regs[0]);
+#endif /* CONFIG_XEN */
}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/ia64/kernel/entry.S linux-2.6.18-xen/arch/ia64/kernel/entry.S
---- linux-2.6.18/arch/ia64/kernel/entry.S 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/ia64/kernel/entry.S linux-2.6.18-xen/arch/ia64/kernel/entry.S
+--- linux-2.6.18.3/arch/ia64/kernel/entry.S 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/ia64/kernel/entry.S 2006-11-19 14:26:22.000000000 +0100
@@ -180,7 +180,7 @@
* called. The code starting at .map relies on this. The rest of the code
@@ -22006,8 +22054,8 @@
;;
mov ar.unat=r9
br.many b7
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/ia64/kernel/gate.lds.S linux-2.6.18-xen/arch/ia64/kernel/gate.lds.S
---- linux-2.6.18/arch/ia64/kernel/gate.lds.S 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/ia64/kernel/gate.lds.S linux-2.6.18-xen/arch/ia64/kernel/gate.lds.S
+--- linux-2.6.18.3/arch/ia64/kernel/gate.lds.S 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/ia64/kernel/gate.lds.S 2006-11-19 14:26:22.000000000 +0100
@@ -43,6 +43,28 @@
__start_gate_brl_fsys_bubble_down_patchlist = .;
@@ -22038,8 +22086,8 @@
} :readable
.IA_64.unwind_info : { *(.IA_64.unwind_info*) }
.IA_64.unwind : { *(.IA_64.unwind*) } :readable :unwind
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/ia64/kernel/gate.S linux-2.6.18-xen/arch/ia64/kernel/gate.S
---- linux-2.6.18/arch/ia64/kernel/gate.S 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/ia64/kernel/gate.S linux-2.6.18-xen/arch/ia64/kernel/gate.S
+--- linux-2.6.18.3/arch/ia64/kernel/gate.S 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/ia64/kernel/gate.S 2006-11-19 14:26:22.000000000 +0100
@@ -6,13 +6,15 @@
* David Mosberger-Tang <davidm at hpl.hp.com>
@@ -22210,8 +22258,8 @@
(p9) mov r8=ENOSYS
FSYS_RETURN
END(__kernel_syscall_via_epc)
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/ia64/kernel/head.S linux-2.6.18-xen/arch/ia64/kernel/head.S
---- linux-2.6.18/arch/ia64/kernel/head.S 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/ia64/kernel/head.S linux-2.6.18-xen/arch/ia64/kernel/head.S
+--- linux-2.6.18.3/arch/ia64/kernel/head.S 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/ia64/kernel/head.S 2006-11-19 14:26:22.000000000 +0100
@@ -367,6 +367,12 @@
;;
@@ -22226,8 +22274,8 @@
#ifdef CONFIG_SMP
(isAP) br.call.sptk.many rp=start_secondary
.ret0:
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/ia64/kernel/iosapic.c linux-2.6.18-xen/arch/ia64/kernel/iosapic.c
---- linux-2.6.18/arch/ia64/kernel/iosapic.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/ia64/kernel/iosapic.c linux-2.6.18-xen/arch/ia64/kernel/iosapic.c
+--- linux-2.6.18.3/arch/ia64/kernel/iosapic.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/ia64/kernel/iosapic.c 2006-11-19 14:26:22.000000000 +0100
@@ -159,6 +159,65 @@
static int iosapic_kmalloc_ok;
@@ -22315,8 +22363,8 @@
if (pcat_compat) {
/*
* Disable the compatibility mode interrupts (8259 style),
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/ia64/kernel/irq_ia64.c linux-2.6.18-xen/arch/ia64/kernel/irq_ia64.c
---- linux-2.6.18/arch/ia64/kernel/irq_ia64.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/ia64/kernel/irq_ia64.c linux-2.6.18-xen/arch/ia64/kernel/irq_ia64.c
+--- linux-2.6.18.3/arch/ia64/kernel/irq_ia64.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/ia64/kernel/irq_ia64.c 2006-11-19 14:26:22.000000000 +0100
@@ -30,6 +30,9 @@
#include <linux/smp_lock.h>
@@ -22620,8 +22668,8 @@
#ifdef CONFIG_SMP
phys_cpu_id = cpu_physical_id(cpu);
#else
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/ia64/kernel/pal.S linux-2.6.18-xen/arch/ia64/kernel/pal.S
---- linux-2.6.18/arch/ia64/kernel/pal.S 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/ia64/kernel/pal.S linux-2.6.18-xen/arch/ia64/kernel/pal.S
+--- linux-2.6.18.3/arch/ia64/kernel/pal.S 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/ia64/kernel/pal.S 2006-11-19 14:26:23.000000000 +0100
@@ -16,6 +16,7 @@
#include <asm/processor.h>
@@ -22649,8 +22697,8 @@
/*
* Make a PAL call using the stacked registers calling convention.
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/ia64/kernel/patch.c linux-2.6.18-xen/arch/ia64/kernel/patch.c
---- linux-2.6.18/arch/ia64/kernel/patch.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/ia64/kernel/patch.c linux-2.6.18-xen/arch/ia64/kernel/patch.c
+--- linux-2.6.18.3/arch/ia64/kernel/patch.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/ia64/kernel/patch.c 2006-11-19 14:26:23.000000000 +0100
@@ -184,6 +184,73 @@
ia64_srlz_i();
@@ -22737,8 +22785,8 @@
ia64_patch_vtop(START(vtop), END(vtop));
ia64_patch_mckinley_e9(START(mckinley_e9), END(mckinley_e9));
}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/ia64/kernel/setup.c linux-2.6.18-xen/arch/ia64/kernel/setup.c
---- linux-2.6.18/arch/ia64/kernel/setup.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/ia64/kernel/setup.c linux-2.6.18-xen/arch/ia64/kernel/setup.c
+--- linux-2.6.18.3/arch/ia64/kernel/setup.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/ia64/kernel/setup.c 2006-11-19 14:26:23.000000000 +0100
@@ -60,6 +60,10 @@
#include <asm/system.h>
@@ -22943,8 +22991,8 @@
pm_idle = default_idle;
}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/ia64/Makefile linux-2.6.18-xen/arch/ia64/Makefile
---- linux-2.6.18/arch/ia64/Makefile 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/ia64/Makefile linux-2.6.18-xen/arch/ia64/Makefile
+--- linux-2.6.18.3/arch/ia64/Makefile 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/ia64/Makefile 2006-11-19 14:26:22.000000000 +0100
@@ -45,6 +45,12 @@
endif
@@ -22986,8 +23034,8 @@
define archhelp
echo '* compressed - Build compressed kernel image'
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/ia64/mm/ioremap.c linux-2.6.18-xen/arch/ia64/mm/ioremap.c
---- linux-2.6.18/arch/ia64/mm/ioremap.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/ia64/mm/ioremap.c linux-2.6.18-xen/arch/ia64/mm/ioremap.c
+--- linux-2.6.18.3/arch/ia64/mm/ioremap.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/ia64/mm/ioremap.c 2006-11-19 14:26:23.000000000 +0100
@@ -16,6 +16,9 @@
static inline void __iomem *
@@ -22999,14 +23047,14 @@
return (void __iomem *) (__IA64_UNCACHED_OFFSET | offset);
}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/ia64/xen/drivers/README linux-2.6.18-xen/arch/ia64/xen/drivers/README
---- linux-2.6.18/arch/ia64/xen/drivers/README 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/ia64/xen/drivers/README linux-2.6.18-xen/arch/ia64/xen/drivers/README
+--- linux-2.6.18.3/arch/ia64/xen/drivers/README 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/ia64/xen/drivers/README 2006-11-19 14:26:23.000000000 +0100
@@ -0,0 +1,2 @@
+This is a temporary location for source/Makefiles that need to be
+patched/reworked in drivers/xen to work with xenlinux/ia64.
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/ia64/xen/hypercall.S linux-2.6.18-xen/arch/ia64/xen/hypercall.S
---- linux-2.6.18/arch/ia64/xen/hypercall.S 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/ia64/xen/hypercall.S linux-2.6.18-xen/arch/ia64/xen/hypercall.S
+--- linux-2.6.18.3/arch/ia64/xen/hypercall.S 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/ia64/xen/hypercall.S 2006-11-19 14:26:23.000000000 +0100
@@ -0,0 +1,413 @@
+/*
@@ -23422,10 +23470,10 @@
+ ;;
+END(xen_ssm_i_1)
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/ia64/xen/hypervisor.c linux-2.6.18-xen/arch/ia64/xen/hypervisor.c
---- linux-2.6.18/arch/ia64/xen/hypervisor.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/arch/ia64/xen/hypervisor.c 2006-11-19 14:26:23.000000000 +0100
-@@ -0,0 +1,833 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/ia64/xen/hypervisor.c linux-2.6.18-xen/arch/ia64/xen/hypervisor.c
+--- linux-2.6.18.3/arch/ia64/xen/hypervisor.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/arch/ia64/xen/hypervisor.c 2006-12-05 18:42:36.000000000 +0100
+@@ -0,0 +1,847 @@
+/******************************************************************************
+ * include/asm-ia64/shadow.h
+ *
@@ -23974,6 +24022,7 @@
+};
+
+struct xen_ia64_privcmd_vma {
++ int is_privcmd_mmapped;
+ struct xen_ia64_privcmd_range* range;
+
+ unsigned long num_entries;
@@ -24112,12 +24161,15 @@
+static void
+xen_ia64_privcmd_vma_open(struct vm_area_struct* vma)
+{
++ struct xen_ia64_privcmd_vma* old_privcmd_vma = (struct xen_ia64_privcmd_vma*)vma->vm_private_data;
+ struct xen_ia64_privcmd_vma* privcmd_vma = (struct xen_ia64_privcmd_vma*)vma->vm_private_data;
+ struct xen_ia64_privcmd_range* privcmd_range = privcmd_vma->range;
+
+ atomic_inc(&privcmd_range->ref_count);
+ // vm_op->open() can't fail.
+ privcmd_vma = kmalloc(sizeof(*privcmd_vma), GFP_KERNEL | __GFP_NOFAIL);
++ // copy original value if necessary
++ privcmd_vma->is_privcmd_mmapped = old_privcmd_vma->is_privcmd_mmapped;
+
+ __xen_ia64_privcmd_vma_open(vma, privcmd_vma, privcmd_range);
+}
@@ -24153,6 +24205,14 @@
+}
+
+int
++privcmd_enforce_singleshot_mapping(struct vm_area_struct *vma)
++{
++ struct xen_ia64_privcmd_vma* privcmd_vma =
++ (struct xen_ia64_privcmd_vma *)vma->vm_private_data;
++ return (xchg(&privcmd_vma->is_privcmd_mmapped, 1) == 0);
++}
++
++int
+privcmd_mmap(struct file * file, struct vm_area_struct * vma)
+{
+ int error;
@@ -24177,6 +24237,8 @@
+ if (privcmd_vma == NULL) {
+ goto out_enomem1;
+ }
++ privcmd_vma->is_privcmd_mmapped = 0;
++
+ res = kzalloc(sizeof(*res), GFP_KERNEL);
+ if (res == NULL) {
+ goto out_enomem1;
@@ -24259,8 +24321,8 @@
+ /* Just trigger a tick. */
+ ia64_cpu_local_tick();
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/ia64/xen/Makefile linux-2.6.18-xen/arch/ia64/xen/Makefile
---- linux-2.6.18/arch/ia64/xen/Makefile 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/ia64/xen/Makefile linux-2.6.18-xen/arch/ia64/xen/Makefile
+--- linux-2.6.18.3/arch/ia64/xen/Makefile 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/ia64/xen/Makefile 2006-11-19 14:26:23.000000000 +0100
@@ -0,0 +1,8 @@
+#
@@ -24271,8 +24333,8 @@
+ hypervisor.o pci-dma-xen.o util.o
+
+pci-dma-xen-y := ../../i386/kernel/pci-dma-xen.o
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/ia64/xen/util.c linux-2.6.18-xen/arch/ia64/xen/util.c
---- linux-2.6.18/arch/ia64/xen/util.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/ia64/xen/util.c linux-2.6.18-xen/arch/ia64/xen/util.c
+--- linux-2.6.18.3/arch/ia64/xen/util.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/ia64/xen/util.c 2006-11-19 14:26:23.000000000 +0100
@@ -0,0 +1,115 @@
+/******************************************************************************
@@ -24390,8 +24452,8 @@
+ * tab-width: 8
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/ia64/xen/xenentry.S linux-2.6.18-xen/arch/ia64/xen/xenentry.S
---- linux-2.6.18/arch/ia64/xen/xenentry.S 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/ia64/xen/xenentry.S linux-2.6.18-xen/arch/ia64/xen/xenentry.S
+--- linux-2.6.18.3/arch/ia64/xen/xenentry.S 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/ia64/xen/xenentry.S 2006-11-19 14:26:23.000000000 +0100
@@ -0,0 +1,867 @@
+/*
@@ -25261,8 +25323,8 @@
+#else
+END(ia64_leave_kernel)
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/ia64/xen/xenhpski.c linux-2.6.18-xen/arch/ia64/xen/xenhpski.c
---- linux-2.6.18/arch/ia64/xen/xenhpski.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/ia64/xen/xenhpski.c linux-2.6.18-xen/arch/ia64/xen/xenhpski.c
+--- linux-2.6.18.3/arch/ia64/xen/xenhpski.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/ia64/xen/xenhpski.c 2006-11-19 14:26:23.000000000 +0100
@@ -0,0 +1,19 @@
+
@@ -25284,8 +25346,8 @@
+ return 1;
+}
+
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/ia64/xen/xenivt.S linux-2.6.18-xen/arch/ia64/xen/xenivt.S
---- linux-2.6.18/arch/ia64/xen/xenivt.S 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/ia64/xen/xenivt.S linux-2.6.18-xen/arch/ia64/xen/xenivt.S
+--- linux-2.6.18.3/arch/ia64/xen/xenivt.S 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/ia64/xen/xenivt.S 2006-11-19 14:26:23.000000000 +0100
@@ -0,0 +1,2169 @@
+/*
@@ -27457,8 +27519,8 @@
+ br.call.sptk.many b6=evtchn_do_upcall
+END(xen_event_callback)
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/ia64/xen/xenminstate.h linux-2.6.18-xen/arch/ia64/xen/xenminstate.h
---- linux-2.6.18/arch/ia64/xen/xenminstate.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/ia64/xen/xenminstate.h linux-2.6.18-xen/arch/ia64/xen/xenminstate.h
+--- linux-2.6.18.3/arch/ia64/xen/xenminstate.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/ia64/xen/xenminstate.h 2006-11-19 14:26:23.000000000 +0100
@@ -0,0 +1,368 @@
+
@@ -27829,8 +27891,8 @@
+#else
+#define SAVE_MIN DO_SAVE_MIN( , mov r30=r0, )
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/ia64/xen/xenpal.S linux-2.6.18-xen/arch/ia64/xen/xenpal.S
---- linux-2.6.18/arch/ia64/xen/xenpal.S 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/ia64/xen/xenpal.S linux-2.6.18-xen/arch/ia64/xen/xenpal.S
+--- linux-2.6.18.3/arch/ia64/xen/xenpal.S 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/ia64/xen/xenpal.S 2006-11-19 14:26:23.000000000 +0100
@@ -0,0 +1,76 @@
+/*
@@ -27909,8 +27971,8 @@
+ srlz.d // seralize restoration of psr.l
+ br.ret.sptk.many b0
+END(xen_pal_call_static)
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/ia64/xen/xensetup.S linux-2.6.18-xen/arch/ia64/xen/xensetup.S
---- linux-2.6.18/arch/ia64/xen/xensetup.S 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/ia64/xen/xensetup.S linux-2.6.18-xen/arch/ia64/xen/xensetup.S
+--- linux-2.6.18.3/arch/ia64/xen/xensetup.S 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/ia64/xen/xensetup.S 2006-11-19 14:26:23.000000000 +0100
@@ -0,0 +1,54 @@
+/*
@@ -27967,8 +28029,8 @@
+ mov ar.pfs=r20
+ br.ret.sptk.many b0
+END(HYPERVISOR_suspend)
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/um/kernel/physmem.c linux-2.6.18-xen/arch/um/kernel/physmem.c
---- linux-2.6.18/arch/um/kernel/physmem.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/um/kernel/physmem.c linux-2.6.18-xen/arch/um/kernel/physmem.c
+--- linux-2.6.18.3/arch/um/kernel/physmem.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/um/kernel/physmem.c 2006-11-19 14:26:32.000000000 +0100
@@ -226,7 +226,7 @@
EXPORT_SYMBOL(physmem_remove_mapping);
@@ -27988,8 +28050,8 @@
}
int is_remapped(void *virt)
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/ia32/ia32entry-xen.S linux-2.6.18-xen/arch/x86_64/ia32/ia32entry-xen.S
---- linux-2.6.18/arch/x86_64/ia32/ia32entry-xen.S 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/ia32/ia32entry-xen.S linux-2.6.18-xen/arch/x86_64/ia32/ia32entry-xen.S
+--- linux-2.6.18.3/arch/x86_64/ia32/ia32entry-xen.S 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/x86_64/ia32/ia32entry-xen.S 2006-11-19 14:26:33.000000000 +0100
@@ -0,0 +1,743 @@
+/*
@@ -28735,8 +28797,8 @@
+ .quad compat_sys_vmsplice
+ .quad compat_sys_move_pages
+ia32_syscall_end:
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/ia32/Makefile linux-2.6.18-xen/arch/x86_64/ia32/Makefile
---- linux-2.6.18/arch/x86_64/ia32/Makefile 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/ia32/Makefile linux-2.6.18-xen/arch/x86_64/ia32/Makefile
+--- linux-2.6.18.3/arch/x86_64/ia32/Makefile 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/x86_64/ia32/Makefile 2006-11-19 14:26:33.000000000 +0100
@@ -27,9 +27,25 @@
-Wl,-soname=linux-gate.so.1 -o $@ \
@@ -28766,8 +28828,8 @@
+
+obj-y := $(call cherrypickxen, $(obj-y))
+endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/ia32/syscall32_syscall-xen.S linux-2.6.18-xen/arch/x86_64/ia32/syscall32_syscall-xen.S
---- linux-2.6.18/arch/x86_64/ia32/syscall32_syscall-xen.S 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/ia32/syscall32_syscall-xen.S linux-2.6.18-xen/arch/x86_64/ia32/syscall32_syscall-xen.S
+--- linux-2.6.18.3/arch/x86_64/ia32/syscall32_syscall-xen.S 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/x86_64/ia32/syscall32_syscall-xen.S 2006-11-19 14:26:33.000000000 +0100
@@ -0,0 +1,28 @@
+/* 32bit VDSOs mapped into user space. */
@@ -28798,8 +28860,8 @@
+syscall32_sysenter:
+ .incbin "arch/x86_64/ia32/vsyscall-sysenter.so"
+syscall32_sysenter_end:
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/ia32/syscall32-xen.c linux-2.6.18-xen/arch/x86_64/ia32/syscall32-xen.c
---- linux-2.6.18/arch/x86_64/ia32/syscall32-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/ia32/syscall32-xen.c linux-2.6.18-xen/arch/x86_64/ia32/syscall32-xen.c
+--- linux-2.6.18.3/arch/x86_64/ia32/syscall32-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/x86_64/ia32/syscall32-xen.c 2006-11-19 14:26:33.000000000 +0100
@@ -0,0 +1,128 @@
+/* Copyright 2002,2003 Andi Kleen, SuSE Labs */
@@ -28930,8 +28992,8 @@
+ wrmsrl(MSR_CSTAR, ia32_cstar_target);
+#endif
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/ia32/vsyscall-int80.S linux-2.6.18-xen/arch/x86_64/ia32/vsyscall-int80.S
---- linux-2.6.18/arch/x86_64/ia32/vsyscall-int80.S 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/ia32/vsyscall-int80.S linux-2.6.18-xen/arch/x86_64/ia32/vsyscall-int80.S
+--- linux-2.6.18.3/arch/x86_64/ia32/vsyscall-int80.S 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/x86_64/ia32/vsyscall-int80.S 2006-11-19 14:26:33.000000000 +0100
@@ -0,0 +1,58 @@
+/*
@@ -28992,8 +29054,8 @@
+ */
+#define SYSCALL_ENTER_KERNEL int $0x80
+#include "vsyscall-sigreturn.S"
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/ia32/vsyscall-sigreturn.S linux-2.6.18-xen/arch/x86_64/ia32/vsyscall-sigreturn.S
---- linux-2.6.18/arch/x86_64/ia32/vsyscall-sigreturn.S 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/ia32/vsyscall-sigreturn.S linux-2.6.18-xen/arch/x86_64/ia32/vsyscall-sigreturn.S
+--- linux-2.6.18.3/arch/x86_64/ia32/vsyscall-sigreturn.S 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/x86_64/ia32/vsyscall-sigreturn.S 2006-11-19 14:26:33.000000000 +0100
@@ -139,5 +139,5 @@
.align 4
@@ -29002,17 +29064,17 @@
-#include "../../i386/kernel/vsyscall-note.S"
+#include <vsyscall-note.S>
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/Kconfig linux-2.6.18-xen/arch/x86_64/Kconfig
---- linux-2.6.18/arch/x86_64/Kconfig 2006-09-20 05:42:06.000000000 +0200
-+++ linux-2.6.18-xen/arch/x86_64/Kconfig 2006-11-19 14:26:33.000000000 +0100
-@@ -26,6 +26,7 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/Kconfig linux-2.6.18-xen/arch/x86_64/Kconfig
+--- linux-2.6.18.3/arch/x86_64/Kconfig 2006-09-20 05:42:06.000000000 +0200
++++ linux-2.6.18-xen/arch/x86_64/Kconfig 2006-12-05 18:42:36.000000000 +0100
+@@ -30,6 +30,7 @@
- config LOCKDEP_SUPPORT
+ config STACKTRACE_SUPPORT
bool
+ depends on !X86_64_XEN
default y
- config STACKTRACE_SUPPORT
+ config SEMAPHORE_SLEEPERS
@@ -135,6 +136,22 @@
endchoice
@@ -29195,27 +29257,16 @@
+source "drivers/xen/Kconfig"
+
source "lib/Kconfig"
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/Kconfig.debug linux-2.6.18-xen/arch/x86_64/Kconfig.debug
---- linux-2.6.18/arch/x86_64/Kconfig.debug 2006-09-20 05:42:06.000000000 +0200
-+++ linux-2.6.18-xen/arch/x86_64/Kconfig.debug 2006-11-19 14:26:33.000000000 +0100
-@@ -2,6 +2,7 @@
-
- config TRACE_IRQFLAGS_SUPPORT
- bool
-+ depends on !X86_64_XEN
- default y
-
- source "lib/Kconfig.debug"
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/kernel/acpi/Makefile linux-2.6.18-xen/arch/x86_64/kernel/acpi/Makefile
---- linux-2.6.18/arch/x86_64/kernel/acpi/Makefile 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/kernel/acpi/Makefile linux-2.6.18-xen/arch/x86_64/kernel/acpi/Makefile
+--- linux-2.6.18.3/arch/x86_64/kernel/acpi/Makefile 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/x86_64/kernel/acpi/Makefile 2006-11-19 14:26:33.000000000 +0100
@@ -7,3 +7,4 @@
processor-y := ../../../i386/kernel/acpi/processor.o ../../../i386/kernel/acpi/cstate.o
endif
+boot-$(CONFIG_XEN) := ../../../i386/kernel/acpi/boot-xen.o
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/kernel/apic-xen.c linux-2.6.18-xen/arch/x86_64/kernel/apic-xen.c
---- linux-2.6.18/arch/x86_64/kernel/apic-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/kernel/apic-xen.c linux-2.6.18-xen/arch/x86_64/kernel/apic-xen.c
+--- linux-2.6.18.3/arch/x86_64/kernel/apic-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/x86_64/kernel/apic-xen.c 2006-11-19 14:26:33.000000000 +0100
@@ -0,0 +1,197 @@
+/*
@@ -29415,8 +29466,8 @@
+
+ return 1;
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/kernel/asm-offsets.c linux-2.6.18-xen/arch/x86_64/kernel/asm-offsets.c
---- linux-2.6.18/arch/x86_64/kernel/asm-offsets.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/kernel/asm-offsets.c linux-2.6.18-xen/arch/x86_64/kernel/asm-offsets.c
+--- linux-2.6.18.3/arch/x86_64/kernel/asm-offsets.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/x86_64/kernel/asm-offsets.c 2006-11-19 14:26:33.000000000 +0100
@@ -67,8 +67,10 @@
DEFINE(pbe_address, offsetof(struct pbe, address));
@@ -29429,10 +29480,10 @@
BLANK();
DEFINE(crypto_tfm_ctx_offset, offsetof(struct crypto_tfm, __crt_ctx));
return 0;
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/kernel/e820-xen.c linux-2.6.18-xen/arch/x86_64/kernel/e820-xen.c
---- linux-2.6.18/arch/x86_64/kernel/e820-xen.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/arch/x86_64/kernel/e820-xen.c 2006-11-19 14:26:33.000000000 +0100
-@@ -0,0 +1,758 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/kernel/e820-xen.c linux-2.6.18-xen/arch/x86_64/kernel/e820-xen.c
+--- linux-2.6.18.3/arch/x86_64/kernel/e820-xen.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/arch/x86_64/kernel/e820-xen.c 2006-12-05 18:42:36.000000000 +0100
+@@ -0,0 +1,757 @@
+/*
+ * Handle the memory map.
+ * The functions here do the job until bootmem takes over.
@@ -29482,7 +29533,6 @@
+
+/* Check for some hardcoded bad areas that early boot is not allowed to touch */
+static inline int bad_addr(unsigned long *addrp, unsigned long size)
-+
+{
+ unsigned long addr = *addrp, last = addr + size;
+
@@ -30191,8 +30241,8 @@
+ printk(KERN_INFO "Allocating PCI resources starting at %lx (gap: %lx:%lx)\n",
+ pci_mem_start, gapstart, gapsize);
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/kernel/early_printk-xen.c linux-2.6.18-xen/arch/x86_64/kernel/early_printk-xen.c
---- linux-2.6.18/arch/x86_64/kernel/early_printk-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/kernel/early_printk-xen.c linux-2.6.18-xen/arch/x86_64/kernel/early_printk-xen.c
+--- linux-2.6.18.3/arch/x86_64/kernel/early_printk-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/x86_64/kernel/early_printk-xen.c 2006-11-19 14:26:33.000000000 +0100
@@ -0,0 +1,304 @@
+
@@ -30499,10 +30549,10 @@
+}
+
+__setup("earlyprintk=", setup_early_printk);
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/kernel/entry-xen.S linux-2.6.18-xen/arch/x86_64/kernel/entry-xen.S
---- linux-2.6.18/arch/x86_64/kernel/entry-xen.S 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/arch/x86_64/kernel/entry-xen.S 2006-11-19 14:26:33.000000000 +0100
-@@ -0,0 +1,1212 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/kernel/entry-xen.S linux-2.6.18-xen/arch/x86_64/kernel/entry-xen.S
+--- linux-2.6.18.3/arch/x86_64/kernel/entry-xen.S 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/arch/x86_64/kernel/entry-xen.S 2006-12-05 18:42:36.000000000 +0100
+@@ -0,0 +1,1213 @@
+/*
+ * linux/arch/x86_64/entry.S
+ *
@@ -30845,7 +30895,8 @@
+ movq %r10,%rcx /* fixup for C */
+ call *sys_call_table(,%rax,8)
+1: movq %rax,RAX-ARGOFFSET(%rsp)
-+ jmp ret_from_sys_call
++ /* Use IRET because user could have changed frame */
++ jmp int_ret_from_sys_call
+ CFI_ENDPROC
+END(system_call)
+
@@ -31715,10 +31766,10 @@
+ CFI_ENDPROC
+ENDPROC(arch_unwind_init_running)
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/kernel/genapic_xen.c linux-2.6.18-xen/arch/x86_64/kernel/genapic_xen.c
---- linux-2.6.18/arch/x86_64/kernel/genapic_xen.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/arch/x86_64/kernel/genapic_xen.c 2006-11-19 14:26:33.000000000 +0100
-@@ -0,0 +1,174 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/kernel/genapic_xen.c linux-2.6.18-xen/arch/x86_64/kernel/genapic_xen.c
+--- linux-2.6.18.3/arch/x86_64/kernel/genapic_xen.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/arch/x86_64/kernel/genapic_xen.c 2006-12-05 18:42:36.000000000 +0100
+@@ -0,0 +1,176 @@
+/*
+ * Copyright 2004 James Cleverdon, IBM.
+ * Subject to the GNU Public License, v.2
@@ -31854,12 +31905,14 @@
+ xen_send_IPI_shortcut(APIC_DEST_ALLINC, vector, APIC_DEST_LOGICAL);
+}
+
++#ifdef CONFIG_XEN_PRIVILEGED_GUEST
+static int xen_apic_id_registered(void)
+{
+ /* better be set */
+ Dprintk("%s\n", __FUNCTION__);
+ return physid_isset(smp_processor_id(), phys_cpu_present_map);
+}
++#endif
+
+static unsigned int xen_cpu_mask_to_apicid(cpumask_t cpumask)
+{
@@ -31893,8 +31946,8 @@
+ .cpu_mask_to_apicid = xen_cpu_mask_to_apicid,
+ .phys_pkg_id = phys_pkg_id,
+};
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/kernel/genapic-xen.c linux-2.6.18-xen/arch/x86_64/kernel/genapic-xen.c
---- linux-2.6.18/arch/x86_64/kernel/genapic-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/kernel/genapic-xen.c linux-2.6.18-xen/arch/x86_64/kernel/genapic-xen.c
+--- linux-2.6.18.3/arch/x86_64/kernel/genapic-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/x86_64/kernel/genapic-xen.c 2006-11-19 14:26:33.000000000 +0100
@@ -0,0 +1,143 @@
+/*
@@ -32040,8 +32093,8 @@
+ xen_send_IPI_shortcut(APIC_DEST_SELF, vector, APIC_DEST_PHYSICAL);
+#endif
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/kernel/head64-xen.c linux-2.6.18-xen/arch/x86_64/kernel/head64-xen.c
---- linux-2.6.18/arch/x86_64/kernel/head64-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/kernel/head64-xen.c linux-2.6.18-xen/arch/x86_64/kernel/head64-xen.c
+--- linux-2.6.18.3/arch/x86_64/kernel/head64-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/x86_64/kernel/head64-xen.c 2006-11-19 14:26:33.000000000 +0100
@@ -0,0 +1,161 @@
+/*
@@ -32205,8 +32258,8 @@
+ setup_boot_cpu_data();
+ start_kernel();
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/kernel/head-xen.S linux-2.6.18-xen/arch/x86_64/kernel/head-xen.S
---- linux-2.6.18/arch/x86_64/kernel/head-xen.S 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/kernel/head-xen.S linux-2.6.18-xen/arch/x86_64/kernel/head-xen.S
+--- linux-2.6.18.3/arch/x86_64/kernel/head-xen.S 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/x86_64/kernel/head-xen.S 2006-11-19 14:26:33.000000000 +0100
@@ -0,0 +1,191 @@
+/*
@@ -32400,8 +32453,8 @@
+ ELFNOTE(Xen, XEN_ELFNOTE_HYPERCALL_PAGE, .quad, hypercall_page)
+ ELFNOTE(Xen, XEN_ELFNOTE_FEATURES, .asciz, "writable_page_tables|writable_descriptor_tables|auto_translated_physmap|pae_pgdir_above_4gb|supervisor_mode_kernel")
+ ELFNOTE(Xen, XEN_ELFNOTE_LOADER, .asciz, "generic")
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/kernel/init_task.c linux-2.6.18-xen/arch/x86_64/kernel/init_task.c
---- linux-2.6.18/arch/x86_64/kernel/init_task.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/kernel/init_task.c linux-2.6.18-xen/arch/x86_64/kernel/init_task.c
+--- linux-2.6.18.3/arch/x86_64/kernel/init_task.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/x86_64/kernel/init_task.c 2006-11-19 14:26:33.000000000 +0100
@@ -37,6 +37,8 @@
struct task_struct init_task = INIT_TASK(init_task);
@@ -32420,8 +32473,8 @@
/* Copies of the original ist values from the tss are only accessed during
* debugging, no special alignment required.
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/kernel/io_apic-xen.c linux-2.6.18-xen/arch/x86_64/kernel/io_apic-xen.c
---- linux-2.6.18/arch/x86_64/kernel/io_apic-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/kernel/io_apic-xen.c linux-2.6.18-xen/arch/x86_64/kernel/io_apic-xen.c
+--- linux-2.6.18.3/arch/x86_64/kernel/io_apic-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/x86_64/kernel/io_apic-xen.c 2006-11-19 14:26:33.000000000 +0100
@@ -0,0 +1,2263 @@
+/*
@@ -34687,8 +34740,8 @@
+}
+#endif
+#endif /* !CONFIG_XEN */
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/kernel/ioport-xen.c linux-2.6.18-xen/arch/x86_64/kernel/ioport-xen.c
---- linux-2.6.18/arch/x86_64/kernel/ioport-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/kernel/ioport-xen.c linux-2.6.18-xen/arch/x86_64/kernel/ioport-xen.c
+--- linux-2.6.18.3/arch/x86_64/kernel/ioport-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/x86_64/kernel/ioport-xen.c 2006-11-19 14:26:33.000000000 +0100
@@ -0,0 +1,99 @@
+/*
@@ -34790,8 +34843,112 @@
+
+ return 0;
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/kernel/irq-xen.c linux-2.6.18-xen/arch/x86_64/kernel/irq-xen.c
---- linux-2.6.18/arch/x86_64/kernel/irq-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/kernel/irqflags-xen.c linux-2.6.18-xen/arch/x86_64/kernel/irqflags-xen.c
+--- linux-2.6.18.3/arch/x86_64/kernel/irqflags-xen.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/arch/x86_64/kernel/irqflags-xen.c 2006-12-05 18:42:36.000000000 +0100
+@@ -0,0 +1,100 @@
++#include <linux/module.h>
++#include <linux/smp.h>
++#include <asm/irqflags.h>
++#include <asm/hypervisor.h>
++
++/*
++ * The use of 'barrier' in the following reflects their use as local-lock
++ * operations. Reentrancy must be prevented (e.g., __cli()) /before/ following
++ * critical operations are executed. All critical operations must complete
++ * /before/ reentrancy is permitted (e.g., __sti()). Alpha architecture also
++ * includes these barriers, for example.
++ */
++
++unsigned long __raw_local_save_flags(void)
++{
++ struct vcpu_info *_vcpu;
++ unsigned long flags;
++
++ preempt_disable();
++ _vcpu = &HYPERVISOR_shared_info->vcpu_info[__vcpu_id];
++ flags = _vcpu->evtchn_upcall_mask;
++ preempt_enable();
++
++ return flags;
++}
++EXPORT_SYMBOL(__raw_local_save_flags);
++
++void raw_local_irq_restore(unsigned long flags)
++{
++ struct vcpu_info *_vcpu;
++ preempt_disable();
++ _vcpu = &HYPERVISOR_shared_info->vcpu_info[__vcpu_id];
++ if ((_vcpu->evtchn_upcall_mask = flags) == 0) {
++ barrier(); /* unmask then check (avoid races) */
++ if ( unlikely(_vcpu->evtchn_upcall_pending) )
++ force_evtchn_callback();
++ preempt_enable();
++ } else
++ preempt_enable_no_resched();
++}
++EXPORT_SYMBOL(raw_local_irq_restore);
++
++void raw_local_irq_disable(void)
++{
++ struct vcpu_info *_vcpu;
++
++ preempt_disable();
++ _vcpu = &HYPERVISOR_shared_info->vcpu_info[__vcpu_id];
++ _vcpu->evtchn_upcall_mask = 1;
++ preempt_enable_no_resched();
++}
++EXPORT_SYMBOL(raw_local_irq_disable);
++
++void raw_local_irq_enable(void)
++{
++ struct vcpu_info *_vcpu;
++
++ preempt_disable();
++ _vcpu = &HYPERVISOR_shared_info->vcpu_info[__vcpu_id];
++ _vcpu->evtchn_upcall_mask = 0;
++ barrier(); /* unmask then check (avoid races) */
++ if ( unlikely(_vcpu->evtchn_upcall_pending) )
++ force_evtchn_callback();
++ preempt_enable();
++}
++EXPORT_SYMBOL(raw_local_irq_enable);
++
++/*
++ * For spinlocks, etc.:
++ */
++
++unsigned long __raw_local_irq_save(void)
++{
++ struct vcpu_info *_vcpu;
++ unsigned long flags;
++
++ preempt_disable();
++ _vcpu = &HYPERVISOR_shared_info->vcpu_info[__vcpu_id];
++ flags = _vcpu->evtchn_upcall_mask;
++ _vcpu->evtchn_upcall_mask = 1;
++ preempt_enable_no_resched();
++
++ return flags;
++}
++EXPORT_SYMBOL(__raw_local_irq_save);
++
++/* Cannot use preempt_enable() here as we would recurse in preempt_sched(). */
++int raw_irqs_disabled(void)
++{
++ struct vcpu_info *_vcpu;
++ int disabled;
++
++ preempt_disable();
++ _vcpu = &HYPERVISOR_shared_info->vcpu_info[__vcpu_id];
++ disabled = (_vcpu->evtchn_upcall_mask != 0);
++ preempt_enable_no_resched();
++
++ return disabled;
++}
++EXPORT_SYMBOL(raw_irqs_disabled);
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/kernel/irq-xen.c linux-2.6.18-xen/arch/x86_64/kernel/irq-xen.c
+--- linux-2.6.18.3/arch/x86_64/kernel/irq-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/x86_64/kernel/irq-xen.c 2006-11-19 14:26:33.000000000 +0100
@@ -0,0 +1,198 @@
+/*
@@ -34992,8 +35149,8 @@
+ printk("unexpected IRQ trap at vector %02x\n", irq);
+}
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/kernel/ldt-xen.c linux-2.6.18-xen/arch/x86_64/kernel/ldt-xen.c
---- linux-2.6.18/arch/x86_64/kernel/ldt-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/kernel/ldt-xen.c linux-2.6.18-xen/arch/x86_64/kernel/ldt-xen.c
+--- linux-2.6.18.3/arch/x86_64/kernel/ldt-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/x86_64/kernel/ldt-xen.c 2006-11-19 14:26:33.000000000 +0100
@@ -0,0 +1,282 @@
+/*
@@ -35278,9 +35435,9 @@
+ }
+ return ret;
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/kernel/Makefile linux-2.6.18-xen/arch/x86_64/kernel/Makefile
---- linux-2.6.18/arch/x86_64/kernel/Makefile 2006-09-20 05:42:06.000000000 +0200
-+++ linux-2.6.18-xen/arch/x86_64/kernel/Makefile 2006-11-19 14:26:33.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/kernel/Makefile linux-2.6.18-xen/arch/x86_64/kernel/Makefile
+--- linux-2.6.18.3/arch/x86_64/kernel/Makefile 2006-09-20 05:42:06.000000000 +0200
++++ linux-2.6.18-xen/arch/x86_64/kernel/Makefile 2006-12-05 18:42:36.000000000 +0100
@@ -21,11 +21,13 @@
obj-$(CONFIG_X86_CPUID) += cpuid.o
obj-$(CONFIG_SMP) += smp.o smpboot.o trampoline.o
@@ -35296,11 +35453,12 @@
obj-$(CONFIG_SOFTWARE_SUSPEND) += suspend_asm.o
obj-$(CONFIG_CPU_FREQ) += cpufreq/
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
-@@ -55,3 +57,17 @@
+@@ -55,3 +57,18 @@
msr-$(subst m,y,$(CONFIG_X86_MSR)) += ../../i386/kernel/msr.o
alternative-y += ../../i386/kernel/alternative.o
+ifdef CONFIG_XEN
++obj-y += irqflags.o
+time-y += ../../i386/kernel/time-xen.o
+pci-dma-y += ../../i386/kernel/pci-dma-xen.o
+microcode-$(subst m,y,$(CONFIG_MICROCODE)) := ../../i386/kernel/microcode-xen.o
@@ -35314,8 +35472,8 @@
+obj-y := $(call cherrypickxen, $(obj-y))
+extra-y := $(call cherrypickxen, $(extra-y))
+endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/kernel/mpparse-xen.c linux-2.6.18-xen/arch/x86_64/kernel/mpparse-xen.c
---- linux-2.6.18/arch/x86_64/kernel/mpparse-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/kernel/mpparse-xen.c linux-2.6.18-xen/arch/x86_64/kernel/mpparse-xen.c
+--- linux-2.6.18.3/arch/x86_64/kernel/mpparse-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/x86_64/kernel/mpparse-xen.c 2006-11-19 14:26:33.000000000 +0100
@@ -0,0 +1,1011 @@
+/*
@@ -36329,8 +36487,8 @@
+
+#endif /*CONFIG_X86_IO_APIC*/
+#endif /*CONFIG_ACPI*/
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/kernel/pci-swiotlb-xen.c linux-2.6.18-xen/arch/x86_64/kernel/pci-swiotlb-xen.c
---- linux-2.6.18/arch/x86_64/kernel/pci-swiotlb-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/kernel/pci-swiotlb-xen.c linux-2.6.18-xen/arch/x86_64/kernel/pci-swiotlb-xen.c
+--- linux-2.6.18.3/arch/x86_64/kernel/pci-swiotlb-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/x86_64/kernel/pci-swiotlb-xen.c 2006-11-19 14:26:33.000000000 +0100
@@ -0,0 +1,54 @@
+/* Glue code to lib/swiotlb.c */
@@ -36387,10 +36545,10 @@
+ }
+#endif
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/kernel/process-xen.c linux-2.6.18-xen/arch/x86_64/kernel/process-xen.c
---- linux-2.6.18/arch/x86_64/kernel/process-xen.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/arch/x86_64/kernel/process-xen.c 2006-11-19 14:26:33.000000000 +0100
-@@ -0,0 +1,792 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/kernel/process-xen.c linux-2.6.18-xen/arch/x86_64/kernel/process-xen.c
+--- linux-2.6.18.3/arch/x86_64/kernel/process-xen.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/arch/x86_64/kernel/process-xen.c 2006-12-05 18:42:36.000000000 +0100
+@@ -0,0 +1,787 @@
+/*
+ * linux/arch/x86-64/kernel/process.c
+ *
@@ -36854,18 +37012,6 @@
+ multicall_entry_t _mcl[8], *mcl = _mcl;
+
+ /*
-+ * This is basically '__unlazy_fpu', except that we queue a
-+ * multicall to indicate FPU task switch, rather than
-+ * synchronously trapping to Xen.
-+ */
-+ if (prev_p->thread_info->status & TS_USEDFPU) {
-+ __save_init_fpu(prev_p); /* _not_ save_init_fpu() */
-+ mcl->op = __HYPERVISOR_fpu_taskswitch;
-+ mcl->args[0] = 1;
-+ mcl++;
-+ }
-+
-+ /*
+ * Reload esp0, LDT and the page table pointer:
+ */
+ mcl->op = __HYPERVISOR_stack_switch;
@@ -36932,12 +37078,19 @@
+ if (next->gs)
+ HYPERVISOR_set_segment_base(SEGBASE_GS_USER, next->gs);
+
++ /* Must be after DS reload */
++ if (prev_p->thread_info->status & TS_USEDFPU) {
++ __save_init_fpu(prev_p); /* _not_ save_init_fpu() */
++ HYPERVISOR_fpu_taskswitch(1);
++ }
++
+ /*
-+ * Switch the PDA.
++ * Switch the PDA and FPU contexts.
+ */
+ prev->userrsp = read_pda(oldrsp);
+ write_pda(oldrsp, next->userrsp);
+ write_pda(pcurrent, next_p);
++
+ write_pda(kernelstack,
+ task_stack_page(next_p) + THREAD_SIZE - PDA_STACKOFFSET);
+
@@ -37183,8 +37336,8 @@
+{
+}
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/kernel/setup64-xen.c linux-2.6.18-xen/arch/x86_64/kernel/setup64-xen.c
---- linux-2.6.18/arch/x86_64/kernel/setup64-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/kernel/setup64-xen.c linux-2.6.18-xen/arch/x86_64/kernel/setup64-xen.c
+--- linux-2.6.18.3/arch/x86_64/kernel/setup64-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/x86_64/kernel/setup64-xen.c 2006-11-19 14:26:34.000000000 +0100
@@ -0,0 +1,361 @@
+/*
@@ -37548,10 +37701,10 @@
+
+ fpu_init();
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/kernel/setup-xen.c linux-2.6.18-xen/arch/x86_64/kernel/setup-xen.c
---- linux-2.6.18/arch/x86_64/kernel/setup-xen.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/arch/x86_64/kernel/setup-xen.c 2006-11-19 14:26:33.000000000 +0100
-@@ -0,0 +1,1638 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/kernel/setup-xen.c linux-2.6.18-xen/arch/x86_64/kernel/setup-xen.c
+--- linux-2.6.18.3/arch/x86_64/kernel/setup-xen.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/arch/x86_64/kernel/setup-xen.c 2006-12-05 18:42:36.000000000 +0100
+@@ -0,0 +1,1637 @@
+/*
+ * linux/arch/x86-64/kernel/setup.c
+ *
@@ -37620,14 +37773,13 @@
+#include <asm/dmi.h>
+#ifdef CONFIG_XEN
+#include <linux/percpu.h>
++#include <linux/pfn.h>
+#include <xen/interface/physdev.h>
+#include "setup_arch_pre.h"
+#include <asm/hypervisor.h>
+#include <xen/interface/nmi.h>
+#include <xen/features.h>
+#include <xen/xencons.h>
-+#define PFN_UP(x) (((x) + PAGE_SIZE-1) >> PAGE_SHIFT)
-+#define PFN_PHYS(x) ((x) << PAGE_SHIFT)
+#include <asm/mach-xen/setup_arch_post.h>
+#include <xen/interface/memory.h>
+
@@ -39190,8 +39342,8 @@
+}
+device_initcall(add_pcspkr);
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/kernel/smp-xen.c linux-2.6.18-xen/arch/x86_64/kernel/smp-xen.c
---- linux-2.6.18/arch/x86_64/kernel/smp-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/kernel/smp-xen.c linux-2.6.18-xen/arch/x86_64/kernel/smp-xen.c
+--- linux-2.6.18.3/arch/x86_64/kernel/smp-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/x86_64/kernel/smp-xen.c 2006-11-19 14:26:34.000000000 +0100
@@ -0,0 +1,600 @@
+/*
@@ -39794,8 +39946,8 @@
+ return 0; /* Should not happen */
+#endif
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/kernel/traps-xen.c linux-2.6.18-xen/arch/x86_64/kernel/traps-xen.c
---- linux-2.6.18/arch/x86_64/kernel/traps-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/kernel/traps-xen.c linux-2.6.18-xen/arch/x86_64/kernel/traps-xen.c
+--- linux-2.6.18.3/arch/x86_64/kernel/traps-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/x86_64/kernel/traps-xen.c 2006-11-19 14:26:34.000000000 +0100
@@ -0,0 +1,1172 @@
+/*
@@ -40970,8 +41122,8 @@
+}
+__setup("call_trace=", call_trace_setup);
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/kernel/vmlinux.lds.S linux-2.6.18-xen/arch/x86_64/kernel/vmlinux.lds.S
---- linux-2.6.18/arch/x86_64/kernel/vmlinux.lds.S 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/kernel/vmlinux.lds.S linux-2.6.18-xen/arch/x86_64/kernel/vmlinux.lds.S
+--- linux-2.6.18.3/arch/x86_64/kernel/vmlinux.lds.S 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/x86_64/kernel/vmlinux.lds.S 2006-11-19 14:26:34.000000000 +0100
@@ -13,6 +13,12 @@
OUTPUT_ARCH(i386:x86-64)
@@ -41054,8 +41206,8 @@
+
+ NOTES
}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/kernel/vsyscall-xen.c linux-2.6.18-xen/arch/x86_64/kernel/vsyscall-xen.c
---- linux-2.6.18/arch/x86_64/kernel/vsyscall-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/kernel/vsyscall-xen.c linux-2.6.18-xen/arch/x86_64/kernel/vsyscall-xen.c
+--- linux-2.6.18.3/arch/x86_64/kernel/vsyscall-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/x86_64/kernel/vsyscall-xen.c 2006-11-19 14:26:34.000000000 +0100
@@ -0,0 +1,239 @@
+/*
@@ -41297,8 +41449,8 @@
+}
+
+__initcall(vsyscall_init);
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/kernel/xen_entry.S linux-2.6.18-xen/arch/x86_64/kernel/xen_entry.S
---- linux-2.6.18/arch/x86_64/kernel/xen_entry.S 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/kernel/xen_entry.S linux-2.6.18-xen/arch/x86_64/kernel/xen_entry.S
+--- linux-2.6.18.3/arch/x86_64/kernel/xen_entry.S 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/x86_64/kernel/xen_entry.S 2006-11-19 14:26:34.000000000 +0100
@@ -0,0 +1,40 @@
+/*
@@ -41341,8 +41493,8 @@
+VGCF_IN_SYSCALL = (1<<8)
+
+
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/Makefile linux-2.6.18-xen/arch/x86_64/Makefile
---- linux-2.6.18/arch/x86_64/Makefile 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/Makefile linux-2.6.18-xen/arch/x86_64/Makefile
+--- linux-2.6.18.3/arch/x86_64/Makefile 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/x86_64/Makefile 2006-11-19 14:26:33.000000000 +0100
@@ -32,6 +32,10 @@
cflags-$(CONFIG_MPSC) += $(call cc-option,-march=nocona)
@@ -41385,8 +41537,8 @@
archclean:
$(Q)$(MAKE) $(clean)=$(boot)
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/mm/fault-xen.c linux-2.6.18-xen/arch/x86_64/mm/fault-xen.c
---- linux-2.6.18/arch/x86_64/mm/fault-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/mm/fault-xen.c linux-2.6.18-xen/arch/x86_64/mm/fault-xen.c
+--- linux-2.6.18.3/arch/x86_64/mm/fault-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/x86_64/mm/fault-xen.c 2006-11-19 14:26:34.000000000 +0100
@@ -0,0 +1,723 @@
+/*
@@ -42112,8 +42264,8 @@
+ return 1;
+}
+__setup("pagefaulttrace", enable_pagefaulttrace);
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/mm/init-xen.c linux-2.6.18-xen/arch/x86_64/mm/init-xen.c
---- linux-2.6.18/arch/x86_64/mm/init-xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/mm/init-xen.c linux-2.6.18-xen/arch/x86_64/mm/init-xen.c
+--- linux-2.6.18.3/arch/x86_64/mm/init-xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/arch/x86_64/mm/init-xen.c 2006-11-19 14:26:34.000000000 +0100
@@ -0,0 +1,1200 @@
+/*
@@ -43316,8 +43468,8 @@
+{
+ return (addr >= VSYSCALL_START) && (addr < VSYSCALL_END);
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/mm/Makefile linux-2.6.18-xen/arch/x86_64/mm/Makefile
---- linux-2.6.18/arch/x86_64/mm/Makefile 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/mm/Makefile linux-2.6.18-xen/arch/x86_64/mm/Makefile
+--- linux-2.6.18.3/arch/x86_64/mm/Makefile 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/x86_64/mm/Makefile 2006-11-19 14:26:34.000000000 +0100
@@ -9,3 +9,13 @@
obj-$(CONFIG_ACPI_NUMA) += srat.o
@@ -43333,10 +43485,10 @@
+
+obj-y := $(call cherrypickxen, $(obj-y))
+endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/mm/pageattr-xen.c linux-2.6.18-xen/arch/x86_64/mm/pageattr-xen.c
---- linux-2.6.18/arch/x86_64/mm/pageattr-xen.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/arch/x86_64/mm/pageattr-xen.c 2006-11-19 14:26:34.000000000 +0100
-@@ -0,0 +1,396 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/mm/pageattr-xen.c linux-2.6.18-xen/arch/x86_64/mm/pageattr-xen.c
+--- linux-2.6.18.3/arch/x86_64/mm/pageattr-xen.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/arch/x86_64/mm/pageattr-xen.c 2006-12-05 18:42:36.000000000 +0100
+@@ -0,0 +1,398 @@
+/*
+ * Copyright 2002 Andi Kleen, SuSE Labs.
+ * Thanks to Ben LaHaise for precious feedback.
@@ -43660,11 +43812,13 @@
+ */
+#ifndef CONFIG_XEN
+ BUG_ON(PageReserved(kpte_page));
++#else
++ if(!PageReserved(kpte_page))
+#endif
-+ if (page_private(kpte_page) == 0) {
-+ save_page(kpte_page);
-+ revert_page(address, ref_prot);
-+ }
++ if (page_private(kpte_page) == 0) {
++ save_page(kpte_page);
++ revert_page(address, ref_prot);
++ }
+ return 0;
+}
+
@@ -43733,8 +43887,8 @@
+
+EXPORT_SYMBOL(change_page_attr);
+EXPORT_SYMBOL(global_flush_tlb);
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/oprofile/Makefile linux-2.6.18-xen/arch/x86_64/oprofile/Makefile
---- linux-2.6.18/arch/x86_64/oprofile/Makefile 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/oprofile/Makefile linux-2.6.18-xen/arch/x86_64/oprofile/Makefile
+--- linux-2.6.18.3/arch/x86_64/oprofile/Makefile 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/x86_64/oprofile/Makefile 2006-11-19 14:26:34.000000000 +0100
@@ -11,9 +11,12 @@
oprofilefs.o oprofile_stats.o \
@@ -43750,8 +43904,8 @@
-
+endif
oprofile-y = $(DRIVER_OBJS) $(addprefix ../../i386/oprofile/, $(OPROFILE-y))
-diff -urN -x .hg -x .hgtags linux-2.6.18/arch/x86_64/pci/Makefile linux-2.6.18-xen/arch/x86_64/pci/Makefile
---- linux-2.6.18/arch/x86_64/pci/Makefile 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/arch/x86_64/pci/Makefile linux-2.6.18-xen/arch/x86_64/pci/Makefile
+--- linux-2.6.18.3/arch/x86_64/pci/Makefile 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/arch/x86_64/pci/Makefile 2006-11-19 14:26:34.000000000 +0100
@@ -15,11 +15,23 @@
@@ -43777,8 +43931,8 @@
+
+obj-y := $(call cherrypickxen, $(obj-y))
+endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/acpi/Kconfig linux-2.6.18-xen/drivers/acpi/Kconfig
---- linux-2.6.18/drivers/acpi/Kconfig 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/acpi/Kconfig linux-2.6.18-xen/drivers/acpi/Kconfig
+--- linux-2.6.18.3/drivers/acpi/Kconfig 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/drivers/acpi/Kconfig 2006-11-19 14:26:34.000000000 +0100
@@ -45,7 +45,7 @@
@@ -43797,8 +43951,8 @@
default y
help
The Power Management Timer is available on all ACPI-capable,
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/char/hangcheck-timer.c linux-2.6.18-xen/drivers/char/hangcheck-timer.c
---- linux-2.6.18/drivers/char/hangcheck-timer.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/char/hangcheck-timer.c linux-2.6.18-xen/drivers/char/hangcheck-timer.c
+--- linux-2.6.18.3/drivers/char/hangcheck-timer.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/drivers/char/hangcheck-timer.c 2006-11-19 14:26:36.000000000 +0100
@@ -117,7 +117,7 @@
__setup("hcheck_dump_tasks", hangcheck_parse_dump_tasks);
@@ -43809,8 +43963,8 @@
# define HAVE_MONOTONIC
# define TIMER_FREQ 1000000000ULL
#elif defined(CONFIG_IA64)
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/char/mem.c linux-2.6.18-xen/drivers/char/mem.c
---- linux-2.6.18/drivers/char/mem.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/char/mem.c linux-2.6.18-xen/drivers/char/mem.c
+--- linux-2.6.18.3/drivers/char/mem.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/drivers/char/mem.c 2006-11-19 14:26:36.000000000 +0100
@@ -101,6 +101,7 @@
}
@@ -43846,8 +44000,8 @@
static const struct file_operations kmem_fops = {
.llseek = memory_lseek,
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/char/tpm/Kconfig linux-2.6.18-xen/drivers/char/tpm/Kconfig
---- linux-2.6.18/drivers/char/tpm/Kconfig 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/char/tpm/Kconfig linux-2.6.18-xen/drivers/char/tpm/Kconfig
+--- linux-2.6.18.3/drivers/char/tpm/Kconfig 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/drivers/char/tpm/Kconfig 2006-11-19 14:26:36.000000000 +0100
@@ -31,7 +31,7 @@
@@ -43873,8 +44027,8 @@
+ will be called tpm_xenu.
+endmenu
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/char/tpm/Makefile linux-2.6.18-xen/drivers/char/tpm/Makefile
---- linux-2.6.18/drivers/char/tpm/Makefile 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/char/tpm/Makefile linux-2.6.18-xen/drivers/char/tpm/Makefile
+--- linux-2.6.18.3/drivers/char/tpm/Makefile 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/drivers/char/tpm/Makefile 2006-11-19 14:26:36.000000000 +0100
@@ -9,3 +9,5 @@
obj-$(CONFIG_TCG_NSC) += tpm_nsc.o
@@ -43882,8 +44036,8 @@
obj-$(CONFIG_TCG_INFINEON) += tpm_infineon.o
+obj-$(CONFIG_TCG_XEN) += tpm_xenu.o
+tpm_xenu-y = tpm_xen.o tpm_vtpm.o
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/char/tpm/tpm.c linux-2.6.18-xen/drivers/char/tpm/tpm.c
---- linux-2.6.18/drivers/char/tpm/tpm.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/char/tpm/tpm.c linux-2.6.18-xen/drivers/char/tpm/tpm.c
+--- linux-2.6.18.3/drivers/char/tpm/tpm.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/drivers/char/tpm/tpm.c 2006-11-19 14:26:36.000000000 +0100
@@ -30,7 +30,9 @@
@@ -44005,9 +44159,9 @@
return ret_size;
}
EXPORT_SYMBOL_GPL(tpm_read);
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/char/tpm/tpm.h linux-2.6.18-xen/drivers/char/tpm/tpm.h
---- linux-2.6.18/drivers/char/tpm/tpm.h 2006-09-20 05:42:06.000000000 +0200
-+++ linux-2.6.18-xen/drivers/char/tpm/tpm.h 2006-11-19 14:26:36.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/char/tpm/tpm.h linux-2.6.18-xen/drivers/char/tpm/tpm.h
+--- linux-2.6.18.3/drivers/char/tpm/tpm.h 2006-09-20 05:42:06.000000000 +0200
++++ linux-2.6.18-xen/drivers/char/tpm/tpm.h 2006-12-05 18:42:36.000000000 +0100
@@ -61,6 +61,7 @@
const u8 req_complete_mask;
const u8 req_complete_val;
@@ -44030,14 +44184,14 @@
+static inline u32 get_chip_buffersize(struct tpm_chip *chip)
+{
-+ return chip->vendor->buffersize;
++ return chip->vendor.buffersize;
+}
+
extern void tpm_get_timeouts(struct tpm_chip *);
extern void tpm_gen_interrupt(struct tpm_chip *);
extern void tpm_continue_selftest(struct tpm_chip *);
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/char/tpm/tpm_vtpm.c linux-2.6.18-xen/drivers/char/tpm/tpm_vtpm.c
---- linux-2.6.18/drivers/char/tpm/tpm_vtpm.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/char/tpm/tpm_vtpm.c linux-2.6.18-xen/drivers/char/tpm/tpm_vtpm.c
+--- linux-2.6.18.3/drivers/char/tpm/tpm_vtpm.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/char/tpm/tpm_vtpm.c 2006-11-19 14:26:36.000000000 +0100
@@ -0,0 +1,547 @@
+/*
@@ -44587,8 +44741,8 @@
+ tpm_remove_hardware(dev);
+ kfree(vtpms);
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/char/tpm/tpm_vtpm.h linux-2.6.18-xen/drivers/char/tpm/tpm_vtpm.h
---- linux-2.6.18/drivers/char/tpm/tpm_vtpm.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/char/tpm/tpm_vtpm.h linux-2.6.18-xen/drivers/char/tpm/tpm_vtpm.h
+--- linux-2.6.18.3/drivers/char/tpm/tpm_vtpm.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/char/tpm/tpm_vtpm.h 2006-11-19 14:26:36.000000000 +0100
@@ -0,0 +1,68 @@
+#ifndef TPM_VTPM_H
@@ -44659,8 +44813,8 @@
+}
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/char/tpm/tpm_xen.c linux-2.6.18-xen/drivers/char/tpm/tpm_xen.c
---- linux-2.6.18/drivers/char/tpm/tpm_xen.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/char/tpm/tpm_xen.c linux-2.6.18-xen/drivers/char/tpm/tpm_xen.c
+--- linux-2.6.18.3/drivers/char/tpm/tpm_xen.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/char/tpm/tpm_xen.c 2006-11-19 14:26:36.000000000 +0100
@@ -0,0 +1,756 @@
+/*
@@ -45419,8 +45573,8 @@
+module_init(tpmif_init);
+
+MODULE_LICENSE("Dual BSD/GPL");
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/char/tty_io.c linux-2.6.18-xen/drivers/char/tty_io.c
---- linux-2.6.18/drivers/char/tty_io.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/char/tty_io.c linux-2.6.18-xen/drivers/char/tty_io.c
+--- linux-2.6.18.3/drivers/char/tty_io.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/drivers/char/tty_io.c 2006-11-19 14:26:36.000000000 +0100
@@ -130,6 +130,8 @@
vt.c for deeply disgusting hack reasons */
@@ -45457,8 +45611,8 @@
#endif
return 0;
}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/firmware/Kconfig linux-2.6.18-xen/drivers/firmware/Kconfig
---- linux-2.6.18/drivers/firmware/Kconfig 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/firmware/Kconfig linux-2.6.18-xen/drivers/firmware/Kconfig
+--- linux-2.6.18.3/drivers/firmware/Kconfig 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/drivers/firmware/Kconfig 2006-11-19 14:26:37.000000000 +0100
@@ -7,7 +7,7 @@
@@ -45469,8 +45623,8 @@
help
Say Y or M here if you want to enable BIOS Enhanced Disk Drive
Services real mode BIOS calls to determine which disk
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/ide/ide-lib.c linux-2.6.18-xen/drivers/ide/ide-lib.c
---- linux-2.6.18/drivers/ide/ide-lib.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/ide/ide-lib.c linux-2.6.18-xen/drivers/ide/ide-lib.c
+--- linux-2.6.18.3/drivers/ide/ide-lib.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/drivers/ide/ide-lib.c 2006-11-19 14:26:39.000000000 +0100
@@ -408,10 +408,10 @@
{
@@ -45487,8 +45641,8 @@
addr = HWIF(drive)->pci_dev->dma_mask;
}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/Makefile linux-2.6.18-xen/drivers/Makefile
---- linux-2.6.18/drivers/Makefile 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/Makefile linux-2.6.18-xen/drivers/Makefile
+--- linux-2.6.18.3/drivers/Makefile 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/drivers/Makefile 2006-11-19 14:26:34.000000000 +0100
@@ -31,6 +31,7 @@
obj-$(CONFIG_NUBUS) += nubus/
@@ -45498,8 +45652,8 @@
obj-$(CONFIG_IDE) += ide/
obj-$(CONFIG_FC4) += fc4/
obj-$(CONFIG_SCSI) += scsi/
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/oprofile/buffer_sync.c linux-2.6.18-xen/drivers/oprofile/buffer_sync.c
---- linux-2.6.18/drivers/oprofile/buffer_sync.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/oprofile/buffer_sync.c linux-2.6.18-xen/drivers/oprofile/buffer_sync.c
+--- linux-2.6.18.3/drivers/oprofile/buffer_sync.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/drivers/oprofile/buffer_sync.c 2006-11-19 14:26:47.000000000 +0100
@@ -6,6 +6,10 @@
*
@@ -45621,8 +45775,8 @@
}
}
}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/oprofile/cpu_buffer.c linux-2.6.18-xen/drivers/oprofile/cpu_buffer.c
---- linux-2.6.18/drivers/oprofile/cpu_buffer.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/oprofile/cpu_buffer.c linux-2.6.18-xen/drivers/oprofile/cpu_buffer.c
+--- linux-2.6.18.3/drivers/oprofile/cpu_buffer.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/drivers/oprofile/cpu_buffer.c 2006-11-19 14:26:47.000000000 +0100
@@ -6,6 +6,10 @@
*
@@ -45733,8 +45887,8 @@
/*
* This serves to avoid cpu buffer overflow, and makes sure
* the task mortuary progresses
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/oprofile/cpu_buffer.h linux-2.6.18-xen/drivers/oprofile/cpu_buffer.h
---- linux-2.6.18/drivers/oprofile/cpu_buffer.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/oprofile/cpu_buffer.h linux-2.6.18-xen/drivers/oprofile/cpu_buffer.h
+--- linux-2.6.18.3/drivers/oprofile/cpu_buffer.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/drivers/oprofile/cpu_buffer.h 2006-11-19 14:26:47.000000000 +0100
@@ -36,7 +36,7 @@
volatile unsigned long tail_pos;
@@ -45758,8 +45912,8 @@
+#define CPU_DOMAIN_SWITCH 4
#endif /* OPROFILE_CPU_BUFFER_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/oprofile/event_buffer.h linux-2.6.18-xen/drivers/oprofile/event_buffer.h
---- linux-2.6.18/drivers/oprofile/event_buffer.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/oprofile/event_buffer.h linux-2.6.18-xen/drivers/oprofile/event_buffer.h
+--- linux-2.6.18.3/drivers/oprofile/event_buffer.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/drivers/oprofile/event_buffer.h 2006-11-19 14:26:47.000000000 +0100
@@ -29,15 +29,20 @@
#define CPU_SWITCH_CODE 2
@@ -45783,8 +45937,8 @@
/* add data to the event buffer */
void add_event_entry(unsigned long data);
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/oprofile/oprof.c linux-2.6.18-xen/drivers/oprofile/oprof.c
---- linux-2.6.18/drivers/oprofile/oprof.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/oprofile/oprof.c linux-2.6.18-xen/drivers/oprofile/oprof.c
+--- linux-2.6.18.3/drivers/oprofile/oprof.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/drivers/oprofile/oprof.c 2006-11-19 14:26:47.000000000 +0100
@@ -5,6 +5,10 @@
* @remark Read the file COPYING
@@ -45839,8 +45993,8 @@
int oprofile_setup(void)
{
int err;
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/oprofile/oprof.h linux-2.6.18-xen/drivers/oprofile/oprof.h
---- linux-2.6.18/drivers/oprofile/oprof.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/oprofile/oprof.h linux-2.6.18-xen/drivers/oprofile/oprof.h
+--- linux-2.6.18.3/drivers/oprofile/oprof.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/drivers/oprofile/oprof.h 2006-11-19 14:26:47.000000000 +0100
@@ -35,5 +35,8 @@
void oprofile_timer_init(struct oprofile_operations * ops);
@@ -45851,8 +46005,8 @@
+int oprofile_set_passive(int passive_domains[], unsigned int pdomains);
#endif /* OPROF_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/oprofile/oprofile_files.c linux-2.6.18-xen/drivers/oprofile/oprofile_files.c
---- linux-2.6.18/drivers/oprofile/oprofile_files.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/oprofile/oprofile_files.c linux-2.6.18-xen/drivers/oprofile/oprofile_files.c
+--- linux-2.6.18.3/drivers/oprofile/oprofile_files.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/drivers/oprofile/oprofile_files.c 2006-11-19 14:26:47.000000000 +0100
@@ -5,15 +5,21 @@
* @remark Read the file COPYING
@@ -46087,8 +46241,8 @@
oprofilefs_create_file(sb, root, "buffer", &event_buffer_fops);
oprofilefs_create_ulong(sb, root, "buffer_size", &fs_buffer_size);
oprofilefs_create_ulong(sb, root, "buffer_watershed", &fs_buffer_watershed);
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/pci/Kconfig linux-2.6.18-xen/drivers/pci/Kconfig
---- linux-2.6.18/drivers/pci/Kconfig 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/pci/Kconfig linux-2.6.18-xen/drivers/pci/Kconfig
+--- linux-2.6.18.3/drivers/pci/Kconfig 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/drivers/pci/Kconfig 2006-11-19 14:26:47.000000000 +0100
@@ -5,6 +5,7 @@
bool "Message Signaled Interrupts (MSI and MSI-X)"
@@ -46098,30 +46252,8 @@
help
This allows device drivers to enable MSI (Message Signaled
Interrupts). Message Signaled Interrupts enable a device to
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/scsi/scsi_error.c linux-2.6.18-xen/drivers/scsi/scsi_error.c
---- linux-2.6.18/drivers/scsi/scsi_error.c 2006-09-20 05:42:06.000000000 +0200
-+++ linux-2.6.18-xen/drivers/scsi/scsi_error.c 2006-11-19 14:26:51.000000000 +0100
-@@ -56,6 +56,7 @@
- printk("Waking error handler thread\n"));
- }
- }
-+EXPORT_SYMBOL_GPL(scsi_eh_wakeup);
-
- /**
- * scsi_schedule_eh - schedule EH for SCSI host
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/scsi/scsi_priv.h linux-2.6.18-xen/drivers/scsi/scsi_priv.h
---- linux-2.6.18/drivers/scsi/scsi_priv.h 2006-09-20 05:42:06.000000000 +0200
-+++ linux-2.6.18-xen/drivers/scsi/scsi_priv.h 2006-11-19 14:26:51.000000000 +0100
-@@ -52,7 +52,6 @@
- extern void scsi_times_out(struct scsi_cmnd *cmd);
- extern int scsi_error_handler(void *host);
- extern int scsi_decide_disposition(struct scsi_cmnd *cmd);
--extern void scsi_eh_wakeup(struct Scsi_Host *shost);
- extern int scsi_eh_scmd_add(struct scsi_cmnd *, int);
-
- /* scsi_lib.c */
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/serial/Kconfig linux-2.6.18-xen/drivers/serial/Kconfig
---- linux-2.6.18/drivers/serial/Kconfig 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/serial/Kconfig linux-2.6.18-xen/drivers/serial/Kconfig
+--- linux-2.6.18.3/drivers/serial/Kconfig 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/drivers/serial/Kconfig 2006-11-19 14:26:51.000000000 +0100
@@ -11,6 +11,7 @@
config SERIAL_8250
@@ -46131,8 +46263,8 @@
select SERIAL_CORE
---help---
This selects whether you want to include the driver for the standard
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/balloon/balloon.c linux-2.6.18-xen/drivers/xen/balloon/balloon.c
---- linux-2.6.18/drivers/xen/balloon/balloon.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/balloon/balloon.c linux-2.6.18-xen/drivers/xen/balloon/balloon.c
+--- linux-2.6.18.3/drivers/xen/balloon/balloon.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/balloon/balloon.c 2006-11-19 14:26:55.000000000 +0100
@@ -0,0 +1,637 @@
+/******************************************************************************
@@ -46772,14 +46904,14 @@
+EXPORT_SYMBOL_GPL(balloon_release_driver_page);
+
+MODULE_LICENSE("Dual BSD/GPL");
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/balloon/Makefile linux-2.6.18-xen/drivers/xen/balloon/Makefile
---- linux-2.6.18/drivers/xen/balloon/Makefile 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/balloon/Makefile linux-2.6.18-xen/drivers/xen/balloon/Makefile
+--- linux-2.6.18.3/drivers/xen/balloon/Makefile 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/balloon/Makefile 2006-11-19 14:26:55.000000000 +0100
@@ -0,0 +1,2 @@
+
+obj-y += balloon.o
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/blkback/blkback.c linux-2.6.18-xen/drivers/xen/blkback/blkback.c
---- linux-2.6.18/drivers/xen/blkback/blkback.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/blkback/blkback.c linux-2.6.18-xen/drivers/xen/blkback/blkback.c
+--- linux-2.6.18.3/drivers/xen/blkback/blkback.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/blkback/blkback.c 2006-11-19 14:26:55.000000000 +0100
@@ -0,0 +1,549 @@
+/******************************************************************************
@@ -47331,8 +47463,8 @@
+module_init(blkif_init);
+
+MODULE_LICENSE("Dual BSD/GPL");
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/blkback/common.h linux-2.6.18-xen/drivers/xen/blkback/common.h
---- linux-2.6.18/drivers/xen/blkback/common.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/blkback/common.h linux-2.6.18-xen/drivers/xen/blkback/common.h
+--- linux-2.6.18.3/drivers/xen/blkback/common.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/blkback/common.h 2006-11-19 14:26:55.000000000 +0100
@@ -0,0 +1,133 @@
+/*
@@ -47468,8 +47600,8 @@
+int blkif_schedule(void *arg);
+
+#endif /* __BLKIF__BACKEND__COMMON_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/blkback/interface.c linux-2.6.18-xen/drivers/xen/blkback/interface.c
---- linux-2.6.18/drivers/xen/blkback/interface.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/blkback/interface.c linux-2.6.18-xen/drivers/xen/blkback/interface.c
+--- linux-2.6.18.3/drivers/xen/blkback/interface.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/blkback/interface.c 2006-11-19 14:26:55.000000000 +0100
@@ -0,0 +1,171 @@
+/******************************************************************************
@@ -47643,15 +47775,15 @@
+ blkif_cachep = kmem_cache_create("blkif_cache", sizeof(blkif_t),
+ 0, 0, NULL, NULL);
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/blkback/Makefile linux-2.6.18-xen/drivers/xen/blkback/Makefile
---- linux-2.6.18/drivers/xen/blkback/Makefile 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/blkback/Makefile linux-2.6.18-xen/drivers/xen/blkback/Makefile
+--- linux-2.6.18.3/drivers/xen/blkback/Makefile 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/blkback/Makefile 2006-11-19 14:26:55.000000000 +0100
@@ -0,0 +1,3 @@
+obj-$(CONFIG_XEN_BLKDEV_BACKEND) := blkbk.o
+
+blkbk-y := blkback.o xenbus.o interface.o vbd.o
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/blkback/vbd.c linux-2.6.18-xen/drivers/xen/blkback/vbd.c
---- linux-2.6.18/drivers/xen/blkback/vbd.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/blkback/vbd.c linux-2.6.18-xen/drivers/xen/blkback/vbd.c
+--- linux-2.6.18.3/drivers/xen/blkback/vbd.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/blkback/vbd.c 2006-11-19 14:26:55.000000000 +0100
@@ -0,0 +1,119 @@
+/******************************************************************************
@@ -47773,8 +47905,8 @@
+ out:
+ return rc;
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/blkback/xenbus.c linux-2.6.18-xen/drivers/xen/blkback/xenbus.c
---- linux-2.6.18/drivers/xen/blkback/xenbus.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/blkback/xenbus.c linux-2.6.18-xen/drivers/xen/blkback/xenbus.c
+--- linux-2.6.18.3/drivers/xen/blkback/xenbus.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/blkback/xenbus.c 2006-11-19 14:26:55.000000000 +0100
@@ -0,0 +1,468 @@
+/* Xenbus code for blkif backend
@@ -48245,9 +48377,9 @@
+{
+ xenbus_register_backend(&blkback);
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/blkfront/blkfront.c linux-2.6.18-xen/drivers/xen/blkfront/blkfront.c
---- linux-2.6.18/drivers/xen/blkfront/blkfront.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/drivers/xen/blkfront/blkfront.c 2006-11-19 14:26:55.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/blkfront/blkfront.c linux-2.6.18-xen/drivers/xen/blkfront/blkfront.c
+--- linux-2.6.18.3/drivers/xen/blkfront/blkfront.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/drivers/xen/blkfront/blkfront.c 2006-12-05 18:42:37.000000000 +0100
@@ -0,0 +1,846 @@
+/******************************************************************************
+ * blkfront.c
@@ -48524,7 +48656,7 @@
+ xenbus_dev_fatal(dev, -ENODEV, "bdget failed");
+
+ mutex_lock(&bd->bd_mutex);
-+ if (info->users > 0 && system_state == SYSTEM_RUNNING)
++ if (info->users > 0)
+ xenbus_dev_error(dev, -EBUSY,
+ "Device in use; refusing to close");
+ else
@@ -49095,8 +49227,8 @@
+module_exit(xlblk_exit);
+
+MODULE_LICENSE("Dual BSD/GPL");
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/blkfront/block.h linux-2.6.18-xen/drivers/xen/blkfront/block.h
---- linux-2.6.18/drivers/xen/blkfront/block.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/blkfront/block.h linux-2.6.18-xen/drivers/xen/blkfront/block.h
+--- linux-2.6.18.3/drivers/xen/blkfront/block.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/blkfront/block.h 2006-11-19 14:26:55.000000000 +0100
@@ -0,0 +1,154 @@
+/******************************************************************************
@@ -49253,8 +49385,8 @@
+void xlvbd_del(struct blkfront_info *info);
+
+#endif /* __XEN_DRIVERS_BLOCK_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/blkfront/Kconfig linux-2.6.18-xen/drivers/xen/blkfront/Kconfig
---- linux-2.6.18/drivers/xen/blkfront/Kconfig 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/blkfront/Kconfig linux-2.6.18-xen/drivers/xen/blkfront/Kconfig
+--- linux-2.6.18.3/drivers/xen/blkfront/Kconfig 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/blkfront/Kconfig 2006-11-19 14:26:55.000000000 +0100
@@ -0,0 +1,6 @@
+
@@ -49263,8 +49395,8 @@
+ depends on ARCH_XEN
+ help
+ Block device driver for Xen
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/blkfront/Makefile linux-2.6.18-xen/drivers/xen/blkfront/Makefile
---- linux-2.6.18/drivers/xen/blkfront/Makefile 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/blkfront/Makefile linux-2.6.18-xen/drivers/xen/blkfront/Makefile
+--- linux-2.6.18.3/drivers/xen/blkfront/Makefile 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/blkfront/Makefile 2006-11-19 14:26:55.000000000 +0100
@@ -0,0 +1,5 @@
+
@@ -49272,8 +49404,8 @@
+
+xenblk-objs := blkfront.o vbd.o
+
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/blkfront/vbd.c linux-2.6.18-xen/drivers/xen/blkfront/vbd.c
---- linux-2.6.18/drivers/xen/blkfront/vbd.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/blkfront/vbd.c linux-2.6.18-xen/drivers/xen/blkfront/vbd.c
+--- linux-2.6.18.3/drivers/xen/blkfront/vbd.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/blkfront/vbd.c 2006-11-19 14:26:55.000000000 +0100
@@ -0,0 +1,318 @@
+/******************************************************************************
@@ -49594,9 +49726,9 @@
+ blk_cleanup_queue(info->rq);
+ info->rq = NULL;
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/blktap/blktap.c linux-2.6.18-xen/drivers/xen/blktap/blktap.c
---- linux-2.6.18/drivers/xen/blktap/blktap.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/drivers/xen/blktap/blktap.c 2006-11-19 14:26:55.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/blktap/blktapmain.c linux-2.6.18-xen/drivers/xen/blktap/blktapmain.c
+--- linux-2.6.18.3/drivers/xen/blktap/blktapmain.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/drivers/xen/blktap/blktapmain.c 2006-12-05 18:42:37.000000000 +0100
@@ -0,0 +1,1393 @@
+/******************************************************************************
+ * drivers/xen/blktap/blktap.c
@@ -50991,8 +51123,8 @@
+module_init(blkif_init);
+
+MODULE_LICENSE("Dual BSD/GPL");
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/blktap/common.h linux-2.6.18-xen/drivers/xen/blktap/common.h
---- linux-2.6.18/drivers/xen/blktap/common.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/blktap/common.h linux-2.6.18-xen/drivers/xen/blktap/common.h
+--- linux-2.6.18.3/drivers/xen/blktap/common.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/blktap/common.h 2006-11-19 14:26:55.000000000 +0100
@@ -0,0 +1,120 @@
+/*
@@ -51115,8 +51247,8 @@
+void signal_tapdisk(int idx);
+
+#endif /* __BLKIF__BACKEND__COMMON_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/blktap/interface.c linux-2.6.18-xen/drivers/xen/blktap/interface.c
---- linux-2.6.18/drivers/xen/blktap/interface.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/blktap/interface.c linux-2.6.18-xen/drivers/xen/blktap/interface.c
+--- linux-2.6.18.3/drivers/xen/blktap/interface.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/blktap/interface.c 2006-11-19 14:26:55.000000000 +0100
@@ -0,0 +1,164 @@
+/******************************************************************************
@@ -51283,15 +51415,18 @@
+ blkif_cachep = kmem_cache_create("blktapif_cache", sizeof(blkif_t),
+ 0, 0, NULL, NULL);
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/blktap/Makefile linux-2.6.18-xen/drivers/xen/blktap/Makefile
---- linux-2.6.18/drivers/xen/blktap/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/drivers/xen/blktap/Makefile 2006-11-19 14:26:55.000000000 +0100
-@@ -0,0 +1,3 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/blktap/Makefile linux-2.6.18-xen/drivers/xen/blktap/Makefile
+--- linux-2.6.18.3/drivers/xen/blktap/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/drivers/xen/blktap/Makefile 2006-12-05 18:42:37.000000000 +0100
+@@ -0,0 +1,6 @@
+LINUXINCLUDE += -I../xen/include/public/io
-+obj-y := xenbus.o interface.o blktap.o
+
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/blktap/xenbus.c linux-2.6.18-xen/drivers/xen/blktap/xenbus.c
---- linux-2.6.18/drivers/xen/blktap/xenbus.c 1970-01-01 01:00:00.000000000 +0100
++obj-$(CONFIG_XEN_BLKDEV_TAP) := blktap.o
++
++blktap-y := xenbus.o interface.o blktapmain.o
++
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/blktap/xenbus.c linux-2.6.18-xen/drivers/xen/blktap/xenbus.c
+--- linux-2.6.18.3/drivers/xen/blktap/xenbus.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/blktap/xenbus.c 2006-11-19 14:26:55.000000000 +0100
@@ -0,0 +1,366 @@
+/* drivers/xen/blktap/xenbus.c
@@ -51660,14 +51795,14 @@
+{
+ xenbus_register_backend(&blktap);
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/char/Makefile linux-2.6.18-xen/drivers/xen/char/Makefile
---- linux-2.6.18/drivers/xen/char/Makefile 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/char/Makefile linux-2.6.18-xen/drivers/xen/char/Makefile
+--- linux-2.6.18.3/drivers/xen/char/Makefile 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/char/Makefile 2006-11-19 14:26:55.000000000 +0100
@@ -0,0 +1,2 @@
+
+obj-y := mem.o
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/char/mem.c linux-2.6.18-xen/drivers/xen/char/mem.c
---- linux-2.6.18/drivers/xen/char/mem.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/char/mem.c linux-2.6.18-xen/drivers/xen/char/mem.c
+--- linux-2.6.18.3/drivers/xen/char/mem.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/char/mem.c 2006-11-19 14:26:55.000000000 +0100
@@ -0,0 +1,180 @@
+/*
@@ -51850,8 +51985,8 @@
+ .mmap = mmap_mem,
+ .open = open_mem,
+};
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/console/console.c linux-2.6.18-xen/drivers/xen/console/console.c
---- linux-2.6.18/drivers/xen/console/console.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/console/console.c linux-2.6.18-xen/drivers/xen/console/console.c
+--- linux-2.6.18.3/drivers/xen/console/console.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/console/console.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,688 @@
+/******************************************************************************
@@ -52542,14 +52677,14 @@
+module_init(xencons_init);
+
+MODULE_LICENSE("Dual BSD/GPL");
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/console/Makefile linux-2.6.18-xen/drivers/xen/console/Makefile
---- linux-2.6.18/drivers/xen/console/Makefile 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/console/Makefile linux-2.6.18-xen/drivers/xen/console/Makefile
+--- linux-2.6.18.3/drivers/xen/console/Makefile 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/console/Makefile 2006-11-19 14:26:55.000000000 +0100
@@ -0,0 +1,2 @@
+
+obj-y := console.o xencons_ring.o
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/console/xencons_ring.c linux-2.6.18-xen/drivers/xen/console/xencons_ring.c
---- linux-2.6.18/drivers/xen/console/xencons_ring.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/console/xencons_ring.c linux-2.6.18-xen/drivers/xen/console/xencons_ring.c
+--- linux-2.6.18.3/drivers/xen/console/xencons_ring.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/console/xencons_ring.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,143 @@
+/*
@@ -52695,8 +52830,8 @@
+{
+ (void)xencons_ring_init();
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/core/cpu_hotplug.c linux-2.6.18-xen/drivers/xen/core/cpu_hotplug.c
---- linux-2.6.18/drivers/xen/core/cpu_hotplug.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/core/cpu_hotplug.c linux-2.6.18-xen/drivers/xen/core/cpu_hotplug.c
+--- linux-2.6.18.3/drivers/xen/core/cpu_hotplug.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/core/cpu_hotplug.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,188 @@
+
@@ -52887,8 +53022,8 @@
+{
+ xenbus_allowed_cpumask = cpu_present_map;
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/core/evtchn.c linux-2.6.18-xen/drivers/xen/core/evtchn.c
---- linux-2.6.18/drivers/xen/core/evtchn.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/core/evtchn.c linux-2.6.18-xen/drivers/xen/core/evtchn.c
+--- linux-2.6.18.3/drivers/xen/core/evtchn.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/core/evtchn.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,868 @@
+/******************************************************************************
@@ -53759,8 +53894,8 @@
+ irq_desc[pirq_to_irq(i)].chip = &pirq_type;
+ }
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/core/features.c linux-2.6.18-xen/drivers/xen/core/features.c
---- linux-2.6.18/drivers/xen/core/features.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/core/features.c linux-2.6.18-xen/drivers/xen/core/features.c
+--- linux-2.6.18.3/drivers/xen/core/features.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/core/features.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,30 @@
+/******************************************************************************
@@ -53793,8 +53928,8 @@
+ xen_features[i*32+j] = !!(fi.submap & 1<<j);
+ }
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/core/gnttab.c linux-2.6.18-xen/drivers/xen/core/gnttab.c
---- linux-2.6.18/drivers/xen/core/gnttab.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/core/gnttab.c linux-2.6.18-xen/drivers/xen/core/gnttab.c
+--- linux-2.6.18.3/drivers/xen/core/gnttab.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/core/gnttab.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,483 @@
+/******************************************************************************
@@ -54280,8 +54415,8 @@
+#ifdef CONFIG_XEN
+core_initcall(gnttab_init);
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/core/hypervisor_sysfs.c linux-2.6.18-xen/drivers/xen/core/hypervisor_sysfs.c
---- linux-2.6.18/drivers/xen/core/hypervisor_sysfs.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/core/hypervisor_sysfs.c linux-2.6.18-xen/drivers/xen/core/hypervisor_sysfs.c
+--- linux-2.6.18.3/drivers/xen/core/hypervisor_sysfs.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/core/hypervisor_sysfs.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,59 @@
+/*
@@ -54343,8 +54478,8 @@
+
+device_initcall(hypervisor_subsys_init);
+EXPORT_SYMBOL_GPL(hypervisor_subsys);
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/core/Makefile linux-2.6.18-xen/drivers/xen/core/Makefile
---- linux-2.6.18/drivers/xen/core/Makefile 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/core/Makefile linux-2.6.18-xen/drivers/xen/core/Makefile
+--- linux-2.6.18.3/drivers/xen/core/Makefile 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/core/Makefile 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,13 @@
+#
@@ -54360,8 +54495,8 @@
+obj-$(CONFIG_XEN_SKBUFF) += skbuff.o
+obj-$(CONFIG_XEN_REBOOT) += reboot.o
+obj-$(CONFIG_XEN_SMPBOOT) += smpboot.o
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/core/reboot.c linux-2.6.18-xen/drivers/xen/core/reboot.c
---- linux-2.6.18/drivers/xen/core/reboot.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/core/reboot.c linux-2.6.18-xen/drivers/xen/core/reboot.c
+--- linux-2.6.18.3/drivers/xen/core/reboot.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/core/reboot.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,384 @@
+#define __KERNEL_SYSCALLS__
@@ -54748,8 +54883,8 @@
+}
+
+subsys_initcall(setup_shutdown_event);
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/core/skbuff.c linux-2.6.18-xen/drivers/xen/core/skbuff.c
---- linux-2.6.18/drivers/xen/core/skbuff.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/core/skbuff.c linux-2.6.18-xen/drivers/xen/core/skbuff.c
+--- linux-2.6.18.3/drivers/xen/core/skbuff.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/core/skbuff.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,144 @@
+
@@ -54896,8 +55031,8 @@
+core_initcall(skbuff_init);
+
+EXPORT_SYMBOL(__dev_alloc_skb);
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/core/smpboot.c linux-2.6.18-xen/drivers/xen/core/smpboot.c
---- linux-2.6.18/drivers/xen/core/smpboot.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/core/smpboot.c linux-2.6.18-xen/drivers/xen/core/smpboot.c
+--- linux-2.6.18.3/drivers/xen/core/smpboot.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/core/smpboot.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,429 @@
+/*
@@ -55329,8 +55464,8 @@
+ return -EINVAL;
+}
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/core/xen_proc.c linux-2.6.18-xen/drivers/xen/core/xen_proc.c
---- linux-2.6.18/drivers/xen/core/xen_proc.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/core/xen_proc.c linux-2.6.18-xen/drivers/xen/core/xen_proc.c
+--- linux-2.6.18.3/drivers/xen/core/xen_proc.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/core/xen_proc.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,18 @@
+
@@ -55351,8 +55486,8 @@
+{
+ remove_proc_entry(name, xen_base);
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/core/xen_sysfs.c linux-2.6.18-xen/drivers/xen/core/xen_sysfs.c
---- linux-2.6.18/drivers/xen/core/xen_sysfs.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/core/xen_sysfs.c linux-2.6.18-xen/drivers/xen/core/xen_sysfs.c
+--- linux-2.6.18.3/drivers/xen/core/xen_sysfs.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/core/xen_sysfs.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,378 @@
+/*
@@ -55733,8 +55868,8 @@
+
+module_init(hyper_sysfs_init);
+module_exit(hyper_sysfs_exit);
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/evtchn/evtchn.c linux-2.6.18-xen/drivers/xen/evtchn/evtchn.c
---- linux-2.6.18/drivers/xen/evtchn/evtchn.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/evtchn/evtchn.c linux-2.6.18-xen/drivers/xen/evtchn/evtchn.c
+--- linux-2.6.18.3/drivers/xen/evtchn/evtchn.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/evtchn/evtchn.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,456 @@
+/******************************************************************************
@@ -56193,14 +56328,14 @@
+module_exit(evtchn_cleanup);
+
+MODULE_LICENSE("Dual BSD/GPL");
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/evtchn/Makefile linux-2.6.18-xen/drivers/xen/evtchn/Makefile
---- linux-2.6.18/drivers/xen/evtchn/Makefile 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/evtchn/Makefile linux-2.6.18-xen/drivers/xen/evtchn/Makefile
+--- linux-2.6.18.3/drivers/xen/evtchn/Makefile 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/evtchn/Makefile 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,2 @@
+
+obj-y := evtchn.o
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/Kconfig linux-2.6.18-xen/drivers/xen/Kconfig
---- linux-2.6.18/drivers/xen/Kconfig 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/Kconfig linux-2.6.18-xen/drivers/xen/Kconfig
+--- linux-2.6.18.3/drivers/xen/Kconfig 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/Kconfig 2006-11-19 14:26:55.000000000 +0100
@@ -0,0 +1,260 @@
+#
@@ -56463,8 +56598,8 @@
+ depends on SMP
+
+endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/Makefile linux-2.6.18-xen/drivers/xen/Makefile
---- linux-2.6.18/drivers/xen/Makefile 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/Makefile linux-2.6.18-xen/drivers/xen/Makefile
+--- linux-2.6.18.3/drivers/xen/Makefile 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/Makefile 2006-11-19 14:26:55.000000000 +0100
@@ -0,0 +1,17 @@
+obj-y += core/
@@ -56484,9 +56619,9 @@
+obj-$(CONFIG_XEN_NETDEV_FRONTEND) += netfront/
+obj-$(CONFIG_XEN_PCIDEV_BACKEND) += pciback/
+obj-$(CONFIG_XEN_PCIDEV_FRONTEND) += pcifront/
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/netback/common.h linux-2.6.18-xen/drivers/xen/netback/common.h
---- linux-2.6.18/drivers/xen/netback/common.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/drivers/xen/netback/common.h 2006-11-19 14:26:56.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/netback/common.h linux-2.6.18-xen/drivers/xen/netback/common.h
+--- linux-2.6.18.3/drivers/xen/netback/common.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/drivers/xen/netback/common.h 2006-12-05 18:42:37.000000000 +0100
@@ -0,0 +1,141 @@
+/******************************************************************************
+ * arch/xen/drivers/netif/backend/common.h
@@ -56596,7 +56731,7 @@
+
+void netif_disconnect(netif_t *netif);
+
-+netif_t *netif_alloc(domid_t domid, unsigned int handle, u8 be_mac[ETH_ALEN]);
++netif_t *netif_alloc(domid_t domid, unsigned int handle);
+int netif_map(netif_t *netif, unsigned long tx_ring_ref,
+ unsigned long rx_ring_ref, unsigned int evtchn);
+
@@ -56629,10 +56764,10 @@
+}
+
+#endif /* __NETIF__BACKEND__COMMON_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/netback/interface.c linux-2.6.18-xen/drivers/xen/netback/interface.c
---- linux-2.6.18/drivers/xen/netback/interface.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/drivers/xen/netback/interface.c 2006-11-19 14:26:56.000000000 +0100
-@@ -0,0 +1,357 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/netback/interface.c linux-2.6.18-xen/drivers/xen/netback/interface.c
+--- linux-2.6.18.3/drivers/xen/netback/interface.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/drivers/xen/netback/interface.c 2006-12-05 18:42:37.000000000 +0100
+@@ -0,0 +1,352 @@
+/******************************************************************************
+ * arch/xen/drivers/netif/backend/interface.c
+ *
@@ -56761,7 +56896,7 @@
+ .get_link = ethtool_op_get_link,
+};
+
-+netif_t *netif_alloc(domid_t domid, unsigned int handle, u8 be_mac[ETH_ALEN])
++netif_t *netif_alloc(domid_t domid, unsigned int handle)
+{
+ int err = 0, i;
+ struct net_device *dev;
@@ -56788,6 +56923,7 @@
+ netif->credit_bytes = netif->remaining_credit = ~0UL;
+ netif->credit_usec = 0UL;
+ init_timer(&netif->credit_timeout);
++ netif->credit_timeout.expires = jiffies;
+
+ dev->hard_start_xmit = netif_be_start_xmit;
+ dev->get_stats = netif_be_get_stats;
@@ -56803,20 +56939,14 @@
+ printk(KERN_WARNING "netbk: WARNING: device '%s' has non-zero "
+ "queue length (%lu)!\n", dev->name, dev->tx_queue_len);
+
-+ for (i = 0; i < ETH_ALEN; i++)
-+ if (be_mac[i] != 0)
-+ break;
-+ if (i == ETH_ALEN) {
-+ /*
-+ * Initialise a dummy MAC address. We choose the numerically
-+ * largest non-broadcast address to prevent the address getting
-+ * stolen by an Ethernet bridge for STP purposes.
-+ * (FE:FF:FF:FF:FF:FF)
-+ */
-+ memset(dev->dev_addr, 0xFF, ETH_ALEN);
-+ dev->dev_addr[0] &= ~0x01;
-+ } else
-+ memcpy(dev->dev_addr, be_mac, ETH_ALEN);
++ /*
++ * Initialise a dummy MAC address. We choose the numerically
++ * largest non-broadcast address to prevent the address getting
++ * stolen by an Ethernet bridge for STP purposes.
++ * (FE:FF:FF:FF:FF:FF)
++ */
++ memset(dev->dev_addr, 0xFF, ETH_ALEN);
++ dev->dev_addr[0] &= ~0x01;
+
+ rtnl_lock();
+ err = register_netdevice(dev);
@@ -56990,8 +57120,8 @@
+ }
+ netif_free(netif);
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/netback/loopback.c linux-2.6.18-xen/drivers/xen/netback/loopback.c
---- linux-2.6.18/drivers/xen/netback/loopback.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/netback/loopback.c linux-2.6.18-xen/drivers/xen/netback/loopback.c
+--- linux-2.6.18.3/drivers/xen/netback/loopback.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/netback/loopback.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,320 @@
+/******************************************************************************
@@ -57314,8 +57444,8 @@
+module_exit(loopback_exit);
+
+MODULE_LICENSE("Dual BSD/GPL");
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/netback/Makefile linux-2.6.18-xen/drivers/xen/netback/Makefile
---- linux-2.6.18/drivers/xen/netback/Makefile 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/netback/Makefile linux-2.6.18-xen/drivers/xen/netback/Makefile
+--- linux-2.6.18.3/drivers/xen/netback/Makefile 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/netback/Makefile 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,5 @@
+obj-$(CONFIG_XEN_NETDEV_BACKEND) := netbk.o
@@ -57323,10 +57453,10 @@
+
+netbk-y := netback.o xenbus.o interface.o
+netloop-y := loopback.o
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/netback/netback.c linux-2.6.18-xen/drivers/xen/netback/netback.c
---- linux-2.6.18/drivers/xen/netback/netback.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/drivers/xen/netback/netback.c 2006-11-19 14:26:56.000000000 +0100
-@@ -0,0 +1,1485 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/netback/netback.c linux-2.6.18-xen/drivers/xen/netback/netback.c
+--- linux-2.6.18.3/drivers/xen/netback/netback.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/drivers/xen/netback/netback.c 2006-12-05 18:42:37.000000000 +0100
+@@ -0,0 +1,1510 @@
+/******************************************************************************
+ * drivers/xen/netback/netback.c
+ *
@@ -57408,7 +57538,7 @@
+
+#define PKT_PROT_LEN 64
+
-+static struct {
++static struct pending_tx_info {
+ netif_tx_request_t req;
+ netif_t *netif;
+} pending_tx_info[MAX_PENDING_REQS];
@@ -57704,14 +57834,22 @@
+ flipped. */
+ meta->copy = 1;
+ copy_gop = npo->copy + npo->copy_prod++;
-+ copy_gop->source.domid = DOMID_SELF;
++ copy_gop->flags = GNTCOPY_dest_gref;
++ if (PageForeign(page)) {
++ struct pending_tx_info *src_pend =
++ &pending_tx_info[page->index];
++ copy_gop->source.domid = src_pend->netif->domid;
++ copy_gop->source.u.ref = src_pend->req.gref;
++ copy_gop->flags |= GNTCOPY_source_gref;
++ } else {
++ copy_gop->source.domid = DOMID_SELF;
++ copy_gop->source.u.gmfn = old_mfn;
++ }
+ copy_gop->source.offset = offset;
-+ copy_gop->source.u.gmfn = old_mfn;
+ copy_gop->dest.domid = netif->domid;
+ copy_gop->dest.offset = 0;
+ copy_gop->dest.u.ref = req->gref;
+ copy_gop->len = size;
-+ copy_gop->flags = GNTCOPY_dest_gref;
+ } else {
+ meta->copy = 0;
+ if (!xen_feature(XENFEAT_auto_translated_physmap)) {
@@ -58123,10 +58261,27 @@
+}
+
+
++static void tx_add_credit(netif_t *netif)
++{
++ unsigned long max_burst;
++
++ /*
++ * Allow a burst big enough to transmit a jumbo packet of up to 128kB.
++ * Otherwise the interface can seize up due to insufficient credit.
++ */
++ max_burst = RING_GET_REQUEST(&netif->tx, netif->tx.req_cons)->size;
++ max_burst = min(max_burst, 131072UL);
++ max_burst = max(max_burst, netif->credit_bytes);
++
++ netif->remaining_credit = min(netif->remaining_credit +
++ netif->credit_bytes,
++ max_burst);
++}
++
+static void tx_credit_callback(unsigned long data)
+{
+ netif_t *netif = (netif_t *)data;
-+ netif->remaining_credit = netif->credit_bytes;
++ tx_add_credit(netif);
+ netif_schedule_work(netif);
+}
+
@@ -58188,20 +58343,28 @@
+ netif_put(netif);
+}
+
-+static int netbk_count_requests(netif_t *netif, netif_tx_request_t *txp,
-+ int work_to_do)
++static int netbk_count_requests(netif_t *netif, netif_tx_request_t *first,
++ netif_tx_request_t *txp, int work_to_do)
+{
-+ netif_tx_request_t *first = txp;
+ RING_IDX cons = netif->tx.req_cons;
+ int frags = 0;
+
-+ while (txp->flags & NETTXF_more_data) {
++ if (!(first->flags & NETTXF_more_data))
++ return 0;
++
++ do {
+ if (frags >= work_to_do) {
+ DPRINTK("Need more frags\n");
+ return -frags;
+ }
+
-+ txp = RING_GET_REQUEST(&netif->tx, cons + frags);
++ if (unlikely(frags >= MAX_SKB_FRAGS)) {
++ DPRINTK("Too many frags\n");
++ return -frags;
++ }
++
++ memcpy(txp, RING_GET_REQUEST(&netif->tx, cons + frags),
++ sizeof(*txp));
+ if (txp->size > first->size) {
+ DPRINTK("Frags galore\n");
+ return -frags;
@@ -58215,27 +58378,25 @@
+ txp->offset, txp->size);
+ return -frags;
+ }
-+ }
++ } while ((txp++)->flags & NETTXF_more_data);
+
+ return frags;
+}
+
+static gnttab_map_grant_ref_t *netbk_get_requests(netif_t *netif,
+ struct sk_buff *skb,
++ netif_tx_request_t *txp,
+ gnttab_map_grant_ref_t *mop)
+{
+ struct skb_shared_info *shinfo = skb_shinfo(skb);
+ skb_frag_t *frags = shinfo->frags;
-+ netif_tx_request_t *txp;
+ unsigned long pending_idx = *((u16 *)skb->data);
-+ RING_IDX cons = netif->tx.req_cons;
+ int i, start;
+
+ /* Skip first skb fragment if it is on same page as header fragment. */
+ start = ((unsigned long)shinfo->frags[0].page == pending_idx);
+
-+ for (i = start; i < shinfo->nr_frags; i++) {
-+ txp = RING_GET_REQUEST(&netif->tx, cons++);
++ for (i = start; i < shinfo->nr_frags; i++, txp++) {
+ pending_idx = pending_ring[MASK_PEND_IDX(pending_cons++)];
+
+ gnttab_set_map_op(mop++, idx_to_kaddr(pending_idx),
@@ -58349,7 +58510,7 @@
+int netbk_get_extras(netif_t *netif, struct netif_extra_info *extras,
+ int work_to_do)
+{
-+ struct netif_extra_info *extra;
++ struct netif_extra_info extra;
+ RING_IDX cons = netif->tx.req_cons;
+
+ do {
@@ -58358,18 +58519,18 @@
+ return -EBADR;
+ }
+
-+ extra = (struct netif_extra_info *)
-+ RING_GET_REQUEST(&netif->tx, cons);
-+ if (unlikely(!extra->type ||
-+ extra->type >= XEN_NETIF_EXTRA_TYPE_MAX)) {
++ memcpy(&extra, RING_GET_REQUEST(&netif->tx, cons),
++ sizeof(extra));
++ if (unlikely(!extra.type ||
++ extra.type >= XEN_NETIF_EXTRA_TYPE_MAX)) {
+ netif->tx.req_cons = ++cons;
-+ DPRINTK("Invalid extra type: %d\n", extra->type);
++ DPRINTK("Invalid extra type: %d\n", extra.type);
+ return -EINVAL;
+ }
+
-+ memcpy(&extras[extra->type - 1], extra, sizeof(*extra));
++ memcpy(&extras[extra.type - 1], &extra, sizeof(extra));
+ netif->tx.req_cons = ++cons;
-+ } while (extra->flags & XEN_NETIF_EXTRA_FLAG_MORE);
++ } while (extra.flags & XEN_NETIF_EXTRA_FLAG_MORE);
+
+ return work_to_do;
+}
@@ -58404,6 +58565,7 @@
+ struct sk_buff *skb;
+ netif_t *netif;
+ netif_tx_request_t txreq;
++ netif_tx_request_t txfrags[MAX_SKB_FRAGS];
+ struct netif_extra_info extras[XEN_NETIF_EXTRA_TYPE_MAX - 1];
+ u16 pending_idx;
+ RING_IDX i;
@@ -58449,12 +58611,11 @@
+ /* Passed the point where we can replenish credit? */
+ if (time_after_eq(now, next_credit)) {
+ netif->credit_timeout.expires = now;
-+ netif->remaining_credit = netif->credit_bytes;
++ tx_add_credit(netif);
+ }
+
+ /* Still too big to send right now? Set a callback. */
+ if (txreq.size > netif->remaining_credit) {
-+ netif->remaining_credit = 0;
+ netif->credit_timeout.data =
+ (unsigned long)netif;
+ netif->credit_timeout.function =
@@ -58481,19 +58642,13 @@
+ }
+ }
+
-+ ret = netbk_count_requests(netif, &txreq, work_to_do);
++ ret = netbk_count_requests(netif, &txreq, txfrags, work_to_do);
+ if (unlikely(ret < 0)) {
+ netbk_tx_err(netif, &txreq, i - ret);
+ continue;
+ }
+ i += ret;
+
-+ if (unlikely(ret > MAX_SKB_FRAGS)) {
-+ DPRINTK("Too many frags\n");
-+ netbk_tx_err(netif, &txreq, i);
-+ continue;
-+ }
-+
+ if (unlikely(txreq.size < ETH_HLEN)) {
+ DPRINTK("Bad packet size: %d\n", txreq.size);
+ netbk_tx_err(netif, &txreq, i);
@@ -58562,7 +58717,7 @@
+
+ pending_cons++;
+
-+ mop = netbk_get_requests(netif, skb, mop);
++ mop = netbk_get_requests(netif, skb, txfrags, mop);
+
+ netif->tx.req_cons = i;
+ netif_schedule_work(netif);
@@ -58812,10 +58967,10 @@
+module_init(netback_init);
+
+MODULE_LICENSE("Dual BSD/GPL");
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/netback/xenbus.c linux-2.6.18-xen/drivers/xen/netback/xenbus.c
---- linux-2.6.18/drivers/xen/netback/xenbus.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/drivers/xen/netback/xenbus.c 2006-11-19 14:26:56.000000000 +0100
-@@ -0,0 +1,479 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/netback/xenbus.c linux-2.6.18-xen/drivers/xen/netback/xenbus.c
+--- linux-2.6.18.3/drivers/xen/netback/xenbus.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/drivers/xen/netback/xenbus.c 2006-12-05 18:42:37.000000000 +0100
+@@ -0,0 +1,438 @@
+/* Xenbus code for netif backend
+ Copyright (C) 2005 Rusty Russell <rusty at rustcorp.com.au>
+ Copyright (C) 2005 XenSource Ltd
@@ -58846,29 +59001,20 @@
+ printk("netback/xenbus (%s:%d) " fmt ".\n", __FUNCTION__, __LINE__, ##args)
+#endif
+
-+struct backend_info
-+{
++struct backend_info {
+ struct xenbus_device *dev;
+ netif_t *netif;
-+ struct xenbus_watch backend_watch;
+ enum xenbus_state frontend_state;
+};
+
+static int connect_rings(struct backend_info *);
+static void connect(struct backend_info *);
-+static void maybe_connect(struct backend_info *);
-+static void backend_changed(struct xenbus_watch *, const char **,
-+ unsigned int);
++static void backend_create_netif(struct backend_info *be);
+
+static int netback_remove(struct xenbus_device *dev)
+{
+ struct backend_info *be = dev->dev.driver_data;
+
-+ if (be->backend_watch.node) {
-+ unregister_xenbus_watch(&be->backend_watch);
-+ kfree(be->backend_watch.node);
-+ be->backend_watch.node = NULL;
-+ }
+ if (be->netif) {
+ netif_disconnect(be->netif);
+ be->netif = NULL;
@@ -58881,8 +59027,7 @@
+
+/**
+ * Entry point to this code when a new device is created. Allocate the basic
-+ * structures, and watch the store waiting for the hotplug scripts to tell us
-+ * the device's handle. Switch to InitWait.
++ * structures and switch to InitWait.
+ */
+static int netback_probe(struct xenbus_device *dev,
+ const struct xenbus_device_id *id)
@@ -58901,11 +59046,6 @@
+ be->dev = dev;
+ dev->dev.driver_data = be;
+
-+ err = xenbus_watch_path2(dev, dev->nodename, "handle",
-+ &be->backend_watch, backend_changed);
-+ if (err)
-+ goto fail;
-+
+ do {
+ err = xenbus_transaction_start(&xbt);
+ if (err) {
@@ -58926,7 +59066,8 @@
+ goto abort_transaction;
+ }
+
-+ err = xenbus_printf(xbt, dev->nodename, "feature-rx-copy", "%d", 1);
++ err = xenbus_printf(xbt, dev->nodename,
++ "feature-rx-copy", "%d", 1);
+ if (err) {
+ message = "writing feature-copying";
+ goto abort_transaction;
@@ -58941,9 +59082,11 @@
+ }
+
+ err = xenbus_switch_state(dev, XenbusStateInitWait);
-+ if (err) {
++ if (err)
+ goto fail;
-+ }
++
++ /* This kicks hotplug scripts, so do it immediately. */
++ backend_create_netif(be);
+
+ return 0;
+
@@ -58993,48 +59136,30 @@
+}
+
+
-+/**
-+ * Callback received when the hotplug scripts have placed the handle node.
-+ * Read it, and create a netif structure. If the frontend is ready, connect.
-+ */
-+static void backend_changed(struct xenbus_watch *watch,
-+ const char **vec, unsigned int len)
++static void backend_create_netif(struct backend_info *be)
+{
+ int err;
+ long handle;
-+ struct backend_info *be
-+ = container_of(watch, struct backend_info, backend_watch);
+ struct xenbus_device *dev = be->dev;
+
-+ DPRINTK("");
++ if (be->netif != NULL)
++ return;
+
+ err = xenbus_scanf(XBT_NIL, dev->nodename, "handle", "%li", &handle);
-+ if (XENBUS_EXIST_ERR(err)) {
-+ /* Since this watch will fire once immediately after it is
-+ registered, we expect this. Ignore it, and wait for the
-+ hotplug scripts. */
-+ return;
-+ }
+ if (err != 1) {
+ xenbus_dev_fatal(dev, err, "reading handle");
+ return;
+ }
+
-+ if (be->netif == NULL) {
-+ u8 be_mac[ETH_ALEN] = { 0, 0, 0, 0, 0, 0 };
-+
-+ be->netif = netif_alloc(dev->otherend_id, handle, be_mac);
-+ if (IS_ERR(be->netif)) {
-+ err = PTR_ERR(be->netif);
-+ be->netif = NULL;
-+ xenbus_dev_fatal(dev, err, "creating interface");
-+ return;
-+ }
-+
-+ kobject_uevent(&dev->dev.kobj, KOBJ_ONLINE);
-+
-+ maybe_connect(be);
++ be->netif = netif_alloc(dev->otherend_id, handle);
++ if (IS_ERR(be->netif)) {
++ err = PTR_ERR(be->netif);
++ be->netif = NULL;
++ xenbus_dev_fatal(dev, err, "creating interface");
++ return;
+ }
++
++ kobject_uevent(&dev->dev.kobj, KOBJ_ONLINE);
+}
+
+
@@ -59067,11 +59192,9 @@
+ break;
+
+ case XenbusStateConnected:
-+ if (!be->netif) {
-+ /* reconnect: setup be->netif */
-+ backend_changed(&be->backend_watch, NULL, 0);
-+ }
-+ maybe_connect(be);
++ backend_create_netif(be);
++ if (be->netif)
++ connect(be);
+ break;
+
+ case XenbusStateClosing:
@@ -59097,15 +59220,6 @@
+}
+
+
-+/* ** Connection ** */
-+
-+
-+static void maybe_connect(struct backend_info *be)
-+{
-+ if (be->netif && (be->frontend_state == XenbusStateConnected))
-+ connect(be);
-+}
-+
+static void xen_net_read_rate(struct xenbus_device *dev,
+ unsigned long *bytes, unsigned long *usec)
+{
@@ -59295,8 +59409,8 @@
+{
+ xenbus_register_backend(&netback);
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/netfront/Kconfig linux-2.6.18-xen/drivers/xen/netfront/Kconfig
---- linux-2.6.18/drivers/xen/netfront/Kconfig 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/netfront/Kconfig linux-2.6.18-xen/drivers/xen/netfront/Kconfig
+--- linux-2.6.18.3/drivers/xen/netfront/Kconfig 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/netfront/Kconfig 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,6 @@
+
@@ -59305,17 +59419,17 @@
+ depends on NETDEVICES && ARCH_XEN
+ help
+ Network driver for Xen
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/netfront/Makefile linux-2.6.18-xen/drivers/xen/netfront/Makefile
---- linux-2.6.18/drivers/xen/netfront/Makefile 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/netfront/Makefile linux-2.6.18-xen/drivers/xen/netfront/Makefile
+--- linux-2.6.18.3/drivers/xen/netfront/Makefile 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/netfront/Makefile 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,4 @@
+
+obj-$(CONFIG_XEN_NETDEV_FRONTEND) := xennet.o
+
+xennet-objs := netfront.o
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/netfront/netfront.c linux-2.6.18-xen/drivers/xen/netfront/netfront.c
---- linux-2.6.18/drivers/xen/netfront/netfront.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/drivers/xen/netfront/netfront.c 2006-11-19 14:26:56.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/netfront/netfront.c linux-2.6.18-xen/drivers/xen/netfront/netfront.c
+--- linux-2.6.18.3/drivers/xen/netfront/netfront.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/drivers/xen/netfront/netfront.c 2006-12-05 18:42:37.000000000 +0100
@@ -0,0 +1,2138 @@
+/******************************************************************************
+ * Virtual network driver for conversing with remote driver backends.
@@ -59460,7 +59574,6 @@
+ spinlock_t tx_lock;
+ spinlock_t rx_lock;
+
-+ unsigned int handle;
+ unsigned int evtchn, irq;
+ unsigned int copying_receiver;
+
@@ -59549,9 +59662,8 @@
+#define WPRINTK(fmt, args...) \
+ printk(KERN_WARNING "netfront: " fmt, ##args)
+
-+static int talk_to_backend(struct xenbus_device *, struct netfront_info *);
+static int setup_device(struct xenbus_device *, struct netfront_info *);
-+static struct net_device *create_netdev(int, int, struct xenbus_device *);
++static struct net_device *create_netdev(struct xenbus_device *);
+
+static void netfront_closing(struct xenbus_device *);
+
@@ -59561,7 +59673,7 @@
+static void close_netdev(struct netfront_info *);
+static void netif_free(struct netfront_info *);
+
-+static void network_connect(struct net_device *);
++static int network_connect(struct net_device *);
+static void network_tx_buf_gc(struct net_device *);
+static void network_alloc_rx_buffers(struct net_device *);
+static int send_fake_arp(struct net_device *);
@@ -59584,8 +59696,7 @@
+/**
+ * Entry point to this code when a new device is created. Allocate the basic
+ * structures and the ring buffers for communication with the backend, and
-+ * inform the backend of the appropriate details for those. Switch to
-+ * Connected state.
++ * inform the backend of the appropriate details for those.
+ */
+static int __devinit netfront_probe(struct xenbus_device *dev,
+ const struct xenbus_device_id *id)
@@ -59593,32 +59704,8 @@
+ int err;
+ struct net_device *netdev;
+ struct netfront_info *info;
-+ unsigned int handle, feature_rx_copy, feature_rx_flip, use_copy;
-+
-+ err = xenbus_scanf(XBT_NIL, dev->nodename, "handle", "%u", &handle);
-+ if (err != 1) {
-+ xenbus_dev_fatal(dev, err, "reading handle");
-+ return err;
-+ }
+
-+ err = xenbus_scanf(XBT_NIL, dev->otherend, "feature-rx-copy", "%u",
-+ &feature_rx_copy);
-+ if (err != 1)
-+ feature_rx_copy = 0;
-+ err = xenbus_scanf(XBT_NIL, dev->otherend, "feature-rx-flip", "%u",
-+ &feature_rx_flip);
-+ if (err != 1)
-+ feature_rx_flip = 1;
-+
-+ /*
-+ * Copy packets on receive path if:
-+ * (a) This was requested by user, and the backend supports it; or
-+ * (b) Flipping was requested, but this is unsupported by the backend.
-+ */
-+ use_copy = (MODPARM_rx_copy && feature_rx_copy) ||
-+ (MODPARM_rx_flip && !feature_rx_flip);
-+
-+ netdev = create_netdev(handle, use_copy, dev);
++ netdev = create_netdev(dev);
+ if (IS_ERR(netdev)) {
+ err = PTR_ERR(netdev);
+ xenbus_dev_fatal(dev, err, "creating netdev");
@@ -59628,23 +59715,13 @@
+ info = netdev_priv(netdev);
+ dev->dev.driver_data = info;
+
-+ err = talk_to_backend(dev, info);
-+ if (err)
-+ goto fail_backend;
-+
+ err = open_netdev(info);
+ if (err)
-+ goto fail_open;
-+
-+ IPRINTK("Created netdev %s with %sing receive path.\n",
-+ netdev->name, info->copying_receiver ? "copy" : "flipp");
++ goto fail;
+
+ return 0;
+
-+ fail_open:
-+ xennet_sysfs_delif(info->netdev);
-+ unregister_netdev(netdev);
-+ fail_backend:
++ fail:
+ free_netdev(netdev);
+ dev->dev.driver_data = NULL;
+ return err;
@@ -59664,7 +59741,7 @@
+ DPRINTK("%s\n", dev->nodename);
+
+ netif_disconnect_backend(info);
-+ return talk_to_backend(dev, info);
++ return 0;
+}
+
+static int xen_net_read_mac(struct xenbus_device *dev, u8 mac[])
@@ -59775,7 +59852,7 @@
+ xenbus_transaction_end(xbt, 1);
+ xenbus_dev_fatal(dev, err, "%s", message);
+ destroy_ring:
-+ netif_free(info);
++ netif_disconnect_backend(info);
+ out:
+ return err;
+}
@@ -59865,7 +59942,10 @@
+ break;
+
+ case XenbusStateInitWait:
-+ network_connect(netdev);
++ if (network_connect(netdev) != 0) {
++ netif_free(np);
++ break;
++ }
+ xenbus_switch_state(dev, XenbusStateConnected);
+ (void)send_fake_arp(netdev);
+ break;
@@ -60439,6 +60519,7 @@
+ if (net_ratelimit())
+ WPRINTK("rx->offset: %x, size: %u\n",
+ rx->offset, rx->status);
++ xennet_move_rx_slot(np, skb, ref);
+ err = -EINVAL;
+ goto next;
+ }
@@ -60449,7 +60530,8 @@
+ * situation to the system controller to reboot the backed.
+ */
+ if (ref == GRANT_INVALID_REF) {
-+ WPRINTK("Bad rx response id %d.\n", rx->id);
++ if (net_ratelimit())
++ WPRINTK("Bad rx response id %d.\n", rx->id);
+ err = -EINVAL;
+ goto next;
+ }
@@ -60521,6 +60603,9 @@
+ err = -E2BIG;
+ }
+
++ if (unlikely(err))
++ np->rx.rsp_cons = cons + frags;
++
+ *pages_flipped_p = pages_flipped;
+
+ return err;
@@ -60625,9 +60710,9 @@
+ rp = np->rx.sring->rsp_prod;
+ rmb(); /* Ensure we see queued responses up to 'rp'. */
+
-+ for (i = np->rx.rsp_cons, work_done = 0;
-+ (i != rp) && (work_done < budget);
-+ np->rx.rsp_cons = ++i, work_done++) {
++ i = np->rx.rsp_cons;
++ work_done = 0;
++ while ((i != rp) && (work_done < budget)) {
+ memcpy(rx, RING_GET_RESPONSE(&np->rx, i), sizeof(*rx));
+ memset(extras, 0, sizeof(extras));
+
@@ -60635,12 +60720,11 @@
+ &pages_flipped);
+
+ if (unlikely(err)) {
-+err:
-+ i = np->rx.rsp_cons + skb_queue_len(&tmpq) - 1;
-+ work_done--;
++err:
+ while ((skb = __skb_dequeue(&tmpq)))
+ __skb_queue_tail(&errq, skb);
+ np->stats.rx_errors++;
++ i = np->rx.rsp_cons;
+ continue;
+ }
+
@@ -60652,6 +60736,7 @@
+
+ if (unlikely(xennet_set_skb_gso(skb, gso))) {
+ __skb_queue_head(&tmpq, skb);
++ np->rx.rsp_cons += skb_queue_len(&tmpq);
+ goto err;
+ }
+ }
@@ -60715,6 +60800,9 @@
+ np->stats.rx_bytes += skb->len;
+
+ __skb_queue_tail(&rxq, skb);
++
++ np->rx.rsp_cons = ++i;
++ work_done++;
+ }
+
+ if (pages_flipped) {
@@ -60962,16 +61050,41 @@
+ xennet_set_tso(dev, 1);
+}
+
-+static void network_connect(struct net_device *dev)
++static int network_connect(struct net_device *dev)
+{
+ struct netfront_info *np = netdev_priv(dev);
-+ int i, requeue_idx;
++ int i, requeue_idx, err;
+ struct sk_buff *skb;
+ grant_ref_t ref;
+ netif_rx_request_t *req;
++ unsigned int feature_rx_copy, feature_rx_flip;
++
++ err = xenbus_scanf(XBT_NIL, np->xbdev->otherend,
++ "feature-rx-copy", "%u", &feature_rx_copy);
++ if (err != 1)
++ feature_rx_copy = 0;
++ err = xenbus_scanf(XBT_NIL, np->xbdev->otherend,
++ "feature-rx-flip", "%u", &feature_rx_flip);
++ if (err != 1)
++ feature_rx_flip = 1;
++
++ /*
++ * Copy packets on receive path if:
++ * (a) This was requested by user, and the backend supports it; or
++ * (b) Flipping was requested, but this is unsupported by the backend.
++ */
++ np->copying_receiver = ((MODPARM_rx_copy && feature_rx_copy) ||
++ (MODPARM_rx_flip && !feature_rx_flip));
++
++ err = talk_to_backend(np->xbdev, np);
++ if (err)
++ return err;
+
+ xennet_set_features(dev);
+
++ IPRINTK("device %s has %sing receive path.\n",
++ dev->name, np->copying_receiver ? "copy" : "flipp");
++
+ spin_lock_irq(&np->tx_lock);
+ spin_lock(&np->rx_lock);
+
@@ -61027,6 +61140,8 @@
+
+ spin_unlock(&np->rx_lock);
+ spin_unlock_irq(&np->tx_lock);
++
++ return 0;
+}
+
+static void netif_uninit(struct net_device *dev)
@@ -61192,8 +61307,7 @@
+{
+}
+
-+static struct net_device * __devinit
-+create_netdev(int handle, int copying_receiver, struct xenbus_device *dev)
++static struct net_device * __devinit create_netdev(struct xenbus_device *dev)
+{
+ int i, err = 0;
+ struct net_device *netdev = NULL;
@@ -61207,9 +61321,7 @@
+ }
+
+ np = netdev_priv(netdev);
-+ np->handle = handle;
+ np->xbdev = dev;
-+ np->copying_receiver = copying_receiver;
+
+ netif_carrier_off(netdev);
+
@@ -61340,10 +61452,12 @@
+
+ err = xennet_sysfs_addif(info->netdev);
+ if (err) {
-+ /* This can be non-fatal: it only means no tuning parameters */
++ unregister_netdev(info->netdev);
+ printk(KERN_WARNING "%s: add sysfs failed err=%d\n",
+ __FUNCTION__, err);
++ return err;
+ }
++
+ return 0;
+}
+
@@ -61455,8 +61569,8 @@
+module_exit(netif_exit);
+
+MODULE_LICENSE("Dual BSD/GPL");
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/pciback/conf_space.c linux-2.6.18-xen/drivers/xen/pciback/conf_space.c
---- linux-2.6.18/drivers/xen/pciback/conf_space.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/pciback/conf_space.c linux-2.6.18-xen/drivers/xen/pciback/conf_space.c
+--- linux-2.6.18.3/drivers/xen/pciback/conf_space.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/pciback/conf_space.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,425 @@
+/*
@@ -61884,8 +61998,8 @@
+{
+ return pciback_config_capability_init();
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/pciback/conf_space_capability.c linux-2.6.18-xen/drivers/xen/pciback/conf_space_capability.c
---- linux-2.6.18/drivers/xen/pciback/conf_space_capability.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/pciback/conf_space_capability.c linux-2.6.18-xen/drivers/xen/pciback/conf_space_capability.c
+--- linux-2.6.18.3/drivers/xen/pciback/conf_space_capability.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/pciback/conf_space_capability.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,71 @@
+/*
@@ -61959,8 +62073,8 @@
+
+ return 0;
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/pciback/conf_space_capability.h linux-2.6.18-xen/drivers/xen/pciback/conf_space_capability.h
---- linux-2.6.18/drivers/xen/pciback/conf_space_capability.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/pciback/conf_space_capability.h linux-2.6.18-xen/drivers/xen/pciback/conf_space_capability.h
+--- linux-2.6.18.3/drivers/xen/pciback/conf_space_capability.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/pciback/conf_space_capability.h 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,23 @@
+/*
@@ -61986,8 +62100,8 @@
+};
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/pciback/conf_space_capability_pm.c linux-2.6.18-xen/drivers/xen/pciback/conf_space_capability_pm.c
---- linux-2.6.18/drivers/xen/pciback/conf_space_capability_pm.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/pciback/conf_space_capability_pm.c linux-2.6.18-xen/drivers/xen/pciback/conf_space_capability_pm.c
+--- linux-2.6.18.3/drivers/xen/pciback/conf_space_capability_pm.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/pciback/conf_space_capability_pm.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,113 @@
+/*
@@ -62103,8 +62217,8 @@
+ .capability = PCI_CAP_ID_PM,
+ .fields = caplist_pm,
+};
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/pciback/conf_space_capability_vpd.c linux-2.6.18-xen/drivers/xen/pciback/conf_space_capability_vpd.c
---- linux-2.6.18/drivers/xen/pciback/conf_space_capability_vpd.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/pciback/conf_space_capability_vpd.c linux-2.6.18-xen/drivers/xen/pciback/conf_space_capability_vpd.c
+--- linux-2.6.18.3/drivers/xen/pciback/conf_space_capability_vpd.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/pciback/conf_space_capability_vpd.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,42 @@
+/*
@@ -62149,8 +62263,8 @@
+ .capability = PCI_CAP_ID_VPD,
+ .fields = caplist_vpd,
+};
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/pciback/conf_space.h linux-2.6.18-xen/drivers/xen/pciback/conf_space.h
---- linux-2.6.18/drivers/xen/pciback/conf_space.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/pciback/conf_space.h linux-2.6.18-xen/drivers/xen/pciback/conf_space.h
+--- linux-2.6.18.3/drivers/xen/pciback/conf_space.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/pciback/conf_space.h 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,126 @@
+/*
@@ -62279,8 +62393,8 @@
+int pciback_config_capability_add_fields(struct pci_dev *dev);
+
+#endif /* __XEN_PCIBACK_CONF_SPACE_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/pciback/conf_space_header.c linux-2.6.18-xen/drivers/xen/pciback/conf_space_header.c
---- linux-2.6.18/drivers/xen/pciback/conf_space_header.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/pciback/conf_space_header.c linux-2.6.18-xen/drivers/xen/pciback/conf_space_header.c
+--- linux-2.6.18.3/drivers/xen/pciback/conf_space_header.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/pciback/conf_space_header.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,299 @@
+/*
@@ -62582,8 +62696,8 @@
+ out:
+ return err;
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/pciback/conf_space_quirks.c linux-2.6.18-xen/drivers/xen/pciback/conf_space_quirks.c
---- linux-2.6.18/drivers/xen/pciback/conf_space_quirks.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/pciback/conf_space_quirks.c linux-2.6.18-xen/drivers/xen/pciback/conf_space_quirks.c
+--- linux-2.6.18.3/drivers/xen/pciback/conf_space_quirks.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/pciback/conf_space_quirks.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,128 @@
+/*
@@ -62714,8 +62828,8 @@
+ out:
+ return ret;
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/pciback/conf_space_quirks.h linux-2.6.18-xen/drivers/xen/pciback/conf_space_quirks.h
---- linux-2.6.18/drivers/xen/pciback/conf_space_quirks.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/pciback/conf_space_quirks.h linux-2.6.18-xen/drivers/xen/pciback/conf_space_quirks.h
+--- linux-2.6.18.3/drivers/xen/pciback/conf_space_quirks.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/pciback/conf_space_quirks.h 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,35 @@
+/*
@@ -62753,8 +62867,8 @@
+int pciback_field_is_dup(struct pci_dev *dev, int reg);
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/pciback/Makefile linux-2.6.18-xen/drivers/xen/pciback/Makefile
---- linux-2.6.18/drivers/xen/pciback/Makefile 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/pciback/Makefile linux-2.6.18-xen/drivers/xen/pciback/Makefile
+--- linux-2.6.18.3/drivers/xen/pciback/Makefile 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/pciback/Makefile 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,15 @@
+obj-$(CONFIG_XEN_PCIDEV_BACKEND) += pciback.o
@@ -62772,8 +62886,8 @@
+ifeq ($(CONFIG_XEN_PCIDEV_BE_DEBUG),y)
+EXTRA_CFLAGS += -DDEBUG
+endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/pciback/passthrough.c linux-2.6.18-xen/drivers/xen/pciback/passthrough.c
---- linux-2.6.18/drivers/xen/pciback/passthrough.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/pciback/passthrough.c linux-2.6.18-xen/drivers/xen/pciback/passthrough.c
+--- linux-2.6.18.3/drivers/xen/pciback/passthrough.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/pciback/passthrough.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,157 @@
+/*
@@ -62933,8 +63047,8 @@
+ kfree(dev_data);
+ pdev->pci_dev_data = NULL;
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/pciback/pciback.h linux-2.6.18-xen/drivers/xen/pciback/pciback.h
---- linux-2.6.18/drivers/xen/pciback/pciback.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/pciback/pciback.h linux-2.6.18-xen/drivers/xen/pciback/pciback.h
+--- linux-2.6.18.3/drivers/xen/pciback/pciback.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/pciback/pciback.h 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,93 @@
+/*
@@ -63030,8 +63144,8 @@
+
+extern int verbose_request;
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/pciback/pciback_ops.c linux-2.6.18-xen/drivers/xen/pciback/pciback_ops.c
---- linux-2.6.18/drivers/xen/pciback/pciback_ops.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/pciback/pciback_ops.c linux-2.6.18-xen/drivers/xen/pciback/pciback_ops.c
+--- linux-2.6.18.3/drivers/xen/pciback/pciback_ops.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/pciback/pciback_ops.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,95 @@
+/*
@@ -63129,8 +63243,8 @@
+
+ return IRQ_HANDLED;
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/pciback/pci_stub.c linux-2.6.18-xen/drivers/xen/pciback/pci_stub.c
---- linux-2.6.18/drivers/xen/pciback/pci_stub.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/pciback/pci_stub.c linux-2.6.18-xen/drivers/xen/pciback/pci_stub.c
+--- linux-2.6.18.3/drivers/xen/pciback/pci_stub.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/pciback/pci_stub.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,916 @@
+/*
@@ -64049,8 +64163,8 @@
+module_exit(pciback_cleanup);
+
+MODULE_LICENSE("Dual BSD/GPL");
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/pciback/slot.c linux-2.6.18-xen/drivers/xen/pciback/slot.c
---- linux-2.6.18/drivers/xen/pciback/slot.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/pciback/slot.c linux-2.6.18-xen/drivers/xen/pciback/slot.c
+--- linux-2.6.18.3/drivers/xen/pciback/slot.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/pciback/slot.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,151 @@
+/*
@@ -64204,8 +64318,8 @@
+ kfree(slot_dev);
+ pdev->pci_dev_data = NULL;
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/pciback/vpci.c linux-2.6.18-xen/drivers/xen/pciback/vpci.c
---- linux-2.6.18/drivers/xen/pciback/vpci.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/pciback/vpci.c linux-2.6.18-xen/drivers/xen/pciback/vpci.c
+--- linux-2.6.18.3/drivers/xen/pciback/vpci.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/pciback/vpci.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,204 @@
+/*
@@ -64412,8 +64526,8 @@
+ kfree(vpci_dev);
+ pdev->pci_dev_data = NULL;
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/pciback/xenbus.c linux-2.6.18-xen/drivers/xen/pciback/xenbus.c
---- linux-2.6.18/drivers/xen/pciback/xenbus.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/pciback/xenbus.c linux-2.6.18-xen/drivers/xen/pciback/xenbus.c
+--- linux-2.6.18.3/drivers/xen/pciback/xenbus.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/pciback/xenbus.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,458 @@
+/*
@@ -64874,8 +64988,8 @@
+{
+ xenbus_unregister_driver(&xenbus_pciback_driver);
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/pcifront/Makefile linux-2.6.18-xen/drivers/xen/pcifront/Makefile
---- linux-2.6.18/drivers/xen/pcifront/Makefile 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/pcifront/Makefile linux-2.6.18-xen/drivers/xen/pcifront/Makefile
+--- linux-2.6.18.3/drivers/xen/pcifront/Makefile 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/pcifront/Makefile 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,7 @@
+obj-y += pcifront.o
@@ -64885,8 +64999,8 @@
+ifeq ($(CONFIG_XEN_PCIDEV_FE_DEBUG),y)
+EXTRA_CFLAGS += -DDEBUG
+endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/pcifront/pci.c linux-2.6.18-xen/drivers/xen/pcifront/pci.c
---- linux-2.6.18/drivers/xen/pcifront/pci.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/pcifront/pci.c linux-2.6.18-xen/drivers/xen/pcifront/pci.c
+--- linux-2.6.18.3/drivers/xen/pcifront/pci.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/pcifront/pci.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,46 @@
+/*
@@ -64935,8 +65049,8 @@
+
+ spin_unlock(&pcifront_dev_lock);
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/pcifront/pcifront.h linux-2.6.18-xen/drivers/xen/pcifront/pcifront.h
---- linux-2.6.18/drivers/xen/pcifront/pcifront.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/pcifront/pcifront.h linux-2.6.18-xen/drivers/xen/pcifront/pcifront.h
+--- linux-2.6.18.3/drivers/xen/pcifront/pcifront.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/pcifront/pcifront.h 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,40 @@
+/*
@@ -64979,8 +65093,8 @@
+void pcifront_free_roots(struct pcifront_device *pdev);
+
+#endif /* __XEN_PCIFRONT_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/pcifront/pci_op.c linux-2.6.18-xen/drivers/xen/pcifront/pci_op.c
---- linux-2.6.18/drivers/xen/pcifront/pci_op.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/pcifront/pci_op.c linux-2.6.18-xen/drivers/xen/pcifront/pci_op.c
+--- linux-2.6.18.3/drivers/xen/pcifront/pci_op.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/pcifront/pci_op.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,273 @@
+/*
@@ -65256,8 +65370,8 @@
+ kfree(bus_entry);
+ }
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/pcifront/xenbus.c linux-2.6.18-xen/drivers/xen/pcifront/xenbus.c
---- linux-2.6.18/drivers/xen/pcifront/xenbus.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/pcifront/xenbus.c linux-2.6.18-xen/drivers/xen/pcifront/xenbus.c
+--- linux-2.6.18.3/drivers/xen/pcifront/xenbus.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/pcifront/xenbus.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,295 @@
+/*
@@ -65555,16 +65669,16 @@
+
+/* Initialize after the Xen PCI Frontend Stub is initialized */
+subsys_initcall(pcifront_init);
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/privcmd/Makefile linux-2.6.18-xen/drivers/xen/privcmd/Makefile
---- linux-2.6.18/drivers/xen/privcmd/Makefile 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/privcmd/Makefile linux-2.6.18-xen/drivers/xen/privcmd/Makefile
+--- linux-2.6.18.3/drivers/xen/privcmd/Makefile 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/privcmd/Makefile 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,2 @@
+
+obj-$(CONFIG_XEN_PRIVCMD) := privcmd.o
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/privcmd/privcmd.c linux-2.6.18-xen/drivers/xen/privcmd/privcmd.c
---- linux-2.6.18/drivers/xen/privcmd/privcmd.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/drivers/xen/privcmd/privcmd.c 2006-11-19 14:26:56.000000000 +0100
-@@ -0,0 +1,289 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/privcmd/privcmd.c linux-2.6.18-xen/drivers/xen/privcmd/privcmd.c
+--- linux-2.6.18.3/drivers/xen/privcmd/privcmd.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/drivers/xen/privcmd/privcmd.c 2006-12-05 18:42:37.000000000 +0100
+@@ -0,0 +1,294 @@
+/******************************************************************************
+ * privcmd.c
+ *
@@ -65601,6 +65715,10 @@
+static struct proc_dir_entry *privcmd_intf;
+static struct proc_dir_entry *capabilities_intf;
+
++#ifndef HAVE_ARCH_PRIVCMD_MMAP
++static int privcmd_enforce_singleshot_mapping(struct vm_area_struct *vma);
++#endif
++
+static int privcmd_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, unsigned long data)
+{
@@ -65688,12 +65806,10 @@
+
+ vma = find_vma(mm, msg.va);
+ rc = -EINVAL;
-+ if (!vma || (msg.va != vma->vm_start) || vma->vm_private_data)
++ if (!vma || (msg.va != vma->vm_start) ||
++ !privcmd_enforce_singleshot_mapping(vma))
+ goto mmap_out;
+
-+ /* Mapping is a one-shot operation per vma. */
-+ vma->vm_private_data = (void *)1;
-+
+ va = vma->vm_start;
+
+ for (i = 0; i < mmapcmd.num; i++) {
@@ -65703,7 +65819,7 @@
+
+ /* Do not allow range to wrap the address space. */
+ rc = -EINVAL;
-+ if ((msg.npages > (INT_MAX >> PAGE_SHIFT)) ||
++ if ((msg.npages > (LONG_MAX >> PAGE_SHIFT)) ||
+ ((unsigned long)(msg.npages << PAGE_SHIFT) >= -va))
+ goto mmap_out;
+
@@ -65747,7 +65863,7 @@
+ if (copy_from_user(&m, udata, sizeof(m)))
+ return -EFAULT;
+
-+ if ((m.num <= 0) || (m.num > (INT_MAX >> PAGE_SHIFT)))
++ if ((m.num <= 0) || (m.num > (LONG_MAX >> PAGE_SHIFT)))
+ return -EINVAL;
+
+ down_read(&mm->mmap_sem);
@@ -65755,15 +65871,13 @@
+ vma = find_vma(mm, m.addr);
+ if (!vma ||
+ (m.addr != vma->vm_start) ||
-+ ((m.addr + (m.num<<PAGE_SHIFT)) != vma->vm_end) ||
-+ vma->vm_private_data) {
++ ((m.addr + ((unsigned long)m.num<<PAGE_SHIFT)) !=
++ vma->vm_end) ||
++ !privcmd_enforce_singleshot_mapping(vma)) {
+ up_read(&mm->mmap_sem);
+ return -EINVAL;
+ }
+
-+ /* Mapping is a one-shot operation per vma. */
-+ vma->vm_private_data = (void *)1;
-+
+ p = m.arr;
+ addr = m.addr;
+ for (i = 0; i < m.num; i++, addr += PAGE_SIZE, p++) {
@@ -65817,6 +65931,11 @@
+
+ return 0;
+}
++
++static int privcmd_enforce_singleshot_mapping(struct vm_area_struct *vma)
++{
++ return (xchg(&vma->vm_private_data, (void *)1) == NULL);
++}
+#endif
+
+static struct file_operations privcmd_file_ops = {
@@ -65854,8 +65973,8 @@
+}
+
+__initcall(privcmd_init);
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/tpmback/common.h linux-2.6.18-xen/drivers/xen/tpmback/common.h
---- linux-2.6.18/drivers/xen/tpmback/common.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/tpmback/common.h linux-2.6.18-xen/drivers/xen/tpmback/common.h
+--- linux-2.6.18.3/drivers/xen/tpmback/common.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/tpmback/common.h 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,86 @@
+/******************************************************************************
@@ -65944,8 +66063,8 @@
+}
+
+#endif /* __TPMIF__BACKEND__COMMON_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/tpmback/interface.c linux-2.6.18-xen/drivers/xen/tpmback/interface.c
---- linux-2.6.18/drivers/xen/tpmback/interface.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/tpmback/interface.c linux-2.6.18-xen/drivers/xen/tpmback/interface.c
+--- linux-2.6.18.3/drivers/xen/tpmback/interface.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/tpmback/interface.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,182 @@
+ /*****************************************************************************
@@ -66130,16 +66249,16 @@
+{
+ kmem_cache_destroy(tpmif_cachep);
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/tpmback/Makefile linux-2.6.18-xen/drivers/xen/tpmback/Makefile
---- linux-2.6.18/drivers/xen/tpmback/Makefile 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/tpmback/Makefile linux-2.6.18-xen/drivers/xen/tpmback/Makefile
+--- linux-2.6.18.3/drivers/xen/tpmback/Makefile 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/tpmback/Makefile 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,4 @@
+
+obj-$(CONFIG_XEN_TPMDEV_BACKEND) += tpmbk.o
+
+tpmbk-y += tpmback.o interface.o xenbus.o
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/tpmback/tpmback.c linux-2.6.18-xen/drivers/xen/tpmback/tpmback.c
---- linux-2.6.18/drivers/xen/tpmback/tpmback.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/tpmback/tpmback.c linux-2.6.18-xen/drivers/xen/tpmback/tpmback.c
+--- linux-2.6.18.3/drivers/xen/tpmback/tpmback.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/tpmback/tpmback.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,944 @@
+/******************************************************************************
@@ -67086,8 +67205,8 @@
+}
+
+MODULE_LICENSE("Dual BSD/GPL");
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/tpmback/xenbus.c linux-2.6.18-xen/drivers/xen/tpmback/xenbus.c
---- linux-2.6.18/drivers/xen/tpmback/xenbus.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/tpmback/xenbus.c linux-2.6.18-xen/drivers/xen/tpmback/xenbus.c
+--- linux-2.6.18.3/drivers/xen/tpmback/xenbus.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/tpmback/xenbus.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,287 @@
+/* Xenbus code for tpmif backend
@@ -67377,8 +67496,8 @@
+{
+ xenbus_unregister_driver(&tpmback);
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/util.c linux-2.6.18-xen/drivers/xen/util.c
---- linux-2.6.18/drivers/xen/util.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/util.c linux-2.6.18-xen/drivers/xen/util.c
+--- linux-2.6.18.3/drivers/xen/util.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/util.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,70 @@
+
@@ -67451,8 +67570,8 @@
+ preempt_enable();
+}
+EXPORT_SYMBOL_GPL(unlock_vm_area);
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/xenbus/Makefile linux-2.6.18-xen/drivers/xen/xenbus/Makefile
---- linux-2.6.18/drivers/xen/xenbus/Makefile 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/xenbus/Makefile linux-2.6.18-xen/drivers/xen/xenbus/Makefile
+--- linux-2.6.18.3/drivers/xen/xenbus/Makefile 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/xenbus/Makefile 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,12 @@
+obj-y += xenbus.o
@@ -67467,8 +67586,8 @@
+xenbus-objs += xenbus_xs.o
+xenbus-objs += xenbus_probe.o
+obj-$(CONFIG_XEN_XENBUS_DEV) += xenbus_dev.o
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/xenbus/xenbus_backend_client.c linux-2.6.18-xen/drivers/xen/xenbus/xenbus_backend_client.c
---- linux-2.6.18/drivers/xen/xenbus/xenbus_backend_client.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/xenbus/xenbus_backend_client.c linux-2.6.18-xen/drivers/xen/xenbus/xenbus_backend_client.c
+--- linux-2.6.18.3/drivers/xen/xenbus/xenbus_backend_client.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/xenbus/xenbus_backend_client.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,147 @@
+/******************************************************************************
@@ -67618,8 +67737,8 @@
+EXPORT_SYMBOL_GPL(xenbus_dev_is_online);
+
+MODULE_LICENSE("Dual BSD/GPL");
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/xenbus/xenbus_client.c linux-2.6.18-xen/drivers/xen/xenbus/xenbus_client.c
---- linux-2.6.18/drivers/xen/xenbus/xenbus_client.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/xenbus/xenbus_client.c linux-2.6.18-xen/drivers/xen/xenbus/xenbus_client.c
+--- linux-2.6.18.3/drivers/xen/xenbus/xenbus_client.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/xenbus/xenbus_client.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,299 @@
+/******************************************************************************
@@ -67921,8 +68040,8 @@
+ return result;
+}
+EXPORT_SYMBOL_GPL(xenbus_read_driver_state);
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/xenbus/xenbus_comms.c linux-2.6.18-xen/drivers/xen/xenbus/xenbus_comms.c
---- linux-2.6.18/drivers/xen/xenbus/xenbus_comms.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/xenbus/xenbus_comms.c linux-2.6.18-xen/drivers/xen/xenbus/xenbus_comms.c
+--- linux-2.6.18.3/drivers/xen/xenbus/xenbus_comms.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/xenbus/xenbus_comms.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,203 @@
+/******************************************************************************
@@ -68128,8 +68247,8 @@
+
+ return 0;
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/xenbus/xenbus_comms.h linux-2.6.18-xen/drivers/xen/xenbus/xenbus_comms.h
---- linux-2.6.18/drivers/xen/xenbus/xenbus_comms.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/xenbus/xenbus_comms.h linux-2.6.18-xen/drivers/xen/xenbus/xenbus_comms.h
+--- linux-2.6.18.3/drivers/xen/xenbus/xenbus_comms.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/xenbus/xenbus_comms.h 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,45 @@
+/*
@@ -68177,8 +68296,8 @@
+extern int xen_store_evtchn;
+
+#endif /* _XENBUS_COMMS_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/xenbus/xenbus_dev.c linux-2.6.18-xen/drivers/xen/xenbus/xenbus_dev.c
---- linux-2.6.18/drivers/xen/xenbus/xenbus_dev.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/xenbus/xenbus_dev.c linux-2.6.18-xen/drivers/xen/xenbus/xenbus_dev.c
+--- linux-2.6.18.3/drivers/xen/xenbus/xenbus_dev.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/xenbus/xenbus_dev.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,356 @@
+/*
@@ -68537,8 +68656,8 @@
+
+ return 0;
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/xenbus/xenbus_probe.c linux-2.6.18-xen/drivers/xen/xenbus/xenbus_probe.c
---- linux-2.6.18/drivers/xen/xenbus/xenbus_probe.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/xenbus/xenbus_probe.c linux-2.6.18-xen/drivers/xen/xenbus/xenbus_probe.c
+--- linux-2.6.18.3/drivers/xen/xenbus/xenbus_probe.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/xenbus/xenbus_probe.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,1189 @@
+/******************************************************************************
@@ -69730,8 +69849,8 @@
+
+late_initcall(boot_wait_for_devices);
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/drivers/xen/xenbus/xenbus_xs.c linux-2.6.18-xen/drivers/xen/xenbus/xenbus_xs.c
---- linux-2.6.18/drivers/xen/xenbus/xenbus_xs.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/drivers/xen/xenbus/xenbus_xs.c linux-2.6.18-xen/drivers/xen/xenbus/xenbus_xs.c
+--- linux-2.6.18.3/drivers/xen/xenbus/xenbus_xs.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/drivers/xen/xenbus/xenbus_xs.c 2006-11-19 14:26:56.000000000 +0100
@@ -0,0 +1,853 @@
+/******************************************************************************
@@ -70587,8 +70706,8 @@
+
+ return 0;
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/fs/Kconfig linux-2.6.18-xen/fs/Kconfig
---- linux-2.6.18/fs/Kconfig 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/fs/Kconfig linux-2.6.18-xen/fs/Kconfig
+--- linux-2.6.18.3/fs/Kconfig 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/fs/Kconfig 2006-11-19 14:26:56.000000000 +0100
@@ -865,6 +865,7 @@
config HUGETLBFS
@@ -70598,8 +70717,8 @@
help
hugetlbfs is a filesystem backing for HugeTLB pages, based on
ramfs. For architectures that support it, say Y here and read
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-generic/vmlinux.lds.h linux-2.6.18-xen/include/asm-generic/vmlinux.lds.h
---- linux-2.6.18/include/asm-generic/vmlinux.lds.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-generic/vmlinux.lds.h linux-2.6.18-xen/include/asm-generic/vmlinux.lds.h
+--- linux-2.6.18.3/include/asm-generic/vmlinux.lds.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/include/asm-generic/vmlinux.lds.h 2006-11-19 14:27:04.000000000 +0100
@@ -194,3 +194,6 @@
.stab.index 0 : { *(.stab.index) } \
@@ -70608,8 +70727,8 @@
+
+#define NOTES \
+ .notes : { *(.note.*) } :note
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/apic.h linux-2.6.18-xen/include/asm-i386/apic.h
---- linux-2.6.18/include/asm-i386/apic.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/apic.h linux-2.6.18-xen/include/asm-i386/apic.h
+--- linux-2.6.18.3/include/asm-i386/apic.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/include/asm-i386/apic.h 2006-11-19 14:27:04.000000000 +0100
@@ -119,10 +119,12 @@
@@ -70624,29 +70743,19 @@
extern int timer_over_8254;
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/fixmap.h linux-2.6.18-xen/include/asm-i386/fixmap.h
---- linux-2.6.18/include/asm-i386/fixmap.h 2006-09-20 05:42:06.000000000 +0200
-+++ linux-2.6.18-xen/include/asm-i386/fixmap.h 2006-11-19 14:27:04.000000000 +0100
-@@ -19,7 +19,7 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/fixmap.h linux-2.6.18-xen/include/asm-i386/fixmap.h
+--- linux-2.6.18.3/include/asm-i386/fixmap.h 2006-09-20 05:42:06.000000000 +0200
++++ linux-2.6.18-xen/include/asm-i386/fixmap.h 2006-12-05 18:42:37.000000000 +0100
+@@ -19,6 +19,7 @@
* Leave one empty page between vmalloc'ed areas and
* the start of the fixmap.
*/
--#define __FIXADDR_TOP 0xfffff000
-+extern unsigned long __FIXADDR_TOP;
++
+ #define __FIXADDR_TOP 0xfffff000
#ifndef __ASSEMBLY__
- #include <linux/kernel.h>
-@@ -94,6 +94,8 @@
- extern void __set_fixmap (enum fixed_addresses idx,
- unsigned long phys, pgprot_t flags);
-
-+extern void set_fixaddr_top(unsigned long top);
-+
- #define set_fixmap(idx, phys) \
- __set_fixmap(idx, phys, PAGE_KERNEL)
- /*
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-default/mach_traps.h linux-2.6.18-xen/include/asm-i386/mach-default/mach_traps.h
---- linux-2.6.18/include/asm-i386/mach-default/mach_traps.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-default/mach_traps.h linux-2.6.18-xen/include/asm-i386/mach-default/mach_traps.h
+--- linux-2.6.18.3/include/asm-i386/mach-default/mach_traps.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/include/asm-i386/mach-default/mach_traps.h 2006-11-19 14:27:04.000000000 +0100
@@ -15,6 +15,18 @@
outb(reason, 0x61);
@@ -70667,8 +70776,8 @@
static inline unsigned char get_nmi_reason(void)
{
return inb(0x61);
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/agp.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/agp.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/agp.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/agp.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/agp.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/agp.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/agp.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,37 @@
+#ifndef AGP_H
@@ -70708,8 +70817,8 @@
+ dma_free_coherent(NULL,PAGE_SIZE<<(order),(table),virt_to_bus(table))
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/desc.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/desc.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/desc.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/desc.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/desc.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/desc.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/desc.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,164 @@
+#ifndef __ARCH_DESC_H
@@ -70876,8 +70985,8 @@
+#endif /* !__ASSEMBLY__ */
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/dma-mapping.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/dma-mapping.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/dma-mapping.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/dma-mapping.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/dma-mapping.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/dma-mapping.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/dma-mapping.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,151 @@
+#ifndef _ASM_I386_DMA_MAPPING_H
@@ -71031,8 +71140,8 @@
+ dma_addr_t device_addr, size_t size);
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/fixmap.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/fixmap.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/fixmap.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/fixmap.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/fixmap.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/fixmap.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/fixmap.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,156 @@
+/*
@@ -71191,8 +71300,8 @@
+
+#endif /* !__ASSEMBLY__ */
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/floppy.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/floppy.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/floppy.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/floppy.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/floppy.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/floppy.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/floppy.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,147 @@
+/*
@@ -71342,8 +71451,8 @@
+#define EXTRA_FLOPPY_PARAMS
+
+#endif /* __ASM_XEN_I386_FLOPPY_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/highmem.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/highmem.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/highmem.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/highmem.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/highmem.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/highmem.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/highmem.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,80 @@
+/*
@@ -71426,8 +71535,84 @@
+#endif /* __KERNEL__ */
+
+#endif /* _ASM_HIGHMEM_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/hypercall.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/hypercall.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/hypercall.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/hw_irq.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/hw_irq.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/hw_irq.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/hw_irq.h 2006-12-05 18:42:37.000000000 +0100
+@@ -0,0 +1,72 @@
++#ifndef _ASM_HW_IRQ_H
++#define _ASM_HW_IRQ_H
++
++/*
++ * linux/include/asm/hw_irq.h
++ *
++ * (C) 1992, 1993 Linus Torvalds, (C) 1997 Ingo Molnar
++ *
++ * moved some of the old arch/i386/kernel/irq.h to here. VY
++ *
++ * IRQ/IPI changes taken from work by Thomas Radke
++ * <tomsoft at informatik.tu-chemnitz.de>
++ */
++
++#include <linux/profile.h>
++#include <asm/atomic.h>
++#include <asm/irq.h>
++#include <asm/sections.h>
++
++struct hw_interrupt_type;
++
++#define NMI_VECTOR 0x02
++
++/*
++ * Various low-level irq details needed by irq.c, process.c,
++ * time.c, io_apic.c and smp.c
++ *
++ * Interrupt entry/exit code at both C and assembly level
++ */
++
++extern u8 irq_vector[NR_IRQ_VECTORS];
++#define IO_APIC_VECTOR(irq) (irq_vector[irq])
++#define AUTO_ASSIGN -1
++
++extern void (*interrupt[NR_IRQS])(void);
++
++#ifdef CONFIG_SMP
++fastcall void reschedule_interrupt(void);
++fastcall void invalidate_interrupt(void);
++fastcall void call_function_interrupt(void);
++#endif
++
++#ifdef CONFIG_X86_LOCAL_APIC
++fastcall void apic_timer_interrupt(void);
++fastcall void error_interrupt(void);
++fastcall void spurious_interrupt(void);
++fastcall void thermal_interrupt(struct pt_regs *);
++#define platform_legacy_irq(irq) ((irq) < 16)
++#endif
++
++void disable_8259A_irq(unsigned int irq);
++void enable_8259A_irq(unsigned int irq);
++int i8259A_irq_pending(unsigned int irq);
++void make_8259A_irq(unsigned int irq);
++void init_8259A(int aeoi);
++void FASTCALL(send_IPI_self(int vector));
++void init_VISWS_APIC_irqs(void);
++void setup_IO_APIC(void);
++void disable_IO_APIC(void);
++void print_IO_APIC(void);
++int IO_APIC_get_PCI_irq_vector(int bus, int slot, int fn);
++void send_IPI(int dest, int vector);
++void setup_ioapic_dest(void);
++
++extern unsigned long io_apic_irqs;
++
++extern atomic_t irq_err_count;
++extern atomic_t irq_mis_count;
++
++#define IO_APIC_IRQ(x) (((x) >= 16) || ((1<<(x)) & io_apic_irqs))
++
++#endif /* _ASM_HW_IRQ_H */
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/hypercall.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/hypercall.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/hypercall.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/hypercall.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,389 @@
+/******************************************************************************
@@ -71819,8 +72004,8 @@
+
+
+#endif /* __HYPERCALL_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/hypervisor.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/hypervisor.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/hypervisor.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/hypervisor.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/hypervisor.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/hypervisor.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/hypervisor.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,234 @@
+/******************************************************************************
@@ -72057,8 +72242,8 @@
+}
+
+#endif /* __HYPERVISOR_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/io.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/io.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/io.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/io.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/io.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/io.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/io.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,389 @@
+#ifndef _ASM_IO_H
@@ -72450,8 +72635,92 @@
+#define ARCH_HAS_DEV_MEM
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/kmap_types.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/kmap_types.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/kmap_types.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/irqflags.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/irqflags.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/irqflags.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/irqflags.h 2006-12-05 18:42:37.000000000 +0100
+@@ -0,0 +1,80 @@
++/*
++ * include/asm-i386/irqflags.h
++ *
++ * IRQ flags handling
++ *
++ * This file gets included from lowlevel asm headers too, to provide
++ * wrapped versions of the local_irq_*() APIs, based on the
++ * raw_local_irq_*() functions from the lowlevel headers.
++ */
++#ifndef _ASM_IRQFLAGS_H
++#define _ASM_IRQFLAGS_H
++
++#ifndef __ASSEMBLY__
++
++#define raw_local_save_flags(flags) \
++ do { (flags) = __raw_local_save_flags(); } while (0)
++
++unsigned long __raw_local_save_flags(void);
++void raw_local_irq_restore(unsigned long flags);
++void raw_local_irq_disable(void);
++void raw_local_irq_enable(void);
++
++/*
++ * Used in the idle loop; sti takes one instruction cycle
++ * to complete:
++ */
++void raw_safe_halt(void);
++
++/*
++ * Used when interrupts are already enabled or to
++ * shutdown the processor:
++ */
++void halt(void);
++
++static inline int raw_irqs_disabled_flags(unsigned long flags)
++{
++ return flags != 0;
++}
++
++int raw_irqs_disabled(void);
++
++/*
++ * For spinlocks, etc:
++ */
++unsigned long __raw_local_irq_save(void);
++#define raw_local_irq_save(flags) \
++ do { (flags) = __raw_local_irq_save(); } while (0)
++
++#endif /* __ASSEMBLY__ */
++
++/*
++ * Do the CPU's IRQ-state tracing from assembly code. We call a
++ * C function, so save all the C-clobbered registers:
++ */
++#ifdef CONFIG_TRACE_IRQFLAGS
++
++# define TRACE_IRQS_ON \
++ pushl %eax; \
++ pushl %ecx; \
++ pushl %edx; \
++ call trace_hardirqs_on; \
++ popl %edx; \
++ popl %ecx; \
++ popl %eax;
++
++# define TRACE_IRQS_OFF \
++ pushl %eax; \
++ pushl %ecx; \
++ pushl %edx; \
++ call trace_hardirqs_off; \
++ popl %edx; \
++ popl %ecx; \
++ popl %eax;
++
++#else
++# define TRACE_IRQS_ON
++# define TRACE_IRQS_OFF
++#endif
++
++#endif
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/kmap_types.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/kmap_types.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/kmap_types.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/kmap_types.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,31 @@
+#ifndef _ASM_KMAP_TYPES_H
@@ -72485,8 +72754,8 @@
+#undef D
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/maddr.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/maddr.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/maddr.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/maddr.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/maddr.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/maddr.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/maddr.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,160 @@
+#ifndef _I386_MADDR_H
@@ -72649,8 +72918,8 @@
+#define __pte_ma(x) ((pte_t) { (x) } )
+
+#endif /* _I386_MADDR_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/mmu_context.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/mmu_context.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/mmu_context.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/mmu_context.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/mmu_context.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/mmu_context.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/mmu_context.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,108 @@
+#ifndef __I386_SCHED_H
@@ -72761,8 +73030,8 @@
+}
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/mmu.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/mmu.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/mmu.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/mmu.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/mmu.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/mmu.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/mmu.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,29 @@
+#ifndef __i386_MMU_H
@@ -72794,8 +73063,8 @@
+#define arch_dup_mmap(mm, oldmm) ((void)(oldmm), _arch_dup_mmap(mm))
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/page.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/page.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/page.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/page.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/page.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/page.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/page.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,220 @@
+#ifndef _I386_PAGE_H
@@ -73018,8 +73287,8 @@
+#endif /* __KERNEL__ */
+
+#endif /* _I386_PAGE_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/param.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/param.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/param.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/param.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/param.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/param.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/param.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,23 @@
+#ifndef _ASMi386_PARAM_H
@@ -73045,8 +73314,8 @@
+#define COMMAND_LINE_SIZE 256
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/pci.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/pci.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/pci.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/pci.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/pci.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/pci.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/pci.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,153 @@
+#ifndef __i386_PCI_H
@@ -73202,8 +73471,8 @@
+#define pcibios_scan_all_fns(a, b) 1
+
+#endif /* __i386_PCI_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/pgalloc.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/pgalloc.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/pgalloc.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/pgalloc.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/pgalloc.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/pgalloc.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/pgalloc.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,63 @@
+#ifndef _I386_PGALLOC_H
@@ -73269,8 +73538,8 @@
+#define check_pgt_cache() do { } while (0)
+
+#endif /* _I386_PGALLOC_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/pgtable-2level-defs.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/pgtable-2level-defs.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/pgtable-2level-defs.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/pgtable-2level-defs.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/pgtable-2level-defs.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/pgtable-2level-defs.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/pgtable-2level-defs.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,21 @@
+#ifndef _I386_PGTABLE_2LEVEL_DEFS_H
@@ -73294,8 +73563,8 @@
+#define PTRS_PER_PTE 1024
+
+#endif /* _I386_PGTABLE_2LEVEL_DEFS_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/pgtable-2level.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/pgtable-2level.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/pgtable-2level.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/pgtable-2level.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/pgtable-2level.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/pgtable-2level.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/pgtable-2level.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,87 @@
+#ifndef _I386_PGTABLE_2LEVEL_H
@@ -73385,8 +73654,8 @@
+void vmalloc_sync_all(void);
+
+#endif /* _I386_PGTABLE_2LEVEL_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/pgtable-3level-defs.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/pgtable-3level-defs.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/pgtable-3level-defs.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/pgtable-3level-defs.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/pgtable-3level-defs.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/pgtable-3level-defs.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/pgtable-3level-defs.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,25 @@
+#ifndef _I386_PGTABLE_3LEVEL_DEFS_H
@@ -73414,8 +73683,8 @@
+#define PTRS_PER_PTE 512
+
+#endif /* _I386_PGTABLE_3LEVEL_DEFS_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/pgtable-3level.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/pgtable-3level.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/pgtable-3level.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/pgtable-3level.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/pgtable-3level.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/pgtable-3level.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/pgtable-3level.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,185 @@
+#ifndef _I386_PGTABLE_3LEVEL_H
@@ -73603,8 +73872,8 @@
+#define vmalloc_sync_all() ((void)0)
+
+#endif /* _I386_PGTABLE_3LEVEL_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/pgtable.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/pgtable.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/pgtable.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/pgtable.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/pgtable.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/pgtable.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/pgtable.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,508 @@
+#ifndef _I386_PGTABLE_H
@@ -74115,8 +74384,8 @@
+#include <asm-generic/pgtable.h>
+
+#endif /* _I386_PGTABLE_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/processor.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/processor.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/processor.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/processor.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/processor.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/processor.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/processor.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,741 @@
+/*
@@ -74860,8 +75129,8 @@
+extern int sysenter_setup(void);
+
+#endif /* __ASM_I386_PROCESSOR_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/ptrace.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/ptrace.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/ptrace.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/ptrace.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/ptrace.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/ptrace.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/ptrace.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,90 @@
+#ifndef _I386_PTRACE_H
@@ -74954,8 +75223,8 @@
+#endif /* __KERNEL__ */
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/scatterlist.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/scatterlist.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/scatterlist.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/scatterlist.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/scatterlist.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/scatterlist.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/scatterlist.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,22 @@
+#ifndef _I386_SCATTERLIST_H
@@ -74980,8 +75249,8 @@
+#define ISA_DMA_THRESHOLD (0x00ffffff)
+
+#endif /* !(_I386_SCATTERLIST_H) */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/segment.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/segment.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/segment.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/segment.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/segment.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/segment.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/segment.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,117 @@
+#ifndef _ASM_SEGMENT_H
@@ -75101,8 +75370,8 @@
+#define IDT_ENTRIES 256
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/setup.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/setup.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/setup.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/setup.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/setup.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/setup.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/setup.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,81 @@
+/*
@@ -75186,8 +75455,8 @@
+#endif /* __ASSEMBLY__ */
+
+#endif /* _i386_SETUP_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/smp.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/smp.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/smp.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/smp.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/smp.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/smp.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/smp.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,103 @@
+#ifndef __ASM_SMP_H
@@ -75293,10 +75562,10 @@
+
+#endif
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/spinlock.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/spinlock.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/spinlock.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/spinlock.h 2006-11-19 14:27:04.000000000 +0100
-@@ -0,0 +1,190 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/spinlock.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/spinlock.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/spinlock.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/spinlock.h 2006-12-05 18:42:37.000000000 +0100
+@@ -0,0 +1,202 @@
+#ifndef __ASM_SPINLOCK_H
+#define __ASM_SPINLOCK_H
+
@@ -75330,6 +75599,11 @@
+ "jmp 1b\n" \
+ "3:\n\t"
+
++/*
++ * NOTE: there's an irqs-on section here, which normally would have to be
++ * irq-traced, but on CONFIG_TRACE_IRQFLAGS we never use
++ * __raw_spin_lock_string_flags().
++ */
+#define __raw_spin_lock_string_flags \
+ "\n1:\t" \
+ LOCK_PREFIX " ; decb %0\n\t" \
@@ -75356,17 +75630,24 @@
+ asm(__raw_spin_lock_string : "+m" (lock->slock) : : "memory");
+}
+
++/*
++ * It is easier for the lock validator if interrupts are not re-enabled
++ * in the middle of a lock-acquire. This is a performance feature anyway
++ * so we turn it off:
++ */
++#ifndef CONFIG_PROVE_LOCKING
+static inline void __raw_spin_lock_flags(raw_spinlock_t *lock, unsigned long flags)
+{
+ asm(__raw_spin_lock_string_flags : "+m" (lock->slock) : "r" (flags) : "memory");
+}
++#endif
+
+static inline int __raw_spin_trylock(raw_spinlock_t *lock)
+{
+ char oldval;
+ __asm__ __volatile__(
+ "xchgb %b0,%1"
-+ :"=q" (oldval), "=m" (lock->slock)
++ :"=q" (oldval), "+m" (lock->slock)
+ :"0" (0) : "memory");
+ return oldval > 0;
+}
@@ -75382,7 +75663,7 @@
+
+#define __raw_spin_unlock_string \
+ "movb $1,%0" \
-+ :"=m" (lock->slock) : : "memory"
++ :"+m" (lock->slock) : : "memory"
+
+
+static inline void __raw_spin_unlock(raw_spinlock_t *lock)
@@ -75396,7 +75677,7 @@
+
+#define __raw_spin_unlock_string \
+ "xchgb %b0, %1" \
-+ :"=q" (oldval), "=m" (lock->slock) \
++ :"=q" (oldval), "+m" (lock->slock) \
+ :"0" (oldval) : "memory"
+
+static inline void __raw_spin_unlock(raw_spinlock_t *lock)
@@ -75477,18 +75758,18 @@
+
+static inline void __raw_read_unlock(raw_rwlock_t *rw)
+{
-+ asm volatile(LOCK_PREFIX "incl %0" :"=m" (rw->lock) : : "memory");
++ asm volatile(LOCK_PREFIX "incl %0" :"+m" (rw->lock) : : "memory");
+}
+
+static inline void __raw_write_unlock(raw_rwlock_t *rw)
+{
+ asm volatile(LOCK_PREFIX "addl $" RW_LOCK_BIAS_STR ", %0"
-+ : "=m" (rw->lock) : : "memory");
++ : "+m" (rw->lock) : : "memory");
+}
+
+#endif /* __ASM_SPINLOCK_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/swiotlb.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/swiotlb.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/swiotlb.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/swiotlb.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/swiotlb.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/swiotlb.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/swiotlb.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,41 @@
+#ifndef _ASM_SWIOTLB_H
@@ -75532,8 +75813,8 @@
+#endif
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/synch_bitops.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/synch_bitops.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/synch_bitops.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/synch_bitops.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/synch_bitops.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/synch_bitops.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/synch_bitops.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,141 @@
+#ifndef __XEN_SYNCH_BITOPS_H__
@@ -75677,10 +75958,10 @@
+#define synch_cmpxchg_subword synch_cmpxchg
+
+#endif /* __XEN_SYNCH_BITOPS_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/system.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/system.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/system.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/system.h 2006-11-19 14:27:04.000000000 +0100
-@@ -0,0 +1,581 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/system.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/system.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/system.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/system.h 2006-12-05 18:42:37.000000000 +0100
+@@ -0,0 +1,495 @@
+#ifndef __ASM_SYSTEM_H
+#define __ASM_SYSTEM_H
+
@@ -75779,10 +76060,6 @@
+#define savesegment(seg, value) \
+ asm volatile("mov %%" #seg ",%0":"=rm" (value))
+
-+/*
-+ * Clear and set 'TS' bit respectively
-+ */
-+#define clts() (HYPERVISOR_fpu_taskswitch(0))
+#define read_cr0() ({ \
+ unsigned int __dummy; \
+ __asm__ __volatile__( \
@@ -75791,12 +76068,12 @@
+ __dummy; \
+})
+#define write_cr0(x) \
-+ __asm__ __volatile__("movl %0,%%cr0": :"r" (x));
++ __asm__ __volatile__("movl %0,%%cr0": :"r" (x))
+
+#define read_cr2() \
+ (HYPERVISOR_shared_info->vcpu_info[smp_processor_id()].arch.cr2)
+#define write_cr2(x) \
-+ __asm__ __volatile__("movl %0,%%cr2": :"r" (x));
++ __asm__ __volatile__("movl %0,%%cr2": :"r" (x))
+
+#define read_cr3() ({ \
+ unsigned int __dummy; \
@@ -75819,7 +76096,6 @@
+ :"=r" (__dummy)); \
+ __dummy; \
+})
-+
+#define read_cr4_safe() ({ \
+ unsigned int __dummy; \
+ /* This could fault if %cr4 does not exist */ \
@@ -75833,13 +76109,17 @@
+})
+
+#define write_cr4(x) \
-+ __asm__ __volatile__("movl %0,%%cr4": :"r" (x));
++ __asm__ __volatile__("movl %0,%%cr4": :"r" (x))
++/*
++ * Clear and set 'TS' bit respectively
++ */
++#define clts() (HYPERVISOR_fpu_taskswitch(0))
+#define stts() (HYPERVISOR_fpu_taskswitch(1))
+
+#endif /* __KERNEL__ */
+
+#define wbinvd() \
-+ __asm__ __volatile__ ("wbinvd": : :"memory");
++ __asm__ __volatile__ ("wbinvd": : :"memory")
+
+static inline unsigned long get_limit(unsigned long segment)
+{
@@ -76150,92 +76430,7 @@
+#define set_mb(var, value) do { var = value; barrier(); } while (0)
+#endif
+
-+/* interrupt control.. */
-+
-+/*
-+ * The use of 'barrier' in the following reflects their use as local-lock
-+ * operations. Reentrancy must be prevented (e.g., __cli()) /before/ following
-+ * critical operations are executed. All critical operations must complete
-+ * /before/ reentrancy is permitted (e.g., __sti()). Alpha architecture also
-+ * includes these barriers, for example.
-+ */
-+
-+#define __cli() \
-+do { \
-+ vcpu_info_t *_vcpu; \
-+ preempt_disable(); \
-+ _vcpu = &HYPERVISOR_shared_info->vcpu_info[__vcpu_id]; \
-+ _vcpu->evtchn_upcall_mask = 1; \
-+ preempt_enable_no_resched(); \
-+ barrier(); \
-+} while (0)
-+
-+#define __sti() \
-+do { \
-+ vcpu_info_t *_vcpu; \
-+ barrier(); \
-+ preempt_disable(); \
-+ _vcpu = &HYPERVISOR_shared_info->vcpu_info[__vcpu_id]; \
-+ _vcpu->evtchn_upcall_mask = 0; \
-+ barrier(); /* unmask then check (avoid races) */ \
-+ if (unlikely(_vcpu->evtchn_upcall_pending)) \
-+ force_evtchn_callback(); \
-+ preempt_enable(); \
-+} while (0)
-+
-+#define __save_flags(x) \
-+do { \
-+ vcpu_info_t *_vcpu; \
-+ preempt_disable(); \
-+ _vcpu = &HYPERVISOR_shared_info->vcpu_info[__vcpu_id]; \
-+ (x) = _vcpu->evtchn_upcall_mask; \
-+ preempt_enable(); \
-+} while (0)
-+
-+#define __restore_flags(x) \
-+do { \
-+ vcpu_info_t *_vcpu; \
-+ barrier(); \
-+ preempt_disable(); \
-+ _vcpu = &HYPERVISOR_shared_info->vcpu_info[__vcpu_id]; \
-+ if ((_vcpu->evtchn_upcall_mask = (x)) == 0) { \
-+ barrier(); /* unmask then check (avoid races) */ \
-+ if (unlikely(_vcpu->evtchn_upcall_pending)) \
-+ force_evtchn_callback(); \
-+ preempt_enable(); \
-+ } else \
-+ preempt_enable_no_resched(); \
-+} while (0)
-+
-+void safe_halt(void);
-+void halt(void);
-+
-+#define __save_and_cli(x) \
-+do { \
-+ vcpu_info_t *_vcpu; \
-+ preempt_disable(); \
-+ _vcpu = &HYPERVISOR_shared_info->vcpu_info[__vcpu_id]; \
-+ (x) = _vcpu->evtchn_upcall_mask; \
-+ _vcpu->evtchn_upcall_mask = 1; \
-+ preempt_enable_no_resched(); \
-+ barrier(); \
-+} while (0)
-+
-+#define local_irq_save(x) __save_and_cli(x)
-+#define local_irq_restore(x) __restore_flags(x)
-+#define local_save_flags(x) __save_flags(x)
-+#define local_irq_disable() __cli()
-+#define local_irq_enable() __sti()
-+
-+/* Cannot use preempt_enable() here as we would recurse in preempt_sched(). */
-+#define irqs_disabled() \
-+({ int ___x; \
-+ vcpu_info_t *_vcpu; \
-+ preempt_disable(); \
-+ _vcpu = &HYPERVISOR_shared_info->vcpu_info[__vcpu_id]; \
-+ ___x = (_vcpu->evtchn_upcall_mask != 0); \
-+ preempt_enable_no_resched(); \
-+ ___x; })
++#include <linux/irqflags.h>
+
+/*
+ * disable hlt during certain critical i/o operations
@@ -76262,8 +76457,8 @@
+void default_idle(void);
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/timer.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/timer.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/timer.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/timer.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/timer.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/timer.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/timer.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,70 @@
+#ifndef _ASMi386_TIMER_H
@@ -76336,8 +76531,8 @@
+extern struct init_timer_opts timer_pmtmr_init;
+#endif
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/tlbflush.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/tlbflush.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/tlbflush.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/tlbflush.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/tlbflush.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/tlbflush.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/tlbflush.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,101 @@
+#ifndef _I386_TLBFLUSH_H
@@ -76441,8 +76636,8 @@
+}
+
+#endif /* _I386_TLBFLUSH_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/asm/vga.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/vga.h
---- linux-2.6.18/include/asm-i386/mach-xen/asm/vga.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/asm/vga.h linux-2.6.18-xen/include/asm-i386/mach-xen/asm/vga.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/asm/vga.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/asm/vga.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,20 @@
+/*
@@ -76465,8 +76660,8 @@
+#define vga_writeb(x,y) (*(y) = (x))
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/irq_vectors.h linux-2.6.18-xen/include/asm-i386/mach-xen/irq_vectors.h
---- linux-2.6.18/include/asm-i386/mach-xen/irq_vectors.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/irq_vectors.h linux-2.6.18-xen/include/asm-i386/mach-xen/irq_vectors.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/irq_vectors.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/irq_vectors.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,125 @@
+/*
@@ -76594,8 +76789,8 @@
+#define irq_to_dynirq(_x) ((_x) - DYNIRQ_BASE)
+
+#endif /* _ASM_IRQ_VECTORS_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/mach_traps.h linux-2.6.18-xen/include/asm-i386/mach-xen/mach_traps.h
---- linux-2.6.18/include/asm-i386/mach-xen/mach_traps.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/mach_traps.h linux-2.6.18-xen/include/asm-i386/mach-xen/mach_traps.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/mach_traps.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-i386/mach-xen/mach_traps.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,33 @@
+/*
@@ -76631,30 +76826,17 @@
+static inline void reassert_nmi(void) {}
+
+#endif /* !_MACH_TRAPS_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/mach-xen/setup_arch.h linux-2.6.18-xen/include/asm-i386/mach-xen/setup_arch.h
---- linux-2.6.18/include/asm-i386/mach-xen/setup_arch.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/include/asm-i386/mach-xen/setup_arch.h 2006-11-19 14:27:04.000000000 +0100
-@@ -0,0 +1,6 @@
-+
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/mach-xen/setup_arch.h linux-2.6.18-xen/include/asm-i386/mach-xen/setup_arch.h
+--- linux-2.6.18.3/include/asm-i386/mach-xen/setup_arch.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/include/asm-i386/mach-xen/setup_arch.h 2006-12-05 18:42:37.000000000 +0100
+@@ -0,0 +1,5 @@
+/* Hook to call BIOS initialisation function */
+
+#define ARCH_SETUP machine_specific_arch_setup();
+
+void __init machine_specific_arch_setup(void);
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/page.h linux-2.6.18-xen/include/asm-i386/page.h
---- linux-2.6.18/include/asm-i386/page.h 2006-09-20 05:42:06.000000000 +0200
-+++ linux-2.6.18-xen/include/asm-i386/page.h 2006-11-19 14:27:04.000000000 +0100
-@@ -122,7 +122,7 @@
-
- #define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET)
- #define VMALLOC_RESERVE ((unsigned long)__VMALLOC_RESERVE)
--#define MAXMEM (-__PAGE_OFFSET-__VMALLOC_RESERVE)
-+#define MAXMEM (__FIXADDR_TOP-__PAGE_OFFSET-__VMALLOC_RESERVE)
- #define __pa(x) ((unsigned long)(x)-PAGE_OFFSET)
- #define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET))
- #define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT)
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/pgtable-2level-defs.h linux-2.6.18-xen/include/asm-i386/pgtable-2level-defs.h
---- linux-2.6.18/include/asm-i386/pgtable-2level-defs.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/pgtable-2level-defs.h linux-2.6.18-xen/include/asm-i386/pgtable-2level-defs.h
+--- linux-2.6.18.3/include/asm-i386/pgtable-2level-defs.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/include/asm-i386/pgtable-2level-defs.h 2006-11-19 14:27:04.000000000 +0100
@@ -1,6 +1,8 @@
#ifndef _I386_PGTABLE_2LEVEL_DEFS_H
@@ -76665,8 +76847,8 @@
/*
* traditional i386 two-level paging structure:
*/
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-i386/pgtable-3level-defs.h linux-2.6.18-xen/include/asm-i386/pgtable-3level-defs.h
---- linux-2.6.18/include/asm-i386/pgtable-3level-defs.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-i386/pgtable-3level-defs.h linux-2.6.18-xen/include/asm-i386/pgtable-3level-defs.h
+--- linux-2.6.18.3/include/asm-i386/pgtable-3level-defs.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/include/asm-i386/pgtable-3level-defs.h 2006-11-19 14:27:04.000000000 +0100
@@ -1,6 +1,8 @@
#ifndef _I386_PGTABLE_3LEVEL_DEFS_H
@@ -76677,8 +76859,8 @@
/*
* PGDIR_SHIFT determines what a top-level page table entry can map
*/
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-ia64/agp.h linux-2.6.18-xen/include/asm-ia64/agp.h
---- linux-2.6.18/include/asm-ia64/agp.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-ia64/agp.h linux-2.6.18-xen/include/asm-ia64/agp.h
+--- linux-2.6.18.3/include/asm-ia64/agp.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/include/asm-ia64/agp.h 2006-11-19 14:27:04.000000000 +0100
@@ -19,13 +19,44 @@
#define flush_agp_cache() mb()
@@ -76725,9 +76907,9 @@
+#endif /* CONFIG_XEN */
#endif /* _ASM_IA64_AGP_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-ia64/dma-mapping.h linux-2.6.18-xen/include/asm-ia64/dma-mapping.h
---- linux-2.6.18/include/asm-ia64/dma-mapping.h 2006-09-20 05:42:06.000000000 +0200
-+++ linux-2.6.18-xen/include/asm-ia64/dma-mapping.h 2006-11-19 14:27:04.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-ia64/dma-mapping.h linux-2.6.18-xen/include/asm-ia64/dma-mapping.h
+--- linux-2.6.18.3/include/asm-ia64/dma-mapping.h 2006-09-20 05:42:06.000000000 +0200
++++ linux-2.6.18-xen/include/asm-ia64/dma-mapping.h 2006-12-05 18:42:37.000000000 +0100
@@ -6,20 +6,67 @@
* David Mosberger-Tang <davidm at hpl.hp.com>
*/
@@ -76818,7 +77000,7 @@
static inline int
dma_set_mask (struct device *dev, u64 mask)
-@@ -61,4 +110,30 @@
+@@ -61,4 +110,29 @@
#define dma_is_consistent(dma_handle) (1) /* all we do is coherent memory... */
@@ -76846,17 +77028,16 @@
+ return (((((unsigned long)p & ~PAGE_MASK) + size) > PAGE_SIZE) &&
+ !test_bit(__pa(p) >> PAGE_SHIFT, contiguous_bitmap));
+}
-+#endif
+
#endif /* _ASM_IA64_DMA_MAPPING_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-ia64/fixmap.h linux-2.6.18-xen/include/asm-ia64/fixmap.h
---- linux-2.6.18/include/asm-ia64/fixmap.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-ia64/fixmap.h linux-2.6.18-xen/include/asm-ia64/fixmap.h
+--- linux-2.6.18.3/include/asm-ia64/fixmap.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-ia64/fixmap.h 2006-11-19 14:27:04.000000000 +0100
@@ -0,0 +1,2 @@
+#define clear_fixmap(x) do {} while (0)
+#define set_fixmap(x,y) do {} while (0)
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-ia64/gcc_intrin.h linux-2.6.18-xen/include/asm-ia64/gcc_intrin.h
---- linux-2.6.18/include/asm-ia64/gcc_intrin.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-ia64/gcc_intrin.h linux-2.6.18-xen/include/asm-ia64/gcc_intrin.h
+--- linux-2.6.18.3/include/asm-ia64/gcc_intrin.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/include/asm-ia64/gcc_intrin.h 2006-11-19 14:27:04.000000000 +0100
@@ -26,7 +26,7 @@
@@ -77047,8 +77228,8 @@
+#define __ia64_get_psr_i() (__ia64_getreg(_IA64_REG_PSR) & 0x4000UL)
+
#endif /* _ASM_IA64_GCC_INTRIN_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-ia64/hw_irq.h linux-2.6.18-xen/include/asm-ia64/hw_irq.h
---- linux-2.6.18/include/asm-ia64/hw_irq.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-ia64/hw_irq.h linux-2.6.18-xen/include/asm-ia64/hw_irq.h
+--- linux-2.6.18.3/include/asm-ia64/hw_irq.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/include/asm-ia64/hw_irq.h 2006-11-19 14:27:05.000000000 +0100
@@ -15,7 +15,11 @@
#include <asm/ptrace.h>
@@ -77075,8 +77256,8 @@
platform_send_ipi(smp_processor_id(), vector, IA64_IPI_DM_INT, 0);
}
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-ia64/hypercall.h linux-2.6.18-xen/include/asm-ia64/hypercall.h
---- linux-2.6.18/include/asm-ia64/hypercall.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-ia64/hypercall.h linux-2.6.18-xen/include/asm-ia64/hypercall.h
+--- linux-2.6.18.3/include/asm-ia64/hypercall.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-ia64/hypercall.h 2006-11-19 14:27:05.000000000 +0100
@@ -0,0 +1,423 @@
+/******************************************************************************
@@ -77502,10 +77683,10 @@
+#define HYPERVISOR_update_va_mapping(va, new_val, flags) (0)
+
+#endif /* __HYPERCALL_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-ia64/hypervisor.h linux-2.6.18-xen/include/asm-ia64/hypervisor.h
---- linux-2.6.18/include/asm-ia64/hypervisor.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/include/asm-ia64/hypervisor.h 2006-11-19 14:27:05.000000000 +0100
-@@ -0,0 +1,218 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-ia64/hypervisor.h linux-2.6.18-xen/include/asm-ia64/hypervisor.h
+--- linux-2.6.18.3/include/asm-ia64/hypervisor.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/include/asm-ia64/hypervisor.h 2006-12-05 18:42:37.000000000 +0100
+@@ -0,0 +1,219 @@
+/******************************************************************************
+ * hypervisor.h
+ *
@@ -77647,6 +77828,7 @@
+ pgprot_t prot,
+ domid_t domid);
+struct file;
++int privcmd_enforce_singleshot_mapping(struct vm_area_struct *vma);
+int privcmd_mmap(struct file * file, struct vm_area_struct * vma);
+#define HAVE_ARCH_PRIVCMD_MMAP
+
@@ -77724,8 +77906,8 @@
+#endif
+
+#endif /* __HYPERVISOR_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-ia64/intel_intrin.h linux-2.6.18-xen/include/asm-ia64/intel_intrin.h
---- linux-2.6.18/include/asm-ia64/intel_intrin.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-ia64/intel_intrin.h linux-2.6.18-xen/include/asm-ia64/intel_intrin.h
+--- linux-2.6.18.3/include/asm-ia64/intel_intrin.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/include/asm-ia64/intel_intrin.h 2006-11-19 14:27:05.000000000 +0100
@@ -16,8 +16,10 @@
* intrinsic
@@ -77850,8 +78032,8 @@
#define __builtin_trap() __break(0);
#endif /* _ASM_IA64_INTEL_INTRIN_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-ia64/io.h linux-2.6.18-xen/include/asm-ia64/io.h
---- linux-2.6.18/include/asm-ia64/io.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-ia64/io.h linux-2.6.18-xen/include/asm-ia64/io.h
+--- linux-2.6.18.3/include/asm-ia64/io.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/include/asm-ia64/io.h 2006-11-19 14:27:05.000000000 +0100
@@ -66,9 +66,11 @@
#define PIO_RESERVED __IA64_UNCACHED_OFFSET
@@ -77907,8 +78089,8 @@
# endif /* KERNEL */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-ia64/iosapic.h linux-2.6.18-xen/include/asm-ia64/iosapic.h
---- linux-2.6.18/include/asm-ia64/iosapic.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-ia64/iosapic.h linux-2.6.18-xen/include/asm-ia64/iosapic.h
+--- linux-2.6.18.3/include/asm-ia64/iosapic.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/include/asm-ia64/iosapic.h 2006-11-19 14:27:05.000000000 +0100
@@ -53,6 +53,7 @@
@@ -77926,8 +78108,8 @@
static inline void iosapic_eoi(char __iomem *iosapic, u32 vector)
{
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-ia64/irq.h linux-2.6.18-xen/include/asm-ia64/irq.h
---- linux-2.6.18/include/asm-ia64/irq.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-ia64/irq.h linux-2.6.18-xen/include/asm-ia64/irq.h
+--- linux-2.6.18.3/include/asm-ia64/irq.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/include/asm-ia64/irq.h 2006-11-19 14:27:05.000000000 +0100
@@ -11,8 +11,39 @@
* 02/29/00 D.Mosberger moved most things into hw_irq.h
@@ -77969,8 +78151,8 @@
static __inline__ int
irq_canonicalize (int irq)
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-ia64/machvec_dig.h linux-2.6.18-xen/include/asm-ia64/machvec_dig.h
---- linux-2.6.18/include/asm-ia64/machvec_dig.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-ia64/machvec_dig.h linux-2.6.18-xen/include/asm-ia64/machvec_dig.h
+--- linux-2.6.18.3/include/asm-ia64/machvec_dig.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/include/asm-ia64/machvec_dig.h 2006-11-19 14:27:05.000000000 +0100
@@ -13,4 +13,19 @@
#define platform_name "dig"
@@ -77992,8 +78174,8 @@
+#endif
+
#endif /* _ASM_IA64_MACHVEC_DIG_h */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-ia64/maddr.h linux-2.6.18-xen/include/asm-ia64/maddr.h
---- linux-2.6.18/include/asm-ia64/maddr.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-ia64/maddr.h linux-2.6.18-xen/include/asm-ia64/maddr.h
+--- linux-2.6.18.3/include/asm-ia64/maddr.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-ia64/maddr.h 2006-11-19 14:27:05.000000000 +0100
@@ -0,0 +1,92 @@
+#ifndef _ASM_IA64_MADDR_H
@@ -78088,8 +78270,8 @@
+typedef unsigned long maddr_t; // to compile netback, netfront
+
+#endif /* _ASM_IA64_MADDR_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-ia64/meminit.h linux-2.6.18-xen/include/asm-ia64/meminit.h
---- linux-2.6.18/include/asm-ia64/meminit.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-ia64/meminit.h linux-2.6.18-xen/include/asm-ia64/meminit.h
+--- linux-2.6.18.3/include/asm-ia64/meminit.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/include/asm-ia64/meminit.h 2006-11-19 14:27:05.000000000 +0100
@@ -16,10 +16,15 @@
* - command line string
@@ -78107,8 +78289,8 @@
struct rsvd_region {
unsigned long start; /* virtual address of beginning of element */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-ia64/page.h linux-2.6.18-xen/include/asm-ia64/page.h
---- linux-2.6.18/include/asm-ia64/page.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-ia64/page.h linux-2.6.18-xen/include/asm-ia64/page.h
+--- linux-2.6.18.3/include/asm-ia64/page.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/include/asm-ia64/page.h 2006-11-19 14:27:05.000000000 +0100
@@ -126,7 +126,9 @@
# define pfn_valid(pfn) (((pfn) >= min_low_pfn) && ((pfn) < max_low_pfn) && ia64_pfn_valid(pfn))
@@ -78175,8 +78357,8 @@
+#endif /* __ASSEMBLY__ */
+#endif /* __KERNEL__ */
#endif /* _ASM_IA64_PAGE_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-ia64/pal.h linux-2.6.18-xen/include/asm-ia64/pal.h
---- linux-2.6.18/include/asm-ia64/pal.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-ia64/pal.h linux-2.6.18-xen/include/asm-ia64/pal.h
+--- linux-2.6.18.3/include/asm-ia64/pal.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/include/asm-ia64/pal.h 2006-11-19 14:27:05.000000000 +0100
@@ -82,6 +82,7 @@
#ifndef __ASSEMBLY__
@@ -78186,8 +78368,8 @@
#include <asm/fpu.h>
/*
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-ia64/pgalloc.h linux-2.6.18-xen/include/asm-ia64/pgalloc.h
---- linux-2.6.18/include/asm-ia64/pgalloc.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-ia64/pgalloc.h linux-2.6.18-xen/include/asm-ia64/pgalloc.h
+--- linux-2.6.18.3/include/asm-ia64/pgalloc.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/include/asm-ia64/pgalloc.h 2006-11-19 14:27:05.000000000 +0100
@@ -125,7 +125,11 @@
static inline void
@@ -78201,8 +78383,8 @@
}
static inline void
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-ia64/privop.h linux-2.6.18-xen/include/asm-ia64/privop.h
---- linux-2.6.18/include/asm-ia64/privop.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-ia64/privop.h linux-2.6.18-xen/include/asm-ia64/privop.h
+--- linux-2.6.18.3/include/asm-ia64/privop.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-ia64/privop.h 2006-11-19 14:27:05.000000000 +0100
@@ -0,0 +1,59 @@
+#ifndef _ASM_IA64_PRIVOP_H
@@ -78264,8 +78446,8 @@
+#endif /* !__ASSEMBLY */
+
+#endif /* _ASM_IA64_PRIVOP_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-ia64/processor.h linux-2.6.18-xen/include/asm-ia64/processor.h
---- linux-2.6.18/include/asm-ia64/processor.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-ia64/processor.h linux-2.6.18-xen/include/asm-ia64/processor.h
+--- linux-2.6.18.3/include/asm-ia64/processor.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/include/asm-ia64/processor.h 2006-11-19 14:27:05.000000000 +0100
@@ -18,6 +18,7 @@
#include <asm/kregs.h>
@@ -78275,8 +78457,8 @@
#define IA64_NUM_DBG_REGS 8
/*
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-ia64/synch_bitops.h linux-2.6.18-xen/include/asm-ia64/synch_bitops.h
---- linux-2.6.18/include/asm-ia64/synch_bitops.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-ia64/synch_bitops.h linux-2.6.18-xen/include/asm-ia64/synch_bitops.h
+--- linux-2.6.18.3/include/asm-ia64/synch_bitops.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-ia64/synch_bitops.h 2006-11-19 14:27:05.000000000 +0100
@@ -0,0 +1,61 @@
+#ifndef __XEN_SYNCH_BITOPS_H__
@@ -78340,8 +78522,8 @@
+#define synch_cmpxchg_subword synch_cmpxchg
+
+#endif /* __XEN_SYNCH_BITOPS_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-ia64/system.h linux-2.6.18-xen/include/asm-ia64/system.h
---- linux-2.6.18/include/asm-ia64/system.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-ia64/system.h linux-2.6.18-xen/include/asm-ia64/system.h
+--- linux-2.6.18.3/include/asm-ia64/system.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/include/asm-ia64/system.h 2006-11-19 14:27:05.000000000 +0100
@@ -123,7 +123,7 @@
#define __local_irq_save(x) \
@@ -78361,8 +78543,8 @@
#define irqs_disabled() \
({ \
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-ia64/xen/privop.h linux-2.6.18-xen/include/asm-ia64/xen/privop.h
---- linux-2.6.18/include/asm-ia64/xen/privop.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-ia64/xen/privop.h linux-2.6.18-xen/include/asm-ia64/xen/privop.h
+--- linux-2.6.18.3/include/asm-ia64/xen/privop.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-ia64/xen/privop.h 2006-11-19 14:27:05.000000000 +0100
@@ -0,0 +1,304 @@
+#ifndef _ASM_IA64_XEN_PRIVOP_H
@@ -78669,8 +78851,8 @@
+#define ia64_pal_call_static xen_pal_call_static
+
+#endif /* _ASM_IA64_XEN_PRIVOP_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-um/page.h linux-2.6.18-xen/include/asm-um/page.h
---- linux-2.6.18/include/asm-um/page.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-um/page.h linux-2.6.18-xen/include/asm-um/page.h
+--- linux-2.6.18.3/include/asm-um/page.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/include/asm-um/page.h 2006-11-19 14:27:09.000000000 +0100
@@ -114,7 +114,7 @@
extern struct page *arch_validate(struct page *page, gfp_t mask, int order);
@@ -78681,8 +78863,8 @@
#define HAVE_ARCH_FREE_PAGE
#include <asm-generic/memory_model.h>
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/apic.h linux-2.6.18-xen/include/asm-x86_64/apic.h
---- linux-2.6.18/include/asm-x86_64/apic.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/apic.h linux-2.6.18-xen/include/asm-x86_64/apic.h
+--- linux-2.6.18.3/include/asm-x86_64/apic.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/include/asm-x86_64/apic.h 2006-11-19 14:27:10.000000000 +0100
@@ -98,11 +98,13 @@
extern int disable_timer_pin_1;
@@ -78698,8 +78880,26 @@
#endif /* CONFIG_X86_LOCAL_APIC */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/arch_hooks.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/arch_hooks.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/arch_hooks.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/ipi.h linux-2.6.18-xen/include/asm-x86_64/ipi.h
+--- linux-2.6.18.3/include/asm-x86_64/ipi.h 2006-09-20 05:42:06.000000000 +0200
++++ linux-2.6.18-xen/include/asm-x86_64/ipi.h 2006-12-05 18:42:37.000000000 +0100
+@@ -49,6 +49,7 @@
+ return SET_APIC_DEST_FIELD(mask);
+ }
+
++#ifndef CONFIG_XEN_UNPRIVILEGED_GUEST
+ static inline void __send_IPI_shortcut(unsigned int shortcut, int vector, unsigned int dest)
+ {
+ /*
+@@ -113,5 +114,6 @@
+ }
+ local_irq_restore(flags);
+ }
++#endif /* CONFIG_XEN_UNPRIVILEGED_GUEST */
+
+ #endif /* __ASM_IPI_H */
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/arch_hooks.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/arch_hooks.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/arch_hooks.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/arch_hooks.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,27 @@
+#ifndef _ASM_ARCH_HOOKS_H
@@ -78729,8 +78929,8 @@
+extern void mca_nmi_hook(void);
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/bootsetup.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/bootsetup.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/bootsetup.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/bootsetup.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/bootsetup.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/bootsetup.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/bootsetup.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,42 @@
+
@@ -78775,8 +78975,8 @@
+#define RAMDISK_LOAD_FLAG 0x4000
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/desc.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/desc.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/desc.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/desc.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/desc.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/desc.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/desc.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,263 @@
+/* Written 2000 by Andi Kleen */
@@ -79042,10 +79242,10 @@
+#endif /* !__ASSEMBLY__ */
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/dma-mapping.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/dma-mapping.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/dma-mapping.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/dma-mapping.h 2006-11-19 14:27:11.000000000 +0100
-@@ -0,0 +1,208 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/dma-mapping.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/dma-mapping.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/dma-mapping.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/dma-mapping.h 2006-12-05 18:42:37.000000000 +0100
+@@ -0,0 +1,207 @@
+#ifndef _X8664_DMA_MAPPING_H
+#define _X8664_DMA_MAPPING_H 1
+
@@ -79248,14 +79448,13 @@
+
+extern struct device fallback_dev;
+#endif
-+
+extern int panic_on_overflow;
+
+#endif /* _X8664_DMA_MAPPING_H */
+
+#include <asm-i386/mach-xen/asm/dma-mapping.h>
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/dmi.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/dmi.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/dmi.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/dmi.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/dmi.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/dmi.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/dmi.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,29 @@
+#ifndef _ASM_DMI_H
@@ -79287,8 +79486,8 @@
+#define dmi_iounmap bt_iounmap
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/e820.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/e820.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/e820.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/e820.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/e820.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/e820.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/e820.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,64 @@
+/*
@@ -79355,8 +79554,8 @@
+#endif/*!__ASSEMBLY__*/
+
+#endif/*__E820_HEADER*/
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/fixmap.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/fixmap.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/fixmap.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/fixmap.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/fixmap.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/fixmap.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/fixmap.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,113 @@
+/*
@@ -79472,8 +79671,8 @@
+}
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/floppy.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/floppy.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/floppy.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/floppy.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/floppy.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/floppy.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/floppy.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,206 @@
+/*
@@ -79682,10 +79881,10 @@
+#define EXTRA_FLOPPY_PARAMS
+
+#endif /* __ASM_XEN_X86_64_FLOPPY_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/hw_irq.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/hw_irq.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/hw_irq.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/hw_irq.h 2006-11-19 14:27:11.000000000 +0100
-@@ -0,0 +1,137 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/hw_irq.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/hw_irq.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/hw_irq.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/hw_irq.h 2006-12-05 18:42:37.000000000 +0100
+@@ -0,0 +1,136 @@
+#ifndef _ASM_HW_IRQ_H
+#define _ASM_HW_IRQ_H
+
@@ -79819,12 +80018,11 @@
+
+#define platform_legacy_irq(irq) ((irq) < 16)
+
-+
+#endif
+
+#endif /* _ASM_HW_IRQ_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/hypercall.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/hypercall.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/hypercall.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/hypercall.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/hypercall.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/hypercall.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/hypercall.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,389 @@
+/******************************************************************************
@@ -80216,14 +80414,14 @@
+}
+
+#endif /* __HYPERCALL_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/hypervisor.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/hypervisor.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/hypervisor.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/hypervisor.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/hypervisor.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/hypervisor.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/hypervisor.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,2 @@
+
+#include <asm-i386/mach-xen/asm/hypervisor.h>
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/io.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/io.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/io.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/io.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/io.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/io.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/io.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,327 @@
+#ifndef _ASM_IO_H
@@ -80553,8 +80751,77 @@
+#define ARCH_HAS_DEV_MEM
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/irq.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/irq.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/irq.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/irqflags.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/irqflags.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/irqflags.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/irqflags.h 2006-12-05 18:42:37.000000000 +0100
+@@ -0,0 +1,65 @@
++/*
++ * include/asm-x86_64/irqflags.h
++ *
++ * IRQ flags handling
++ *
++ * This file gets included from lowlevel asm headers too, to provide
++ * wrapped versions of the local_irq_*() APIs, based on the
++ * raw_local_irq_*() functions from the lowlevel headers.
++ */
++#ifndef _ASM_IRQFLAGS_H
++#define _ASM_IRQFLAGS_H
++
++#ifndef __ASSEMBLY__
++/*
++ * Interrupt control:
++ */
++
++unsigned long __raw_local_save_flags(void);
++#define raw_local_save_flags(flags) \
++ do { (flags) = __raw_local_save_flags(); } while (0)
++
++void raw_local_irq_restore(unsigned long flags);
++void raw_local_irq_disable(void);
++void raw_local_irq_enable(void);
++
++static inline int raw_irqs_disabled_flags(unsigned long flags)
++{
++ return flags != 0;
++}
++
++/*
++ * For spinlocks, etc.:
++ */
++
++unsigned long __raw_local_irq_save(void);
++
++#define raw_local_irq_save(flags) \
++ do { (flags) = __raw_local_irq_save(); } while (0)
++
++int raw_irqs_disabled(void);
++
++/*
++ * Used in the idle loop; sti takes one instruction cycle
++ * to complete:
++ */
++void raw_safe_halt(void);
++
++
++/*
++ * Used when interrupts are already enabled or to
++ * shutdown the processor:
++ */
++void halt(void);
++
++#else /* __ASSEMBLY__: */
++# ifdef CONFIG_TRACE_IRQFLAGS
++# define TRACE_IRQS_ON call trace_hardirqs_on_thunk
++# define TRACE_IRQS_OFF call trace_hardirqs_off_thunk
++# else
++# define TRACE_IRQS_ON
++# define TRACE_IRQS_OFF
++# endif
++#endif
++
++#endif
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/irq.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/irq.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/irq.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/irq.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,38 @@
+#ifndef _ASM_IRQ_H
@@ -80595,8 +80862,8 @@
+#define __ARCH_HAS_DO_SOFTIRQ 1
+
+#endif /* _ASM_IRQ_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/maddr.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/maddr.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/maddr.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/maddr.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/maddr.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/maddr.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/maddr.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,139 @@
+#ifndef _X86_64_MADDR_H
@@ -80738,8 +81005,8 @@
+
+#endif /* _X86_64_MADDR_H */
+
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/mmu_context.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/mmu_context.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/mmu_context.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/mmu_context.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/mmu_context.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/mmu_context.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/mmu_context.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,135 @@
+#ifndef __X86_64_MMU_CONTEXT_H
@@ -80877,8 +81144,8 @@
+}
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/mmu.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/mmu.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/mmu.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/mmu.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/mmu.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/mmu.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/mmu.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,38 @@
+#ifndef __x86_64_MMU_H
@@ -80919,8 +81186,8 @@
+#endif
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/msr.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/msr.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/msr.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/msr.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/msr.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/msr.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/msr.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,399 @@
+#ifndef X86_64_MSR_H
@@ -81322,8 +81589,8 @@
+#define MSR_P4_U2L_ESCR1 0x3b1
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/nmi.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/nmi.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/nmi.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/nmi.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/nmi.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/nmi.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/nmi.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,93 @@
+/*
@@ -81419,8 +81686,8 @@
+#define NMI_INVALID 3
+
+#endif /* ASM_NMI_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/page.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/page.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/page.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/page.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/page.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/page.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/page.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,208 @@
+#ifndef _X86_64_PAGE_H
@@ -81631,8 +81898,8 @@
+#endif /* __KERNEL__ */
+
+#endif /* _X86_64_PAGE_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/param.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/param.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/param.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/param.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/param.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/param.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/param.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,22 @@
+#ifndef _ASMx86_64_PARAM_H
@@ -81657,8 +81924,8 @@
+#define MAXHOSTNAMELEN 64 /* max length of hostname */
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/pci.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/pci.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/pci.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/pci.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/pci.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/pci.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/pci.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,173 @@
+#ifndef __x8664_PCI_H
@@ -81834,8 +82101,8 @@
+#define pcibios_scan_all_fns(a, b) 1
+
+#endif /* __x8664_PCI_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/pgalloc.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/pgalloc.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/pgalloc.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/pgalloc.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/pgalloc.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/pgalloc.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/pgalloc.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,226 @@
+#ifndef _X86_64_PGALLOC_H
@@ -82064,8 +82331,8 @@
+#define __pud_free_tlb(tlb,x) pud_free((x))
+
+#endif /* _X86_64_PGALLOC_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/pgtable.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/pgtable.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/pgtable.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/pgtable.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/pgtable.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/pgtable.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/pgtable.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,558 @@
+#ifndef _X86_64_PGTABLE_H
@@ -82626,10 +82893,10 @@
+#include <asm-generic/pgtable.h>
+
+#endif /* _X86_64_PGTABLE_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/processor.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/processor.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/processor.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/processor.h 2006-11-19 14:27:11.000000000 +0100
-@@ -0,0 +1,504 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/processor.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/processor.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/processor.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/processor.h 2006-12-05 18:42:37.000000000 +0100
+@@ -0,0 +1,503 @@
+/*
+ * include/asm-x86_64/processor.h
+ *
@@ -82706,7 +82973,6 @@
+ __u8 phys_proc_id; /* Physical Processor id. */
+ __u8 cpu_core_id; /* Core id. */
+#endif
-+
+} ____cacheline_aligned;
+
+#define X86_VENDOR_INTEL 0
@@ -83134,8 +83400,8 @@
+#define HAVE_ARCH_PICK_MMAP_LAYOUT 1
+
+#endif /* __ASM_X86_64_PROCESSOR_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/ptrace.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/ptrace.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/ptrace.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/ptrace.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/ptrace.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/ptrace.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/ptrace.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,125 @@
+#ifndef _X86_64_PTRACE_H
@@ -83263,8 +83529,8 @@
+#endif
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/smp.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/smp.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/smp.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/smp.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/smp.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/smp.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/smp.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,150 @@
+#ifndef __ASM_SMP_H
@@ -83417,16 +83683,16 @@
+
+#endif
+
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/synch_bitops.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/synch_bitops.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/synch_bitops.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/synch_bitops.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/synch_bitops.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/synch_bitops.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/synch_bitops.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,2 @@
+
+#include <asm-i386/mach-xen/asm/synch_bitops.h>
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/system.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/system.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/system.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/system.h 2006-11-19 14:27:11.000000000 +0100
-@@ -0,0 +1,346 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/system.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/system.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/system.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/system.h 2006-12-05 18:42:37.000000000 +0100
+@@ -0,0 +1,264 @@
+#ifndef __ASM_SYSTEM_H
+#define __ASM_SYSTEM_H
+
@@ -83466,7 +83732,7 @@
+ "thread_return:\n\t" \
+ "movq %%gs:%P[pda_pcurrent],%%rsi\n\t" \
+ "movq %P[thread_info](%%rsi),%%r8\n\t" \
-+ LOCK_PREFIX "btr %[tif_fork],%P[ti_flags](%%r8)\n\t" \
++ LOCK_PREFIX "btr %[tif_fork],%P[ti_flags](%%r8)\n\t" \
+ "movq %%rax,%%rdi\n\t" \
+ "jc ret_from_fork\n\t" \
+ RESTORE_CONTEXT \
@@ -83680,101 +83946,19 @@
+
+#define warn_if_not_ulong(x) do { unsigned long foo; (void) (&(x) == &foo); } while (0)
+
-+
-+/*
-+ * The use of 'barrier' in the following reflects their use as local-lock
-+ * operations. Reentrancy must be prevented (e.g., __cli()) /before/ following
-+ * critical operations are executed. All critical operations must complete
-+ * /before/ reentrancy is permitted (e.g., __sti()). Alpha architecture also
-+ * includes these barriers, for example.
-+ */
-+
-+#define __cli() \
-+do { \
-+ vcpu_info_t *_vcpu; \
-+ preempt_disable(); \
-+ _vcpu = &HYPERVISOR_shared_info->vcpu_info[__vcpu_id]; \
-+ _vcpu->evtchn_upcall_mask = 1; \
-+ preempt_enable_no_resched(); \
-+ barrier(); \
-+} while (0)
-+
-+#define __sti() \
-+do { \
-+ vcpu_info_t *_vcpu; \
-+ barrier(); \
-+ preempt_disable(); \
-+ _vcpu = &HYPERVISOR_shared_info->vcpu_info[__vcpu_id]; \
-+ _vcpu->evtchn_upcall_mask = 0; \
-+ barrier(); /* unmask then check (avoid races) */ \
-+ if ( unlikely(_vcpu->evtchn_upcall_pending) ) \
-+ force_evtchn_callback(); \
-+ preempt_enable(); \
-+} while (0)
-+
-+#define __save_flags(x) \
-+do { \
-+ vcpu_info_t *_vcpu; \
-+ preempt_disable(); \
-+ _vcpu = &HYPERVISOR_shared_info->vcpu_info[__vcpu_id]; \
-+ (x) = _vcpu->evtchn_upcall_mask; \
-+ preempt_enable(); \
-+} while (0)
-+
-+#define __restore_flags(x) \
-+do { \
-+ vcpu_info_t *_vcpu; \
-+ barrier(); \
-+ preempt_disable(); \
-+ _vcpu = &HYPERVISOR_shared_info->vcpu_info[__vcpu_id]; \
-+ if ((_vcpu->evtchn_upcall_mask = (x)) == 0) { \
-+ barrier(); /* unmask then check (avoid races) */ \
-+ if ( unlikely(_vcpu->evtchn_upcall_pending) ) \
-+ force_evtchn_callback(); \
-+ preempt_enable(); \
-+ } else \
-+ preempt_enable_no_resched(); \
-+} while (0)
-+
-+#define __save_and_cli(x) \
-+do { \
-+ vcpu_info_t *_vcpu; \
-+ preempt_disable(); \
-+ _vcpu = &HYPERVISOR_shared_info->vcpu_info[__vcpu_id]; \
-+ (x) = _vcpu->evtchn_upcall_mask; \
-+ _vcpu->evtchn_upcall_mask = 1; \
-+ preempt_enable_no_resched(); \
-+ barrier(); \
-+} while (0)
-+
-+#define local_irq_save(x) __save_and_cli(x)
-+#define local_irq_restore(x) __restore_flags(x)
-+#define local_save_flags(x) __save_flags(x)
-+#define local_irq_disable() __cli()
-+#define local_irq_enable() __sti()
-+
-+/* Cannot use preempt_enable() here as we would recurse in preempt_sched(). */
-+#define irqs_disabled() \
-+({ int ___x; \
-+ vcpu_info_t *_vcpu; \
-+ preempt_disable(); \
-+ _vcpu = &HYPERVISOR_shared_info->vcpu_info[__vcpu_id]; \
-+ ___x = (_vcpu->evtchn_upcall_mask != 0); \
-+ preempt_enable_no_resched(); \
-+ ___x; })
-+
+void safe_halt(void);
+void halt(void);
+
++#include <linux/irqflags.h>
++
+void cpu_idle_wait(void);
+
+extern unsigned long arch_align_stack(unsigned long sp);
-+
+extern void free_init_pages(char *what, unsigned long begin, unsigned long end);
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/timer.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/timer.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/timer.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/timer.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/timer.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/timer.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/timer.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,67 @@
+#ifndef _ASMi386_TIMER_H
@@ -83844,8 +84028,8 @@
+extern struct init_timer_opts timer_pmtmr_init;
+#endif
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/tlbflush.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/tlbflush.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/tlbflush.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/tlbflush.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/tlbflush.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/tlbflush.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/tlbflush.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,103 @@
+#ifndef _X8664_TLBFLUSH_H
@@ -83951,8 +84135,8 @@
+}
+
+#endif /* _X8664_TLBFLUSH_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/vga.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/vga.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/vga.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/vga.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/vga.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/vga.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/vga.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,20 @@
+/*
@@ -83975,8 +84159,8 @@
+#define vga_writeb(x,y) (*(y) = (x))
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/asm/xor.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/xor.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/asm/xor.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/xor.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/xor.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/asm/xor.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/xor.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,328 @@
+/*
@@ -84307,8 +84491,8 @@
+ We may also be able to load into the L1 only depending on how the cpu
+ deals with a load to a line that is being prefetched. */
+#define XOR_SELECT_TEMPLATE(FASTEST) (&xor_block_sse)
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/irq_vectors.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/irq_vectors.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/irq_vectors.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/irq_vectors.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/irq_vectors.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/irq_vectors.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/irq_vectors.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,123 @@
+/*
@@ -84434,8 +84618,8 @@
+#define irq_to_dynirq(_x) ((_x) - DYNIRQ_BASE)
+
+#endif /* _ASM_IRQ_VECTORS_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/mach_time.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/mach_time.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/mach_time.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/mach_time.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/mach_time.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/mach_time.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/mach_time.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,111 @@
+/*
@@ -84549,8 +84733,8 @@
+}
+
+#endif /* !_MACH_TIME_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/mach_timer.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/mach_timer.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/mach_timer.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/mach_timer.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/mach_timer.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/mach_timer.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/mach_timer.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,48 @@
+/*
@@ -84601,8 +84785,8 @@
+}
+
+#endif /* !_MACH_TIMER_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/setup_arch_post.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/setup_arch_post.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/setup_arch_post.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/setup_arch_post.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/setup_arch_post.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/setup_arch_post.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/setup_arch_post.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,58 @@
+/**
@@ -84663,8 +84847,8 @@
+ }
+#endif
+}
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/asm-x86_64/mach-xen/setup_arch_pre.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/setup_arch_pre.h
---- linux-2.6.18/include/asm-x86_64/mach-xen/setup_arch_pre.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/asm-x86_64/mach-xen/setup_arch_pre.h linux-2.6.18-xen/include/asm-x86_64/mach-xen/setup_arch_pre.h
+--- linux-2.6.18.3/include/asm-x86_64/mach-xen/setup_arch_pre.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/asm-x86_64/mach-xen/setup_arch_pre.h 2006-11-19 14:27:11.000000000 +0100
@@ -0,0 +1,5 @@
+/* Hook to call BIOS initialisation function */
@@ -84672,8 +84856,8 @@
+#define ARCH_SETUP machine_specific_arch_setup();
+
+static void __init machine_specific_arch_setup(void);
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/linux/elfnote.h linux-2.6.18-xen/include/linux/elfnote.h
---- linux-2.6.18/include/linux/elfnote.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/linux/elfnote.h linux-2.6.18-xen/include/linux/elfnote.h
+--- linux-2.6.18.3/include/linux/elfnote.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/linux/elfnote.h 2006-11-19 14:27:14.000000000 +0100
@@ -0,0 +1,90 @@
+#ifndef _LINUX_ELFNOTE_H
@@ -84766,8 +84950,8 @@
+#endif /* __ASSEMBLER__ */
+
+#endif /* _LINUX_ELFNOTE_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/linux/gfp.h linux-2.6.18-xen/include/linux/gfp.h
---- linux-2.6.18/include/linux/gfp.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/linux/gfp.h linux-2.6.18-xen/include/linux/gfp.h
+--- linux-2.6.18.3/include/linux/gfp.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/include/linux/gfp.h 2006-11-19 14:27:14.000000000 +0100
@@ -99,7 +99,11 @@
*/
@@ -84782,8 +84966,8 @@
#endif
extern struct page *
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/linux/highmem.h linux-2.6.18-xen/include/linux/highmem.h
---- linux-2.6.18/include/linux/highmem.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/linux/highmem.h linux-2.6.18-xen/include/linux/highmem.h
+--- linux-2.6.18.3/include/linux/highmem.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/include/linux/highmem.h 2006-11-19 14:27:14.000000000 +0100
@@ -24,10 +24,16 @@
@@ -84802,8 +84986,8 @@
static inline void *kmap(struct page *page)
{
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/linux/interrupt.h linux-2.6.18-xen/include/linux/interrupt.h
---- linux-2.6.18/include/linux/interrupt.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/linux/interrupt.h linux-2.6.18-xen/include/linux/interrupt.h
+--- linux-2.6.18.3/include/linux/interrupt.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/include/linux/interrupt.h 2006-11-19 14:27:14.000000000 +0100
@@ -166,6 +166,12 @@
@@ -84818,8 +85002,8 @@
#ifndef __ARCH_SET_SOFTIRQ_PENDING
#define set_softirq_pending(x) (local_softirq_pending() = (x))
#define or_softirq_pending(x) (local_softirq_pending() |= (x))
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/linux/mm.h linux-2.6.18-xen/include/linux/mm.h
---- linux-2.6.18/include/linux/mm.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/linux/mm.h linux-2.6.18-xen/include/linux/mm.h
+--- linux-2.6.18.3/include/linux/mm.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/include/linux/mm.h 2006-11-19 14:27:14.000000000 +0100
@@ -164,6 +164,9 @@
#define VM_NONLINEAR 0x00800000 /* Is non-linear (remap_file_pages) */
@@ -84845,8 +85029,8 @@
#ifdef CONFIG_PROC_FS
void vm_stat_account(struct mm_struct *, unsigned long, struct file *, long);
#else
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/linux/oprofile.h linux-2.6.18-xen/include/linux/oprofile.h
---- linux-2.6.18/include/linux/oprofile.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/linux/oprofile.h linux-2.6.18-xen/include/linux/oprofile.h
+--- linux-2.6.18.3/include/linux/oprofile.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/include/linux/oprofile.h 2006-11-19 14:27:14.000000000 +0100
@@ -16,6 +16,10 @@
#include <linux/types.h>
@@ -84880,8 +85064,22 @@
/**
* Create a file of the given name as a child of the given root, with
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/linux/skbuff.h linux-2.6.18-xen/include/linux/skbuff.h
---- linux-2.6.18/include/linux/skbuff.h 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/linux/pfn.h linux-2.6.18-xen/include/linux/pfn.h
+--- linux-2.6.18.3/include/linux/pfn.h 2006-09-20 05:42:06.000000000 +0200
++++ linux-2.6.18-xen/include/linux/pfn.h 2006-12-05 18:42:37.000000000 +0100
+@@ -4,6 +4,10 @@
+ #define PFN_ALIGN(x) (((unsigned long)(x) + (PAGE_SIZE - 1)) & PAGE_MASK)
+ #define PFN_UP(x) (((x) + PAGE_SIZE-1) >> PAGE_SHIFT)
+ #define PFN_DOWN(x) ((x) >> PAGE_SHIFT)
++#if defined(CONFIG_X86_XEN) && defined(CONFIG_X86_PAE)
++#define PFN_PHYS(x) ((unsigned long long)(x) << PAGE_SHIFT)
++#else
+ #define PFN_PHYS(x) ((x) << PAGE_SHIFT)
++#endif
+
+ #endif
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/linux/skbuff.h linux-2.6.18-xen/include/linux/skbuff.h
+--- linux-2.6.18.3/include/linux/skbuff.h 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/include/linux/skbuff.h 2006-11-19 14:27:15.000000000 +0100
@@ -203,6 +203,8 @@
* @local_df: allow local fragmentation
@@ -84934,19 +85132,8 @@
/**
* dev_alloc_skb - allocate an skbuff for receiving
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/scsi/scsi_eh.h linux-2.6.18-xen/include/scsi/scsi_eh.h
---- linux-2.6.18/include/scsi/scsi_eh.h 2006-09-20 05:42:06.000000000 +0200
-+++ linux-2.6.18-xen/include/scsi/scsi_eh.h 2006-11-19 14:27:15.000000000 +0100
-@@ -34,6 +34,7 @@
- }
-
-
-+extern void scsi_eh_wakeup(struct Scsi_Host *shost);
- extern void scsi_eh_finish_cmd(struct scsi_cmnd *scmd,
- struct list_head *done_q);
- extern void scsi_eh_flush_done_q(struct list_head *done_q);
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/balloon.h linux-2.6.18-xen/include/xen/balloon.h
---- linux-2.6.18/include/xen/balloon.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/balloon.h linux-2.6.18-xen/include/xen/balloon.h
+--- linux-2.6.18.3/include/xen/balloon.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/balloon.h 2006-11-19 14:27:15.000000000 +0100
@@ -0,0 +1,57 @@
+/******************************************************************************
@@ -85006,8 +85193,8 @@
+#define balloon_unlock(__flags) spin_unlock_irqrestore(&balloon_lock, __flags)
+
+#endif /* __ASM_BALLOON_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/cpu_hotplug.h linux-2.6.18-xen/include/xen/cpu_hotplug.h
---- linux-2.6.18/include/xen/cpu_hotplug.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/cpu_hotplug.h linux-2.6.18-xen/include/xen/cpu_hotplug.h
+--- linux-2.6.18.3/include/xen/cpu_hotplug.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/cpu_hotplug.h 2006-11-19 14:27:15.000000000 +0100
@@ -0,0 +1,43 @@
+#ifndef __XEN_CPU_HOTPLUG_H__
@@ -85053,8 +85240,8 @@
+#endif /* !defined(CONFIG_HOTPLUG_CPU) */
+
+#endif /* __XEN_CPU_HOTPLUG_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/driver_util.h linux-2.6.18-xen/include/xen/driver_util.h
---- linux-2.6.18/include/xen/driver_util.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/driver_util.h linux-2.6.18-xen/include/xen/driver_util.h
+--- linux-2.6.18.3/include/xen/driver_util.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/driver_util.h 2006-11-19 14:27:15.000000000 +0100
@@ -0,0 +1,15 @@
+
@@ -85072,8 +85259,8 @@
+extern void unlock_vm_area(struct vm_struct *area);
+
+#endif /* __ASM_XEN_DRIVER_UTIL_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/evtchn.h linux-2.6.18-xen/include/xen/evtchn.h
---- linux-2.6.18/include/xen/evtchn.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/evtchn.h linux-2.6.18-xen/include/xen/evtchn.h
+--- linux-2.6.18.3/include/xen/evtchn.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/evtchn.h 2006-11-19 14:27:15.000000000 +0100
@@ -0,0 +1,113 @@
+/******************************************************************************
@@ -85189,8 +85376,8 @@
+extern void notify_remote_via_irq(int irq);
+
+#endif /* __ASM_EVTCHN_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/features.h linux-2.6.18-xen/include/xen/features.h
---- linux-2.6.18/include/xen/features.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/features.h linux-2.6.18-xen/include/xen/features.h
+--- linux-2.6.18.3/include/xen/features.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/features.h 2006-11-19 14:27:15.000000000 +0100
@@ -0,0 +1,20 @@
+/******************************************************************************
@@ -85213,8 +85400,8 @@
+#define xen_feature(flag) (xen_features[flag])
+
+#endif /* __ASM_XEN_FEATURES_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/foreign_page.h linux-2.6.18-xen/include/xen/foreign_page.h
---- linux-2.6.18/include/xen/foreign_page.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/foreign_page.h linux-2.6.18-xen/include/xen/foreign_page.h
+--- linux-2.6.18.3/include/xen/foreign_page.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/foreign_page.h 2006-11-19 14:27:15.000000000 +0100
@@ -0,0 +1,30 @@
+/******************************************************************************
@@ -85247,8 +85434,8 @@
+ ( (void (*) (struct page *)) (page)->mapping )
+
+#endif /* __ASM_XEN_FOREIGN_PAGE_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/gnttab.h linux-2.6.18-xen/include/xen/gnttab.h
---- linux-2.6.18/include/xen/gnttab.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/gnttab.h linux-2.6.18-xen/include/xen/gnttab.h
+--- linux-2.6.18.3/include/xen/gnttab.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/gnttab.h 2006-11-19 14:27:15.000000000 +0100
@@ -0,0 +1,150 @@
+/******************************************************************************
@@ -85401,8 +85588,8 @@
+}
+
+#endif /* __ASM_GNTTAB_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/hvm.h linux-2.6.18-xen/include/xen/hvm.h
---- linux-2.6.18/include/xen/hvm.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/hvm.h linux-2.6.18-xen/include/xen/hvm.h
+--- linux-2.6.18.3/include/xen/hvm.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/hvm.h 2006-11-19 14:27:15.000000000 +0100
@@ -0,0 +1,24 @@
+/* Simple wrappers around HVM functions */
@@ -85429,8 +85616,8 @@
+}
+
+#endif /* XEN_HVM_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/hypervisor_sysfs.h linux-2.6.18-xen/include/xen/hypervisor_sysfs.h
---- linux-2.6.18/include/xen/hypervisor_sysfs.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/hypervisor_sysfs.h linux-2.6.18-xen/include/xen/hypervisor_sysfs.h
+--- linux-2.6.18.3/include/xen/hypervisor_sysfs.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/hypervisor_sysfs.h 2006-11-19 14:27:15.000000000 +0100
@@ -0,0 +1,32 @@
+/*
@@ -85465,8 +85652,8 @@
+};
+
+#endif /* _HYP_SYSFS_H_ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/acm.h linux-2.6.18-xen/include/xen/interface/acm.h
---- linux-2.6.18/include/xen/interface/acm.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/acm.h linux-2.6.18-xen/include/xen/interface/acm.h
+--- linux-2.6.18.3/include/xen/interface/acm.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/acm.h 2006-11-19 14:27:15.000000000 +0100
@@ -0,0 +1,187 @@
+/*
@@ -85656,8 +85843,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/acm_ops.h linux-2.6.18-xen/include/xen/interface/acm_ops.h
---- linux-2.6.18/include/xen/interface/acm_ops.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/acm_ops.h linux-2.6.18-xen/include/xen/interface/acm_ops.h
+--- linux-2.6.18.3/include/xen/interface/acm_ops.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/acm_ops.h 2006-11-19 14:27:15.000000000 +0100
@@ -0,0 +1,102 @@
+/*
@@ -85762,8 +85949,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/arch-ia64.h linux-2.6.18-xen/include/xen/interface/arch-ia64.h
---- linux-2.6.18/include/xen/interface/arch-ia64.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/arch-ia64.h linux-2.6.18-xen/include/xen/interface/arch-ia64.h
+--- linux-2.6.18.3/include/xen/interface/arch-ia64.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/arch-ia64.h 2006-11-19 14:27:15.000000000 +0100
@@ -0,0 +1,448 @@
+/******************************************************************************
@@ -86214,8 +86401,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/arch-powerpc.h linux-2.6.18-xen/include/xen/interface/arch-powerpc.h
---- linux-2.6.18/include/xen/interface/arch-powerpc.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/arch-powerpc.h linux-2.6.18-xen/include/xen/interface/arch-powerpc.h
+--- linux-2.6.18.3/include/xen/interface/arch-powerpc.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/arch-powerpc.h 2006-11-19 14:27:15.000000000 +0100
@@ -0,0 +1,115 @@
+/*
@@ -86333,8 +86520,8 @@
+#endif
+
+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/arch-x86_32.h linux-2.6.18-xen/include/xen/interface/arch-x86_32.h
---- linux-2.6.18/include/xen/interface/arch-x86_32.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/arch-x86_32.h linux-2.6.18-xen/include/xen/interface/arch-x86_32.h
+--- linux-2.6.18.3/include/xen/interface/arch-x86_32.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/arch-x86_32.h 2006-11-19 14:27:15.000000000 +0100
@@ -0,0 +1,255 @@
+/******************************************************************************
@@ -86592,8 +86779,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/arch-x86_64.h linux-2.6.18-xen/include/xen/interface/arch-x86_64.h
---- linux-2.6.18/include/xen/interface/arch-x86_64.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/arch-x86_64.h linux-2.6.18-xen/include/xen/interface/arch-x86_64.h
+--- linux-2.6.18.3/include/xen/interface/arch-x86_64.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/arch-x86_64.h 2006-11-19 14:27:15.000000000 +0100
@@ -0,0 +1,322 @@
+/******************************************************************************
@@ -86918,8 +87105,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/callback.h linux-2.6.18-xen/include/xen/interface/callback.h
---- linux-2.6.18/include/xen/interface/callback.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/callback.h linux-2.6.18-xen/include/xen/interface/callback.h
+--- linux-2.6.18.3/include/xen/interface/callback.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/callback.h 2006-11-19 14:27:15.000000000 +0100
@@ -0,0 +1,74 @@
+/******************************************************************************
@@ -86996,8 +87183,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/dom0_ops.h linux-2.6.18-xen/include/xen/interface/dom0_ops.h
---- linux-2.6.18/include/xen/interface/dom0_ops.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/dom0_ops.h linux-2.6.18-xen/include/xen/interface/dom0_ops.h
+--- linux-2.6.18.3/include/xen/interface/dom0_ops.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/dom0_ops.h 2006-11-19 14:27:15.000000000 +0100
@@ -0,0 +1,102 @@
+/******************************************************************************
@@ -87102,8 +87289,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/domctl.h linux-2.6.18-xen/include/xen/interface/domctl.h
---- linux-2.6.18/include/xen/interface/domctl.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/domctl.h linux-2.6.18-xen/include/xen/interface/domctl.h
+--- linux-2.6.18.3/include/xen/interface/domctl.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/domctl.h 2006-11-19 14:27:15.000000000 +0100
@@ -0,0 +1,392 @@
+/******************************************************************************
@@ -87498,8 +87685,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/elfnote.h linux-2.6.18-xen/include/xen/interface/elfnote.h
---- linux-2.6.18/include/xen/interface/elfnote.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/elfnote.h linux-2.6.18-xen/include/xen/interface/elfnote.h
+--- linux-2.6.18.3/include/xen/interface/elfnote.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/elfnote.h 2006-11-19 14:27:15.000000000 +0100
@@ -0,0 +1,133 @@
+/******************************************************************************
@@ -87635,8 +87822,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/event_channel.h linux-2.6.18-xen/include/xen/interface/event_channel.h
---- linux-2.6.18/include/xen/interface/event_channel.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/event_channel.h linux-2.6.18-xen/include/xen/interface/event_channel.h
+--- linux-2.6.18.3/include/xen/interface/event_channel.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/event_channel.h 2006-11-19 14:27:15.000000000 +0100
@@ -0,0 +1,233 @@
+/******************************************************************************
@@ -87872,8 +88059,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/features.h linux-2.6.18-xen/include/xen/interface/features.h
---- linux-2.6.18/include/xen/interface/features.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/features.h linux-2.6.18-xen/include/xen/interface/features.h
+--- linux-2.6.18.3/include/xen/interface/features.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/features.h 2006-11-19 14:27:15.000000000 +0100
@@ -0,0 +1,53 @@
+/******************************************************************************
@@ -87929,8 +88116,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/grant_table.h linux-2.6.18-xen/include/xen/interface/grant_table.h
---- linux-2.6.18/include/xen/interface/grant_table.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/grant_table.h linux-2.6.18-xen/include/xen/interface/grant_table.h
+--- linux-2.6.18.3/include/xen/interface/grant_table.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/grant_table.h 2006-11-19 14:27:15.000000000 +0100
@@ -0,0 +1,362 @@
+/******************************************************************************
@@ -88295,8 +88482,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/hvm/e820.h linux-2.6.18-xen/include/xen/interface/hvm/e820.h
---- linux-2.6.18/include/xen/interface/hvm/e820.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/hvm/e820.h linux-2.6.18-xen/include/xen/interface/hvm/e820.h
+--- linux-2.6.18.3/include/xen/interface/hvm/e820.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/hvm/e820.h 2006-11-19 14:27:15.000000000 +0100
@@ -0,0 +1,32 @@
+#ifndef __XEN_PUBLIC_HVM_E820_H__
@@ -88331,8 +88518,8 @@
+#define HVM_BELOW_4G_MMIO_LENGTH ((1ULL << 32) - HVM_BELOW_4G_MMIO_START)
+
+#endif /* __XEN_PUBLIC_HVM_E820_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/hvm/hvm_info_table.h linux-2.6.18-xen/include/xen/interface/hvm/hvm_info_table.h
---- linux-2.6.18/include/xen/interface/hvm/hvm_info_table.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/hvm/hvm_info_table.h linux-2.6.18-xen/include/xen/interface/hvm/hvm_info_table.h
+--- linux-2.6.18.3/include/xen/interface/hvm/hvm_info_table.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/hvm/hvm_info_table.h 2006-11-19 14:27:15.000000000 +0100
@@ -0,0 +1,22 @@
+/******************************************************************************
@@ -88357,8 +88544,8 @@
+};
+
+#endif /* __XEN_PUBLIC_HVM_HVM_INFO_TABLE_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/hvm/ioreq.h linux-2.6.18-xen/include/xen/interface/hvm/ioreq.h
---- linux-2.6.18/include/xen/interface/hvm/ioreq.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/hvm/ioreq.h linux-2.6.18-xen/include/xen/interface/hvm/ioreq.h
+--- linux-2.6.18.3/include/xen/interface/hvm/ioreq.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/hvm/ioreq.h 2006-11-19 14:27:15.000000000 +0100
@@ -0,0 +1,99 @@
+/*
@@ -88460,8 +88647,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/hvm/params.h linux-2.6.18-xen/include/xen/interface/hvm/params.h
---- linux-2.6.18/include/xen/interface/hvm/params.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/hvm/params.h linux-2.6.18-xen/include/xen/interface/hvm/params.h
+--- linux-2.6.18.3/include/xen/interface/hvm/params.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/hvm/params.h 2006-11-19 14:27:15.000000000 +0100
@@ -0,0 +1,24 @@
+#ifndef __XEN_PUBLIC_HVM_PARAMS_H__
@@ -88488,8 +88675,8 @@
+DEFINE_XEN_GUEST_HANDLE(xen_hvm_param_t);
+
+#endif /* __XEN_PUBLIC_HVM_PARAMS_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/hvm/vmx_assist.h linux-2.6.18-xen/include/xen/interface/hvm/vmx_assist.h
---- linux-2.6.18/include/xen/interface/hvm/vmx_assist.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/hvm/vmx_assist.h linux-2.6.18-xen/include/xen/interface/hvm/vmx_assist.h
+--- linux-2.6.18.3/include/xen/interface/hvm/vmx_assist.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/hvm/vmx_assist.h 2006-11-19 14:27:15.000000000 +0100
@@ -0,0 +1,98 @@
+/*
@@ -88590,8 +88777,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/io/blkif.h linux-2.6.18-xen/include/xen/interface/io/blkif.h
---- linux-2.6.18/include/xen/interface/io/blkif.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/io/blkif.h linux-2.6.18-xen/include/xen/interface/io/blkif.h
+--- linux-2.6.18.3/include/xen/interface/io/blkif.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/io/blkif.h 2006-11-19 14:27:15.000000000 +0100
@@ -0,0 +1,87 @@
+/******************************************************************************
@@ -88681,8 +88868,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/io/console.h linux-2.6.18-xen/include/xen/interface/io/console.h
---- linux-2.6.18/include/xen/interface/io/console.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/io/console.h linux-2.6.18-xen/include/xen/interface/io/console.h
+--- linux-2.6.18.3/include/xen/interface/io/console.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/io/console.h 2006-11-19 14:27:16.000000000 +0100
@@ -0,0 +1,33 @@
+/******************************************************************************
@@ -88718,8 +88905,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/io/netif.h linux-2.6.18-xen/include/xen/interface/io/netif.h
---- linux-2.6.18/include/xen/interface/io/netif.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/io/netif.h linux-2.6.18-xen/include/xen/interface/io/netif.h
+--- linux-2.6.18.3/include/xen/interface/io/netif.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/io/netif.h 2006-11-19 14:27:16.000000000 +0100
@@ -0,0 +1,166 @@
+/******************************************************************************
@@ -88888,8 +89075,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/io/pciif.h linux-2.6.18-xen/include/xen/interface/io/pciif.h
---- linux-2.6.18/include/xen/interface/io/pciif.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/io/pciif.h linux-2.6.18-xen/include/xen/interface/io/pciif.h
+--- linux-2.6.18.3/include/xen/interface/io/pciif.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/io/pciif.h 2006-11-19 14:27:16.000000000 +0100
@@ -0,0 +1,55 @@
+/*
@@ -88947,8 +89134,8 @@
+};
+
+#endif /* __XEN_PCI_COMMON_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/io/ring.h linux-2.6.18-xen/include/xen/interface/io/ring.h
---- linux-2.6.18/include/xen/interface/io/ring.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/io/ring.h linux-2.6.18-xen/include/xen/interface/io/ring.h
+--- linux-2.6.18.3/include/xen/interface/io/ring.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/io/ring.h 2006-11-19 14:27:16.000000000 +0100
@@ -0,0 +1,273 @@
+/******************************************************************************
@@ -89224,8 +89411,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/io/tpmif.h linux-2.6.18-xen/include/xen/interface/io/tpmif.h
---- linux-2.6.18/include/xen/interface/io/tpmif.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/io/tpmif.h linux-2.6.18-xen/include/xen/interface/io/tpmif.h
+--- linux-2.6.18.3/include/xen/interface/io/tpmif.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/io/tpmif.h 2006-11-19 14:27:16.000000000 +0100
@@ -0,0 +1,59 @@
+/******************************************************************************
@@ -89287,8 +89474,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/io/xenbus.h linux-2.6.18-xen/include/xen/interface/io/xenbus.h
---- linux-2.6.18/include/xen/interface/io/xenbus.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/io/xenbus.h linux-2.6.18-xen/include/xen/interface/io/xenbus.h
+--- linux-2.6.18.3/include/xen/interface/io/xenbus.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/io/xenbus.h 2006-11-19 14:27:16.000000000 +0100
@@ -0,0 +1,45 @@
+/*****************************************************************************
@@ -89336,8 +89523,8 @@
+typedef enum xenbus_state XenbusState;
+
+#endif /* _XEN_PUBLIC_IO_XENBUS_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/io/xs_wire.h linux-2.6.18-xen/include/xen/interface/io/xs_wire.h
---- linux-2.6.18/include/xen/interface/io/xs_wire.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/io/xs_wire.h linux-2.6.18-xen/include/xen/interface/io/xs_wire.h
+--- linux-2.6.18.3/include/xen/interface/io/xs_wire.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/io/xs_wire.h 2006-11-19 14:27:16.000000000 +0100
@@ -0,0 +1,97 @@
+/*
@@ -89437,8 +89624,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/memory.h linux-2.6.18-xen/include/xen/interface/memory.h
---- linux-2.6.18/include/xen/interface/memory.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/memory.h linux-2.6.18-xen/include/xen/interface/memory.h
+--- linux-2.6.18.3/include/xen/interface/memory.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/memory.h 2006-11-19 14:27:16.000000000 +0100
@@ -0,0 +1,243 @@
+/******************************************************************************
@@ -89684,8 +89871,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/nmi.h linux-2.6.18-xen/include/xen/interface/nmi.h
---- linux-2.6.18/include/xen/interface/nmi.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/nmi.h linux-2.6.18-xen/include/xen/interface/nmi.h
+--- linux-2.6.18.3/include/xen/interface/nmi.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/nmi.h 2006-11-19 14:27:16.000000000 +0100
@@ -0,0 +1,60 @@
+/******************************************************************************
@@ -89748,8 +89935,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/physdev.h linux-2.6.18-xen/include/xen/interface/physdev.h
---- linux-2.6.18/include/xen/interface/physdev.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/physdev.h linux-2.6.18-xen/include/xen/interface/physdev.h
+--- linux-2.6.18.3/include/xen/interface/physdev.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/physdev.h 2006-11-19 14:27:16.000000000 +0100
@@ -0,0 +1,149 @@
+
@@ -89901,8 +90088,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/platform.h linux-2.6.18-xen/include/xen/interface/platform.h
---- linux-2.6.18/include/xen/interface/platform.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/platform.h linux-2.6.18-xen/include/xen/interface/platform.h
+--- linux-2.6.18.3/include/xen/interface/platform.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/platform.h 2006-11-19 14:27:16.000000000 +0100
@@ -0,0 +1,125 @@
+/******************************************************************************
@@ -90030,8 +90217,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/sched.h linux-2.6.18-xen/include/xen/interface/sched.h
---- linux-2.6.18/include/xen/interface/sched.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/sched.h linux-2.6.18-xen/include/xen/interface/sched.h
+--- linux-2.6.18.3/include/xen/interface/sched.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/sched.h 2006-11-19 14:27:16.000000000 +0100
@@ -0,0 +1,103 @@
+/******************************************************************************
@@ -90137,8 +90324,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/sysctl.h linux-2.6.18-xen/include/xen/interface/sysctl.h
---- linux-2.6.18/include/xen/interface/sysctl.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/sysctl.h linux-2.6.18-xen/include/xen/interface/sysctl.h
+--- linux-2.6.18.3/include/xen/interface/sysctl.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/sysctl.h 2006-11-19 14:27:16.000000000 +0100
@@ -0,0 +1,151 @@
+/******************************************************************************
@@ -90292,8 +90479,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/trace.h linux-2.6.18-xen/include/xen/interface/trace.h
---- linux-2.6.18/include/xen/interface/trace.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/trace.h linux-2.6.18-xen/include/xen/interface/trace.h
+--- linux-2.6.18.3/include/xen/interface/trace.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/trace.h 2006-11-19 14:27:16.000000000 +0100
@@ -0,0 +1,87 @@
+/******************************************************************************
@@ -90383,8 +90570,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/vcpu.h linux-2.6.18-xen/include/xen/interface/vcpu.h
---- linux-2.6.18/include/xen/interface/vcpu.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/vcpu.h linux-2.6.18-xen/include/xen/interface/vcpu.h
+--- linux-2.6.18.3/include/xen/interface/vcpu.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/vcpu.h 2006-11-19 14:27:16.000000000 +0100
@@ -0,0 +1,121 @@
+/******************************************************************************
@@ -90508,8 +90695,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/version.h linux-2.6.18-xen/include/xen/interface/version.h
---- linux-2.6.18/include/xen/interface/version.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/version.h linux-2.6.18-xen/include/xen/interface/version.h
+--- linux-2.6.18.3/include/xen/interface/version.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/version.h 2006-11-19 14:27:16.000000000 +0100
@@ -0,0 +1,73 @@
+/******************************************************************************
@@ -90585,8 +90772,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/xencomm.h linux-2.6.18-xen/include/xen/interface/xencomm.h
---- linux-2.6.18/include/xen/interface/xencomm.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/xencomm.h linux-2.6.18-xen/include/xen/interface/xencomm.h
+--- linux-2.6.18.3/include/xen/interface/xencomm.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/xencomm.h 2006-11-19 14:27:16.000000000 +0100
@@ -0,0 +1,37 @@
+/*
@@ -90626,8 +90813,8 @@
+};
+
+#endif /* _XEN_XENCOMM_H_ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/xen-compat.h linux-2.6.18-xen/include/xen/interface/xen-compat.h
---- linux-2.6.18/include/xen/interface/xen-compat.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/xen-compat.h linux-2.6.18-xen/include/xen/interface/xen-compat.h
+--- linux-2.6.18.3/include/xen/interface/xen-compat.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/xen-compat.h 2006-11-19 14:27:16.000000000 +0100
@@ -0,0 +1,26 @@
+/******************************************************************************
@@ -90656,8 +90843,8 @@
+#endif
+
+#endif /* __XEN_PUBLIC_XEN_COMPAT_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/xen.h linux-2.6.18-xen/include/xen/interface/xen.h
---- linux-2.6.18/include/xen/interface/xen.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/xen.h linux-2.6.18-xen/include/xen/interface/xen.h
+--- linux-2.6.18.3/include/xen/interface/xen.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/xen.h 2006-11-19 14:27:16.000000000 +0100
@@ -0,0 +1,581 @@
+/******************************************************************************
@@ -91241,8 +91428,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/interface/xenoprof.h linux-2.6.18-xen/include/xen/interface/xenoprof.h
---- linux-2.6.18/include/xen/interface/xenoprof.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/interface/xenoprof.h linux-2.6.18-xen/include/xen/interface/xenoprof.h
+--- linux-2.6.18.3/include/xen/interface/xenoprof.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/interface/xenoprof.h 2006-11-19 14:27:16.000000000 +0100
@@ -0,0 +1,110 @@
+/******************************************************************************
@@ -91355,8 +91542,8 @@
+ * indent-tabs-mode: nil
+ * End:
+ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/pcifront.h linux-2.6.18-xen/include/xen/pcifront.h
---- linux-2.6.18/include/xen/pcifront.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/pcifront.h linux-2.6.18-xen/include/xen/pcifront.h
+--- linux-2.6.18.3/include/xen/pcifront.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/pcifront.h 2006-11-19 14:27:16.000000000 +0100
@@ -0,0 +1,76 @@
+/*
@@ -91435,8 +91622,8 @@
+#endif /* __KERNEL__ */
+
+#endif /* __XEN_ASM_PCIFRONT_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/public/evtchn.h linux-2.6.18-xen/include/xen/public/evtchn.h
---- linux-2.6.18/include/xen/public/evtchn.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/public/evtchn.h linux-2.6.18-xen/include/xen/public/evtchn.h
+--- linux-2.6.18.3/include/xen/public/evtchn.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/public/evtchn.h 2006-11-19 14:27:16.000000000 +0100
@@ -0,0 +1,88 @@
+/******************************************************************************
@@ -91527,8 +91714,8 @@
+ _IOC(_IOC_NONE, 'E', 5, 0)
+
+#endif /* __LINUX_PUBLIC_EVTCHN_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/public/privcmd.h linux-2.6.18-xen/include/xen/public/privcmd.h
---- linux-2.6.18/include/xen/public/privcmd.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/public/privcmd.h linux-2.6.18-xen/include/xen/public/privcmd.h
+--- linux-2.6.18.3/include/xen/public/privcmd.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/public/privcmd.h 2006-11-19 14:27:16.000000000 +0100
@@ -0,0 +1,79 @@
+/******************************************************************************
@@ -91610,8 +91797,8 @@
+ _IOC(_IOC_NONE, 'P', 3, sizeof(privcmd_mmapbatch_t))
+
+#endif /* __LINUX_PUBLIC_PRIVCMD_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/xenbus.h linux-2.6.18-xen/include/xen/xenbus.h
---- linux-2.6.18/include/xen/xenbus.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/xenbus.h linux-2.6.18-xen/include/xen/xenbus.h
+--- linux-2.6.18.3/include/xen/xenbus.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/xenbus.h 2006-11-19 14:27:16.000000000 +0100
@@ -0,0 +1,306 @@
+/******************************************************************************
@@ -91920,8 +92107,8 @@
+int xenbus_frontend_closed(struct xenbus_device *dev);
+
+#endif /* _XEN_XENBUS_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/xencons.h linux-2.6.18-xen/include/xen/xencons.h
---- linux-2.6.18/include/xen/xencons.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/xencons.h linux-2.6.18-xen/include/xen/xencons.h
+--- linux-2.6.18.3/include/xen/xencons.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/xencons.h 2006-11-19 14:27:16.000000000 +0100
@@ -0,0 +1,17 @@
+#ifndef __ASM_XENCONS_H__
@@ -91941,8 +92128,8 @@
+int xencons_ring_send(const char *data, unsigned len);
+
+#endif /* __ASM_XENCONS_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/include/xen/xen_proc.h linux-2.6.18-xen/include/xen/xen_proc.h
---- linux-2.6.18/include/xen/xen_proc.h 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/include/xen/xen_proc.h linux-2.6.18-xen/include/xen/xen_proc.h
+--- linux-2.6.18.3/include/xen/xen_proc.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/include/xen/xen_proc.h 2006-11-19 14:27:16.000000000 +0100
@@ -0,0 +1,12 @@
+
@@ -91957,8 +92144,8 @@
+ const char *name);
+
+#endif /* __ASM_XEN_PROC_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18/kernel/fork.c linux-2.6.18-xen/kernel/fork.c
---- linux-2.6.18/kernel/fork.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/kernel/fork.c linux-2.6.18-xen/kernel/fork.c
+--- linux-2.6.18.3/kernel/fork.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/kernel/fork.c 2006-11-19 14:27:16.000000000 +0100
@@ -276,6 +276,9 @@
if (retval)
@@ -91970,8 +92157,19 @@
retval = 0;
out:
up_write(&mm->mmap_sem);
-diff -urN -x .hg -x .hgtags linux-2.6.18/kernel/Kconfig.preempt linux-2.6.18-xen/kernel/Kconfig.preempt
---- linux-2.6.18/kernel/Kconfig.preempt 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/kernel/irq/manage.c linux-2.6.18-xen/kernel/irq/manage.c
+--- linux-2.6.18.3/kernel/irq/manage.c 2006-09-20 05:42:06.000000000 +0200
++++ linux-2.6.18-xen/kernel/irq/manage.c 2006-12-05 18:42:37.000000000 +0100
+@@ -350,7 +350,6 @@
+ struct irqaction **p;
+ unsigned long flags;
+
+- WARN_ON(in_interrupt());
+ if (irq >= NR_IRQS)
+ return;
+
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/kernel/Kconfig.preempt linux-2.6.18-xen/kernel/Kconfig.preempt
+--- linux-2.6.18.3/kernel/Kconfig.preempt 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/kernel/Kconfig.preempt 2006-11-19 14:27:16.000000000 +0100
@@ -35,6 +35,7 @@
@@ -91981,8 +92179,8 @@
help
This option reduces the latency of the kernel by making
all kernel code (that is not executing in a critical section)
-diff -urN -x .hg -x .hgtags linux-2.6.18/lib/Kconfig.debug linux-2.6.18-xen/lib/Kconfig.debug
---- linux-2.6.18/lib/Kconfig.debug 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/lib/Kconfig.debug linux-2.6.18-xen/lib/Kconfig.debug
+--- linux-2.6.18.3/lib/Kconfig.debug 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/lib/Kconfig.debug 2006-11-19 14:27:16.000000000 +0100
@@ -325,7 +325,7 @@
@@ -91993,8 +92191,8 @@
depends on !MODULES || !(MIPS || PPC || SUPERH || V850)
help
If you say Y here the resulting kernel image will be slightly larger
-diff -urN -x .hg -x .hgtags linux-2.6.18/lib/Makefile linux-2.6.18-xen/lib/Makefile
---- linux-2.6.18/lib/Makefile 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/lib/Makefile linux-2.6.18-xen/lib/Makefile
+--- linux-2.6.18.3/lib/Makefile 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/lib/Makefile 2006-11-19 14:27:16.000000000 +0100
@@ -52,6 +52,9 @@
obj-$(CONFIG_AUDIT_GENERIC) += audit.o
@@ -92006,8 +92204,8 @@
hostprogs-y := gen_crc32table
clean-files := crc32table.h
-diff -urN -x .hg -x .hgtags linux-2.6.18/mm/highmem.c linux-2.6.18-xen/mm/highmem.c
---- linux-2.6.18/mm/highmem.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/mm/highmem.c linux-2.6.18-xen/mm/highmem.c
+--- linux-2.6.18.3/mm/highmem.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/mm/highmem.c 2006-11-19 14:27:16.000000000 +0100
@@ -142,6 +142,17 @@
return vaddr;
@@ -92027,8 +92225,8 @@
void fastcall *kmap_high(struct page *page)
{
unsigned long vaddr;
-diff -urN -x .hg -x .hgtags linux-2.6.18/mm/Kconfig linux-2.6.18-xen/mm/Kconfig
---- linux-2.6.18/mm/Kconfig 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/mm/Kconfig linux-2.6.18-xen/mm/Kconfig
+--- linux-2.6.18.3/mm/Kconfig 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/mm/Kconfig 2006-11-19 14:27:16.000000000 +0100
@@ -116,7 +116,6 @@
config MEMORY_HOTPLUG
@@ -92053,9 +92251,9 @@
default "4"
#
-diff -urN -x .hg -x .hgtags linux-2.6.18/mm/memory.c linux-2.6.18-xen/mm/memory.c
---- linux-2.6.18/mm/memory.c 2006-09-20 05:42:06.000000000 +0200
-+++ linux-2.6.18-xen/mm/memory.c 2006-11-19 14:27:16.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/mm/memory.c linux-2.6.18-xen/mm/memory.c
+--- linux-2.6.18.3/mm/memory.c 2006-12-06 09:06:09.000000000 +0100
++++ linux-2.6.18-xen/mm/memory.c 2006-12-05 18:42:37.000000000 +0100
@@ -403,7 +403,8 @@
* and that the resulting page looks ok.
*/
@@ -92066,7 +92264,15 @@
return NULL;
}
-@@ -1030,6 +1031,26 @@
+@@ -891,6 +892,7 @@
+ tlb_finish_mmu(tlb, address, end);
+ return end;
+ }
++EXPORT_SYMBOL(zap_page_range);
+
+ /*
+ * Do a quick page-table lookup for a single page.
+@@ -1030,6 +1032,26 @@
continue;
}
@@ -92093,7 +92299,7 @@
if (!vma || (vma->vm_flags & (VM_IO | VM_PFNMAP))
|| !(vm_flags & vma->vm_flags))
return i ? : -EFAULT;
-@@ -1369,6 +1390,102 @@
+@@ -1369,6 +1391,102 @@
}
EXPORT_SYMBOL(remap_pfn_range);
@@ -92196,8 +92402,8 @@
/*
* handle_pte_fault chooses page fault handler according to an entry
* which was read non-atomically. Before making any commitment, on
-diff -urN -x .hg -x .hgtags linux-2.6.18/mm/mmap.c linux-2.6.18-xen/mm/mmap.c
---- linux-2.6.18/mm/mmap.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/mm/mmap.c linux-2.6.18-xen/mm/mmap.c
+--- linux-2.6.18.3/mm/mmap.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/mm/mmap.c 2006-11-19 14:27:16.000000000 +0100
@@ -1963,6 +1963,10 @@
unsigned long nr_accounted = 0;
@@ -92210,9 +92416,9 @@
lru_add_drain();
flush_cache_mm(mm);
tlb = tlb_gather_mmu(mm, 1);
-diff -urN -x .hg -x .hgtags linux-2.6.18/mm/page_alloc.c linux-2.6.18-xen/mm/page_alloc.c
---- linux-2.6.18/mm/page_alloc.c 2006-09-20 05:42:06.000000000 +0200
-+++ linux-2.6.18-xen/mm/page_alloc.c 2006-11-19 14:27:16.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/mm/page_alloc.c linux-2.6.18-xen/mm/page_alloc.c
+--- linux-2.6.18.3/mm/page_alloc.c 2006-12-06 09:06:09.000000000 +0100
++++ linux-2.6.18-xen/mm/page_alloc.c 2006-12-05 18:42:37.000000000 +0100
@@ -443,7 +443,8 @@
int i;
int reserved = 0;
@@ -92233,9 +92439,9 @@
if (PageAnon(page))
page->mapping = NULL;
-diff -urN -x .hg -x .hgtags linux-2.6.18/net/core/dev.c linux-2.6.18-xen/net/core/dev.c
---- linux-2.6.18/net/core/dev.c 2006-09-20 05:42:06.000000000 +0200
-+++ linux-2.6.18-xen/net/core/dev.c 2006-11-19 14:27:17.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/net/core/dev.c linux-2.6.18-xen/net/core/dev.c
+--- linux-2.6.18.3/net/core/dev.c 2006-12-06 09:06:10.000000000 +0100
++++ linux-2.6.18-xen/net/core/dev.c 2006-12-05 18:42:37.000000000 +0100
@@ -118,6 +118,12 @@
#include <linux/err.h>
#include <linux/ctype.h>
@@ -92306,7 +92512,7 @@
/* GSO will handle the following emulations directly. */
if (netif_needs_gso(dev, skb))
goto gso;
-@@ -1796,6 +1845,19 @@
+@@ -1798,6 +1847,19 @@
}
#endif
@@ -92326,7 +92532,7 @@
list_for_each_entry_rcu(ptype, &ptype_all, list) {
if (!ptype->dev || ptype->dev == skb->dev) {
if (pt_prev)
-@@ -3582,6 +3644,7 @@
+@@ -3584,6 +3646,7 @@
EXPORT_SYMBOL(net_enable_timestamp);
EXPORT_SYMBOL(net_disable_timestamp);
EXPORT_SYMBOL(dev_get_flags);
@@ -92334,9 +92540,9 @@
#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
EXPORT_SYMBOL(br_handle_frame_hook);
-diff -urN -x .hg -x .hgtags linux-2.6.18/net/core/skbuff.c linux-2.6.18-xen/net/core/skbuff.c
---- linux-2.6.18/net/core/skbuff.c 2006-09-20 05:42:06.000000000 +0200
-+++ linux-2.6.18-xen/net/core/skbuff.c 2006-11-19 14:27:17.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/net/core/skbuff.c linux-2.6.18-xen/net/core/skbuff.c
+--- linux-2.6.18.3/net/core/skbuff.c 2006-12-06 09:06:10.000000000 +0100
++++ linux-2.6.18-xen/net/core/skbuff.c 2006-12-05 18:42:37.000000000 +0100
@@ -139,6 +139,7 @@
* Buffers may only be allocated from interrupts using a @gfp_mask of
* %GFP_ATOMIC.
@@ -92353,7 +92559,7 @@
/**
* alloc_skb_from_cache - allocate a network buffer
-@@ -210,14 +212,18 @@
+@@ -210,14 +212,17 @@
*/
struct sk_buff *alloc_skb_from_cache(kmem_cache_t *cp,
unsigned int size,
@@ -92362,7 +92568,6 @@
+ int fclone)
{
+ kmem_cache_t *cache;
-+ struct skb_shared_info *shinfo;
struct sk_buff *skb;
u8 *data;
@@ -92375,26 +92580,11 @@
if (!skb)
goto out;
-@@ -234,17 +240,29 @@
- skb->data = data;
- skb->tail = data;
- skb->end = data + size;
-+ /* make sure we initialize shinfo sequentially */
-+ shinfo = skb_shinfo(skb);
-+ atomic_set(&shinfo->dataref, 1);
-+ shinfo->nr_frags = 0;
-+ shinfo->gso_size = 0;
-+ shinfo->gso_segs = 0;
-+ shinfo->gso_type = 0;
-+ shinfo->ip6_frag_id = 0;
-+ shinfo->frag_list = NULL;
-
-- atomic_set(&(skb_shinfo(skb)->dataref), 1);
-- skb_shinfo(skb)->nr_frags = 0;
-- skb_shinfo(skb)->gso_size = 0;
-- skb_shinfo(skb)->gso_segs = 0;
-- skb_shinfo(skb)->gso_type = 0;
-- skb_shinfo(skb)->frag_list = NULL;
+@@ -241,10 +246,20 @@
+ skb_shinfo(skb)->gso_segs = 0;
+ skb_shinfo(skb)->gso_type = 0;
+ skb_shinfo(skb)->frag_list = NULL;
++
+ if (fclone) {
+ struct sk_buff *child = skb + 1;
+ atomic_t *fclone_ref = (atomic_t *) (child + 1);
@@ -92412,7 +92602,7 @@
skb = NULL;
goto out;
}
-@@ -464,6 +482,10 @@
+@@ -464,6 +479,10 @@
C(local_df);
n->cloned = 1;
n->nohdr = 0;
@@ -92423,8 +92613,8 @@
C(pkt_type);
C(ip_summed);
C(priority);
-diff -urN -x .hg -x .hgtags linux-2.6.18/net/ipv4/netfilter/ip_nat_proto_tcp.c linux-2.6.18-xen/net/ipv4/netfilter/ip_nat_proto_tcp.c
---- linux-2.6.18/net/ipv4/netfilter/ip_nat_proto_tcp.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/net/ipv4/netfilter/ip_nat_proto_tcp.c linux-2.6.18-xen/net/ipv4/netfilter/ip_nat_proto_tcp.c
+--- linux-2.6.18.3/net/ipv4/netfilter/ip_nat_proto_tcp.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/net/ipv4/netfilter/ip_nat_proto_tcp.c 2006-11-19 14:27:18.000000000 +0100
@@ -129,7 +129,12 @@
if (hdrsize < sizeof(*hdr))
@@ -92440,8 +92630,8 @@
ip_nat_cheat_check(oldport ^ 0xFFFF,
newport,
hdr->check));
-diff -urN -x .hg -x .hgtags linux-2.6.18/net/ipv4/netfilter/ip_nat_proto_udp.c linux-2.6.18-xen/net/ipv4/netfilter/ip_nat_proto_udp.c
---- linux-2.6.18/net/ipv4/netfilter/ip_nat_proto_udp.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/net/ipv4/netfilter/ip_nat_proto_udp.c linux-2.6.18-xen/net/ipv4/netfilter/ip_nat_proto_udp.c
+--- linux-2.6.18.3/net/ipv4/netfilter/ip_nat_proto_udp.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/net/ipv4/netfilter/ip_nat_proto_udp.c 2006-11-19 14:27:18.000000000 +0100
@@ -114,7 +114,12 @@
portptr = &hdr->dest;
@@ -92457,8 +92647,8 @@
ip_nat_cheat_check(*portptr ^ 0xFFFF,
newport,
hdr->check));
-diff -urN -x .hg -x .hgtags linux-2.6.18/net/ipv4/xfrm4_output.c linux-2.6.18-xen/net/ipv4/xfrm4_output.c
---- linux-2.6.18/net/ipv4/xfrm4_output.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/net/ipv4/xfrm4_output.c linux-2.6.18-xen/net/ipv4/xfrm4_output.c
+--- linux-2.6.18.3/net/ipv4/xfrm4_output.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/net/ipv4/xfrm4_output.c 2006-11-19 14:27:18.000000000 +0100
@@ -18,6 +18,8 @@
#include <net/xfrm.h>
@@ -92480,8 +92670,8 @@
if (skb->ip_summed == CHECKSUM_HW) {
err = skb_checksum_help(skb, 0);
if (err)
-diff -urN -x .hg -x .hgtags linux-2.6.18/net/ipv6/addrconf.c linux-2.6.18-xen/net/ipv6/addrconf.c
---- linux-2.6.18/net/ipv6/addrconf.c 2006-09-20 05:42:06.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/net/ipv6/addrconf.c linux-2.6.18-xen/net/ipv6/addrconf.c
+--- linux-2.6.18.3/net/ipv6/addrconf.c 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6.18-xen/net/ipv6/addrconf.c 2006-11-19 14:27:18.000000000 +0100
@@ -2514,6 +2514,7 @@
spin_lock_bh(&ifp->lock);
@@ -92499,8 +92689,8 @@
(ipv6_addr_type(&ifp->addr) & IPV6_ADDR_LINKLOCAL)) {
struct in6_addr all_routers;
-diff -urN -x .hg -x .hgtags linux-2.6.18/scripts/Makefile.xen linux-2.6.18-xen/scripts/Makefile.xen
---- linux-2.6.18/scripts/Makefile.xen 1970-01-01 01:00:00.000000000 +0100
+diff -urN -x .hg -x .hgtags linux-2.6.18.3/scripts/Makefile.xen linux-2.6.18-xen/scripts/Makefile.xen
+--- linux-2.6.18.3/scripts/Makefile.xen 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-xen/scripts/Makefile.xen 2006-11-19 14:27:19.000000000 +0100
@@ -0,0 +1,14 @@
+
Modified: dists/sid/linux-2.6/debian/patches/series/9-extra
==============================================================================
--- dists/sid/linux-2.6/debian/patches/series/9-extra (original)
+++ dists/sid/linux-2.6/debian/patches/series/9-extra Sun Dec 31 22:28:20 2006
@@ -1,7 +1,7 @@
+ features/all/vserver/vs2.0.2.2-rc9.patch *_vserver *_xen-vserver
+ features/all/vserver/bindmount-dev.patch *_vserver *_xen-vserver
+ features/all/xen/vserver-clash.patch *_xen-vserver
-+ features/all/xen/fedora-2.6.18-36156.patch *_xen *_xen-vserver
++ features/all/xen/fedora-2.6.18-36186.patch *_xen *_xen-vserver
+ features/all/xen/vserver-update.patch *_xen-vserver
+ m68k-atari-net.patch m68k
+ m68k-atari-video2.patch m68k
More information about the Kernel-svn-changes
mailing list