[kernel] r7329 - in dists/trunk/linux-2.6/debian/patches: . series

Bastian Blank waldi at costa.debian.org
Tue Sep 5 08:17:00 UTC 2006


Author: waldi
Date: Tue Sep  5 08:16:58 2006
New Revision: 7329

Added:
   dists/trunk/linux-2.6/debian/patches/xen-fedora-35901.patch
      - copied, changed from r7284, /dists/trunk/linux-2.6/debian/patches/xen-fedora-35757.patch
Removed:
   dists/trunk/linux-2.6/debian/patches/xen-fedora-35757.patch
   dists/trunk/linux-2.6/debian/patches/xen-tls.patch
Modified:
   dists/trunk/linux-2.6/debian/patches/series/0experimental.1-extra

Log:
* debian/patches/series/0experimental.1-extra: Update.
* debian/patches/xen-fedora-35757.patch, debian/patches/xen-tls.patch: Remove.
* debian/patches/xen-fedora-35901.patch: Add.


Modified: dists/trunk/linux-2.6/debian/patches/series/0experimental.1-extra
==============================================================================
--- dists/trunk/linux-2.6/debian/patches/series/0experimental.1-extra	(original)
+++ dists/trunk/linux-2.6/debian/patches/series/0experimental.1-extra	Tue Sep  5 08:16:58 2006
@@ -1 +1 @@
-+ xen-fedora-35757.patch *_xen *_xen-vserver
++ xen-fedora-35901.patch *_xen *_xen-vserver

Copied: dists/trunk/linux-2.6/debian/patches/xen-fedora-35901.patch (from r7284, /dists/trunk/linux-2.6/debian/patches/xen-fedora-35757.patch)
==============================================================================
--- /dists/trunk/linux-2.6/debian/patches/xen-fedora-35757.patch	(original)
+++ dists/trunk/linux-2.6/debian/patches/xen-fedora-35901.patch	Tue Sep  5 08:16:58 2006
@@ -1,685 +1,6 @@
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/arm/common/sa1111.c linux-2.6.18-rc5-xen/arch/arm/common/sa1111.c
---- linux-2.6.18-rc5/arch/arm/common/sa1111.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/arm/common/sa1111.c	2006-09-01 00:09:08.000000000 +0200
-@@ -618,7 +618,7 @@
- {
- 	struct sa1111 *sachip;
- 	unsigned long id;
--	unsigned int has_devs, val;
-+	unsigned int has_devs;
- 	int i, ret = -ENODEV;
- 
- 	sachip = kzalloc(sizeof(struct sa1111), GFP_KERNEL);
-@@ -669,6 +669,9 @@
- 	sa1111_wake(sachip);
- 
- #ifdef CONFIG_ARCH_SA1100
-+	{
-+	unsigned int val;
-+
- 	/*
- 	 * The SDRAM configuration of the SA1110 and the SA1111 must
- 	 * match.  This is very important to ensure that SA1111 accesses
-@@ -692,6 +695,7 @@
- 	 * Enable the SA1110 memory bus request and grant signals.
- 	 */
- 	sa1110_mb_enable();
-+	}
- #endif
- 
- 	/*
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/arm/kernel/isa.c linux-2.6.18-rc5-xen/arch/arm/kernel/isa.c
---- linux-2.6.18-rc5/arch/arm/kernel/isa.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/arm/kernel/isa.c	2006-09-01 00:09:08.000000000 +0200
-@@ -3,21 +3,14 @@
-  *
-  *  Copyright (C) 1999 Phil Blundell
-  *
-- *  ISA shared memory and I/O port support
-- */
--
--/*
-  * This program is free software; you can redistribute it and/or
-  * modify it under the terms of the GNU General Public License
-  * as published by the Free Software Foundation; either version
-  * 2 of the License, or (at your option) any later version.
-+ *
-+ *  ISA shared memory and I/O port support, and is required to support
-+ *  iopl, inb, outb and friends in userspace via glibc emulation.
-  */
--
--/* 
-- * Nothing about this is actually ARM specific.  One day we could move
-- * it into kernel/resource.c or some place like that.  
-- */
--
- #include <linux/stddef.h>
- #include <linux/types.h>
- #include <linux/fs.h>
-@@ -27,21 +20,49 @@
- static unsigned int isa_membase, isa_portbase, isa_portshift;
- 
- static ctl_table ctl_isa_vars[4] = {
--	{BUS_ISA_MEM_BASE, "membase", &isa_membase, 
--	 sizeof(isa_membase), 0444, NULL, &proc_dointvec},
--	{BUS_ISA_PORT_BASE, "portbase", &isa_portbase, 
--	 sizeof(isa_portbase), 0444, NULL, &proc_dointvec},
--	{BUS_ISA_PORT_SHIFT, "portshift", &isa_portshift, 
--	 sizeof(isa_portshift), 0444, NULL, &proc_dointvec},
--	{0}
-+	{
-+		.ctl_name	= BUS_ISA_MEM_BASE,
-+		.procname	= "membase",
-+		.data		= &isa_membase, 
-+		.maxlen		= sizeof(isa_membase),
-+		.mode		= 0444,
-+		.proc_handler	= &proc_dointvec,
-+	}, {
-+		.ctl_name	= BUS_ISA_PORT_BASE,
-+		.procname	= "portbase",
-+		.data		= &isa_portbase, 
-+		.maxlen		= sizeof(isa_portbase),
-+		.mode		= 0444,
-+		.proc_handler	= &proc_dointvec,
-+	}, {
-+		.ctl_name	= BUS_ISA_PORT_SHIFT,
-+		.procname	= "portshift",
-+		.data		= &isa_portshift, 
-+		.maxlen		= sizeof(isa_portshift),
-+		.mode		= 0444,
-+		.proc_handler	= &proc_dointvec,
-+	}, {0}
- };
- 
- static struct ctl_table_header *isa_sysctl_header;
- 
--static ctl_table ctl_isa[2] = {{CTL_BUS_ISA, "isa", NULL, 0, 0555, ctl_isa_vars},
--			       {0}};
--static ctl_table ctl_bus[2] = {{CTL_BUS, "bus", NULL, 0, 0555, ctl_isa},
--			       {0}};
-+static ctl_table ctl_isa[2] = {
-+	{
-+		.ctl_name	= CTL_BUS_ISA,
-+		.procname	= "isa",
-+		.mode		= 0555,
-+		.child		= ctl_isa_vars,
-+	}, {0}
-+};
-+
-+static ctl_table ctl_bus[2] = {
-+	{
-+		.ctl_name	= CTL_BUS,
-+		.procname	= "bus",
-+		.mode		= 0555,
-+		.child		= ctl_isa,
-+	}, {0}
-+};
- 
- void __init
- register_isa_ports(unsigned int membase, unsigned int portbase, unsigned int portshift)
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/arm/kernel/Makefile linux-2.6.18-rc5-xen/arch/arm/kernel/Makefile
---- linux-2.6.18-rc5/arch/arm/kernel/Makefile	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/arm/kernel/Makefile	2006-09-01 00:09:08.000000000 +0200
-@@ -13,12 +13,11 @@
- obj-$(CONFIG_APM)		+= apm.o
- obj-$(CONFIG_ISA_DMA_API)	+= dma.o
- obj-$(CONFIG_ARCH_ACORN)	+= ecard.o 
--obj-$(CONFIG_FOOTBRIDGE)	+= isa.o
- obj-$(CONFIG_FIQ)		+= fiq.o
- obj-$(CONFIG_MODULES)		+= armksyms.o module.o
- obj-$(CONFIG_ARTHUR)		+= arthur.o
- obj-$(CONFIG_ISA_DMA)		+= dma-isa.o
--obj-$(CONFIG_PCI)		+= bios32.o
-+obj-$(CONFIG_PCI)		+= bios32.o isa.o
- obj-$(CONFIG_SMP)		+= smp.o
- obj-$(CONFIG_OABI_COMPAT)	+= sys_oabi-compat.o
- 
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/arm/mach-footbridge/dc21285.c linux-2.6.18-rc5-xen/arch/arm/mach-footbridge/dc21285.c
---- linux-2.6.18-rc5/arch/arm/mach-footbridge/dc21285.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/arm/mach-footbridge/dc21285.c	2006-09-01 00:09:08.000000000 +0200
-@@ -35,7 +35,6 @@
- 
- extern int setup_arm_irq(int, struct irqaction *);
- extern void pcibios_report_status(u_int status_mask, int warn);
--extern void register_isa_ports(unsigned int, unsigned int, unsigned int);
- 
- static unsigned long
- dc21285_base_address(struct pci_bus *bus, unsigned int devfn)
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/arm/mach-integrator/pci_v3.c linux-2.6.18-rc5-xen/arch/arm/mach-integrator/pci_v3.c
---- linux-2.6.18-rc5/arch/arm/mach-integrator/pci_v3.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/arm/mach-integrator/pci_v3.c	2006-09-01 00:09:08.000000000 +0200
-@@ -600,4 +600,6 @@
- 		printk(KERN_ERR "PCI: unable to grab local bus timeout "
- 		       "interrupt: %d\n", ret);
- #endif
-+
-+	register_isa_ports(PHYS_PCI_MEM_BASE, PHYS_PCI_IO_BASE, 0);
- }
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/arm/mach-pxa/corgi_ssp.c linux-2.6.18-rc5-xen/arch/arm/mach-pxa/corgi_ssp.c
---- linux-2.6.18-rc5/arch/arm/mach-pxa/corgi_ssp.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/arm/mach-pxa/corgi_ssp.c	2006-09-01 00:09:08.000000000 +0200
-@@ -47,14 +47,15 @@
-  */
- unsigned long corgi_ssp_ads7846_putget(ulong data)
- {
--	unsigned long ret,flag;
-+	unsigned long flag;
-+	u32 ret = 0;
- 
- 	spin_lock_irqsave(&corgi_ssp_lock, flag);
- 	if (ssp_machinfo->cs_ads7846 >= 0)
- 		GPCR(ssp_machinfo->cs_ads7846) = GPIO_bit(ssp_machinfo->cs_ads7846);
- 
- 	ssp_write_word(&corgi_ssp_dev,data);
--	ret = ssp_read_word(&corgi_ssp_dev);
-+ 	ssp_read_word(&corgi_ssp_dev, &ret);
- 
- 	if (ssp_machinfo->cs_ads7846 >= 0)
- 		GPSR(ssp_machinfo->cs_ads7846) = GPIO_bit(ssp_machinfo->cs_ads7846);
-@@ -88,7 +89,9 @@
- 
- unsigned long corgi_ssp_ads7846_get(void)
- {
--	return ssp_read_word(&corgi_ssp_dev);
-+	u32 ret = 0;
-+	ssp_read_word(&corgi_ssp_dev, &ret);
-+	return ret;
- }
- 
- EXPORT_SYMBOL(corgi_ssp_ads7846_putget);
-@@ -104,6 +107,7 @@
- unsigned long corgi_ssp_dac_put(ulong data)
- {
- 	unsigned long flag, sscr1 = SSCR1_SPH;
-+	u32 tmp;
- 
- 	spin_lock_irqsave(&corgi_ssp_lock, flag);
- 
-@@ -118,7 +122,7 @@
- 		GPCR(ssp_machinfo->cs_lcdcon) = GPIO_bit(ssp_machinfo->cs_lcdcon);
- 	ssp_write_word(&corgi_ssp_dev,data);
- 	/* Read null data back from device to prevent SSP overflow */
--	ssp_read_word(&corgi_ssp_dev);
-+	ssp_read_word(&corgi_ssp_dev, &tmp);
- 	if (ssp_machinfo->cs_lcdcon >= 0)
- 		GPSR(ssp_machinfo->cs_lcdcon) = GPIO_bit(ssp_machinfo->cs_lcdcon);
- 
-@@ -150,7 +154,7 @@
- int corgi_ssp_max1111_get(ulong data)
- {
- 	unsigned long flag;
--	int voltage,voltage1,voltage2;
-+	long voltage = 0, voltage1 = 0, voltage2 = 0;
- 
- 	spin_lock_irqsave(&corgi_ssp_lock, flag);
- 	if (ssp_machinfo->cs_max1111 >= 0)
-@@ -163,15 +167,15 @@
- 
- 	/* TB1/RB1 */
- 	ssp_write_word(&corgi_ssp_dev,data);
--	ssp_read_word(&corgi_ssp_dev); /* null read */
-+	ssp_read_word(&corgi_ssp_dev, (u32*)&voltage1); /* null read */
- 
- 	/* TB12/RB2 */
- 	ssp_write_word(&corgi_ssp_dev,0);
--	voltage1=ssp_read_word(&corgi_ssp_dev);
-+	ssp_read_word(&corgi_ssp_dev, (u32*)&voltage1);
- 
- 	/* TB13/RB3*/
- 	ssp_write_word(&corgi_ssp_dev,0);
--	voltage2=ssp_read_word(&corgi_ssp_dev);
-+	ssp_read_word(&corgi_ssp_dev, (u32*)&voltage2);
- 
- 	ssp_disable(&corgi_ssp_dev);
- 	ssp_config(&corgi_ssp_dev, (SSCR0_National | (SSCR0_DSS & 0x0b )), 0, 0, SSCR0_SerClkDiv(ssp_machinfo->clk_ads7846));
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/arm/mach-pxa/ssp.c linux-2.6.18-rc5-xen/arch/arm/mach-pxa/ssp.c
---- linux-2.6.18-rc5/arch/arm/mach-pxa/ssp.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/arm/mach-pxa/ssp.c	2006-09-01 00:09:08.000000000 +0200
-@@ -40,6 +40,8 @@
- 
- #define PXA_SSP_PORTS 	3
- 
-+#define TIMEOUT 100000
-+
- struct ssp_info_ {
- 	int irq;
- 	u32 clock;
-@@ -92,13 +94,18 @@
-  * The caller is expected to perform the necessary locking.
-  *
-  * Returns:
-- *   %-ETIMEDOUT	timeout occurred (for future)
-+ *   %-ETIMEDOUT	timeout occurred
-  *   0			success
-  */
- int ssp_write_word(struct ssp_dev *dev, u32 data)
- {
--	while (!(SSSR_P(dev->port) & SSSR_TNF))
-+	int timeout = TIMEOUT;
-+
-+	while (!(SSSR_P(dev->port) & SSSR_TNF)) {
-+	        if (!--timeout)
-+	        	return -ETIMEDOUT;
- 		cpu_relax();
-+	}
- 
- 	SSDR_P(dev->port) = data;
- 
-@@ -117,15 +124,21 @@
-  * The caller is expected to perform the necessary locking.
-  *
-  * Returns:
-- *   %-ETIMEDOUT	timeout occurred (for future)
-+ *   %-ETIMEDOUT	timeout occurred
-  *   32-bit data	success
-  */
--int ssp_read_word(struct ssp_dev *dev)
-+int ssp_read_word(struct ssp_dev *dev, u32 *data)
- {
--	while (!(SSSR_P(dev->port) & SSSR_RNE))
-+	int timeout = TIMEOUT;
-+
-+	while (!(SSSR_P(dev->port) & SSSR_RNE)) {
-+	        if (!--timeout)
-+	        	return -ETIMEDOUT;
- 		cpu_relax();
-+	}
- 
--	return SSDR_P(dev->port);
-+	*data = SSDR_P(dev->port);
-+	return 0;
- }
- 
- /**
-@@ -136,13 +149,21 @@
-  *
-  * The caller is expected to perform the necessary locking.
-  */
--void ssp_flush(struct ssp_dev *dev)
-+int ssp_flush(struct ssp_dev *dev)
- {
-+	int timeout = TIMEOUT * 2;
-+
- 	do {
- 		while (SSSR_P(dev->port) & SSSR_RNE) {
-+		        if (!--timeout)
-+		        	return -ETIMEDOUT;
- 			(void) SSDR_P(dev->port);
- 		}
-+	        if (!--timeout)
-+	        	return -ETIMEDOUT;
- 	} while (SSSR_P(dev->port) & SSSR_BSY);
-+
-+	return 0;
- }
- 
- /**
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/arm/mach-sa1100/ssp.c linux-2.6.18-rc5-xen/arch/arm/mach-sa1100/ssp.c
---- linux-2.6.18-rc5/arch/arm/mach-sa1100/ssp.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/arm/mach-sa1100/ssp.c	2006-09-01 00:09:08.000000000 +0200
-@@ -23,6 +23,8 @@
- #include <asm/hardware.h>
- #include <asm/hardware/ssp.h>
- 
-+#define TIMEOUT 100000
-+
- static irqreturn_t ssp_interrupt(int irq, void *dev_id, struct pt_regs *regs)
- {
- 	unsigned int status = Ser4SSSR;
-@@ -47,18 +49,27 @@
-  * The caller is expected to perform the necessary locking.
-  *
-  * Returns:
-- *   %-ETIMEDOUT	timeout occurred (for future)
-+ *   %-ETIMEDOUT	timeout occurred
-  *   0			success
-  */
- int ssp_write_word(u16 data)
- {
--	while (!(Ser4SSSR & SSSR_TNF))
-+	int timeout = TIMEOUT;
-+
-+	while (!(Ser4SSSR & SSSR_TNF)) {
-+	        if (!--timeout)
-+	        	return -ETIMEDOUT;
- 		cpu_relax();
-+	}
- 
- 	Ser4SSDR = data;
- 
--	while (!(Ser4SSSR & SSSR_BSY))
-+	timeout = TIMEOUT;
-+	while (!(Ser4SSSR & SSSR_BSY)) {
-+	        if (!--timeout)
-+	        	return -ETIMEDOUT;
- 		cpu_relax();
-+	}
- 
- 	return 0;
- }
-@@ -75,15 +86,22 @@
-  * The caller is expected to perform the necessary locking.
-  *
-  * Returns:
-- *   %-ETIMEDOUT	timeout occurred (for future)
-+ *   %-ETIMEDOUT	timeout occurred
-  *   16-bit data	success
-  */
--int ssp_read_word(void)
-+int ssp_read_word(u16 *data)
- {
--	while (!(Ser4SSSR & SSSR_RNE))
-+	int timeout = TIMEOUT;
-+
-+	while (!(Ser4SSSR & SSSR_RNE)) {
-+	        if (!--timeout)
-+	        	return -ETIMEDOUT;
- 		cpu_relax();
-+	}
-+
-+	*data = (u16)Ser4SSDR;
- 
--	return Ser4SSDR;
-+	return 0;
- }
- 
- /**
-@@ -93,14 +111,26 @@
-  * is empty.
-  *
-  * The caller is expected to perform the necessary locking.
-+ *
-+ * Returns:
-+ *   %-ETIMEDOUT	timeout occurred
-+ *   0			success
-  */
--void ssp_flush(void)
-+int ssp_flush(void)
- {
-+	int timeout = TIMEOUT * 2;
-+
- 	do {
- 		while (Ser4SSSR & SSSR_RNE) {
-+		        if (!--timeout)
-+		        	return -ETIMEDOUT;
- 			(void) Ser4SSDR;
- 		}
-+	        if (!--timeout)
-+	        	return -ETIMEDOUT;
- 	} while (Ser4SSSR & SSSR_BSY);
-+
-+	return 0;
- }
- 
- /**
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/arm/Makefile linux-2.6.18-rc5-xen/arch/arm/Makefile
---- linux-2.6.18-rc5/arch/arm/Makefile	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/arm/Makefile	2006-09-01 00:09:08.000000000 +0200
-@@ -47,7 +47,8 @@
- # testing for a specific architecture or later rather impossible.
- arch-$(CONFIG_CPU_32v6)		:=-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6,-march=armv5t -Wa$(comma)-march=armv6)
- arch-$(CONFIG_CPU_32v6K)	:=-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6k,-march=armv5t -Wa$(comma)-march=armv6k)
--arch-$(CONFIG_CPU_32v5)		:=-D__LINUX_ARM_ARCH__=5 $(call cc-option,-march=armv5te,-march=armv4)
-+arch-$(CONFIG_CPU_32v5)		:=-D__LINUX_ARM_ARCH__=5 $(call cc-option,-march=armv5te,-march=armv4t)
-+arch-$(CONFIG_CPU_32v4T)	:=-D__LINUX_ARM_ARCH__=4 -march=armv4t
- arch-$(CONFIG_CPU_32v4)		:=-D__LINUX_ARM_ARCH__=4 -march=armv4
- arch-$(CONFIG_CPU_32v3)		:=-D__LINUX_ARM_ARCH__=3 -march=armv3
- 
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/arm/mm/Kconfig linux-2.6.18-rc5-xen/arch/arm/mm/Kconfig
---- linux-2.6.18-rc5/arch/arm/mm/Kconfig	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/arm/mm/Kconfig	2006-09-01 00:09:08.000000000 +0200
-@@ -46,7 +46,7 @@
- config CPU_ARM720T
- 	bool "Support ARM720T processor" if !ARCH_CLPS711X && !ARCH_L7200 && !ARCH_CDB89712 && ARCH_INTEGRATOR
- 	default y if ARCH_CLPS711X || ARCH_L7200 || ARCH_CDB89712 || ARCH_H720X
--	select CPU_32v4
-+	select CPU_32v4T
- 	select CPU_ABRT_LV4T
- 	select CPU_CACHE_V4
- 	select CPU_CACHE_VIVT
-@@ -64,7 +64,7 @@
- 	bool "Support ARM920T processor"
- 	depends on ARCH_EP93XX || ARCH_INTEGRATOR || CPU_S3C2410 || CPU_S3C2440 || CPU_S3C2442 || ARCH_IMX || ARCH_AAEC2000 || ARCH_AT91RM9200
- 	default y if CPU_S3C2410 || CPU_S3C2440 || CPU_S3C2442 || ARCH_AT91RM9200
--	select CPU_32v4
-+	select CPU_32v4T
- 	select CPU_ABRT_EV4T
- 	select CPU_CACHE_V4WT
- 	select CPU_CACHE_VIVT
-@@ -85,7 +85,7 @@
- 	bool "Support ARM922T processor" if ARCH_INTEGRATOR
- 	depends on ARCH_LH7A40X || ARCH_INTEGRATOR
- 	default y if ARCH_LH7A40X
--	select CPU_32v4
-+	select CPU_32v4T
- 	select CPU_ABRT_EV4T
- 	select CPU_CACHE_V4WT
- 	select CPU_CACHE_VIVT
-@@ -104,7 +104,7 @@
-  	bool "Support ARM925T processor" if ARCH_OMAP1
-  	depends on ARCH_OMAP15XX
-  	default y if ARCH_OMAP15XX
--	select CPU_32v4
-+	select CPU_32v4T
- 	select CPU_ABRT_EV4T
- 	select CPU_CACHE_V4WT
- 	select CPU_CACHE_VIVT
-@@ -285,6 +285,11 @@
- 	select TLS_REG_EMUL if SMP || !MMU
- 	select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
- 
-+config CPU_32v4T
-+	bool
-+	select TLS_REG_EMUL if SMP || !MMU
-+	select NEEDS_SYSCALL_FOR_CMPXCHG if SMP
-+
- config CPU_32v5
- 	bool
- 	select TLS_REG_EMUL if SMP || !MMU
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/arm/vfp/vfpdouble.c linux-2.6.18-rc5-xen/arch/arm/vfp/vfpdouble.c
---- linux-2.6.18-rc5/arch/arm/vfp/vfpdouble.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/arm/vfp/vfpdouble.c	2006-09-01 00:09:08.000000000 +0200
-@@ -465,7 +465,7 @@
- 	 */
- 	if (tm & (VFP_INFINITY|VFP_NAN)) {
- 		vsd.exponent = 255;
--		if (tm & VFP_NAN)
-+		if (tm == VFP_QNAN)
- 			vsd.significand |= VFP_SINGLE_SIGNIFICAND_QNAN;
- 		goto pack_nan;
- 	} else if (tm & VFP_ZERO)
-@@ -1127,7 +1127,7 @@
- {
- 	u32 op = inst & FOP_MASK;
- 	u32 exceptions = 0;
--	unsigned int dd = vfp_get_dd(inst);
-+	unsigned int dest;
- 	unsigned int dn = vfp_get_dn(inst);
- 	unsigned int dm = vfp_get_dm(inst);
- 	unsigned int vecitr, veclen, vecstride;
-@@ -1137,10 +1137,20 @@
- 	vecstride = (1 + ((fpscr & FPSCR_STRIDE_MASK) == FPSCR_STRIDE_MASK)) * 2;
- 
- 	/*
-+	 * fcvtds takes an sN register number as destination, not dN.
-+	 * It also always operates on scalars.
-+	 */
-+	if ((inst & FEXT_MASK) == FEXT_FCVT) {
-+		veclen = 0;
-+		dest = vfp_get_sd(inst);
-+	} else
-+		dest = vfp_get_dd(inst);
-+
-+	/*
- 	 * If destination bank is zero, vector length is always '1'.
- 	 * ARM DDI0100F C5.1.3, C5.3.2.
- 	 */
--	if (FREG_BANK(dd) == 0)
-+	if (FREG_BANK(dest) == 0)
- 		veclen = 0;
- 
- 	pr_debug("VFP: vecstride=%u veclen=%u\n", vecstride,
-@@ -1153,16 +1163,20 @@
- 	for (vecitr = 0; vecitr <= veclen; vecitr += 1 << FPSCR_LENGTH_BIT) {
- 		u32 except;
- 
--		if (op == FOP_EXT)
-+		if (op == FOP_EXT && (inst & FEXT_MASK) == FEXT_FCVT)
-+			pr_debug("VFP: itr%d (s%u) = op[%u] (d%u)\n",
-+				 vecitr >> FPSCR_LENGTH_BIT,
-+				 dest, dn, dm);
-+		else if (op == FOP_EXT)
- 			pr_debug("VFP: itr%d (d%u) = op[%u] (d%u)\n",
- 				 vecitr >> FPSCR_LENGTH_BIT,
--				 dd, dn, dm);
-+				 dest, dn, dm);
- 		else
- 			pr_debug("VFP: itr%d (d%u) = (d%u) op[%u] (d%u)\n",
- 				 vecitr >> FPSCR_LENGTH_BIT,
--				 dd, dn, FOP_TO_IDX(op), dm);
-+				 dest, dn, FOP_TO_IDX(op), dm);
- 
--		except = fop(dd, dn, dm, fpscr);
-+		except = fop(dest, dn, dm, fpscr);
- 		pr_debug("VFP: itr%d: exceptions=%08x\n",
- 			 vecitr >> FPSCR_LENGTH_BIT, except);
- 
-@@ -1180,7 +1194,7 @@
- 		 * we encounter an exception.  We continue.
- 		 */
- 
--		dd = FREG_BANK(dd) + ((FREG_IDX(dd) + vecstride) & 6);
-+		dest = FREG_BANK(dest) + ((FREG_IDX(dest) + vecstride) & 6);
- 		dn = FREG_BANK(dn) + ((FREG_IDX(dn) + vecstride) & 6);
- 		if (FREG_BANK(dm) != 0)
- 			dm = FREG_BANK(dm) + ((FREG_IDX(dm) + vecstride) & 6);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/arm/vfp/vfp.h linux-2.6.18-rc5-xen/arch/arm/vfp/vfp.h
---- linux-2.6.18-rc5/arch/arm/vfp/vfp.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/arm/vfp/vfp.h	2006-09-01 00:09:08.000000000 +0200
-@@ -353,3 +353,11 @@
-  * A special flag to tell the normalisation code not to normalise.
-  */
- #define VFP_NAN_FLAG	0x100
-+
-+/*
-+ * A bit pattern used to indicate the initial (unset) value of the
-+ * exception mask, in case nothing handles an instruction.  This
-+ * doesn't include the NAN flag, which get masked out before
-+ * we check for an error.
-+ */
-+#define VFP_EXCEPTION_ERROR	((u32)-1 & ~VFP_NAN_FLAG)
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/arm/vfp/vfpmodule.c linux-2.6.18-rc5-xen/arch/arm/vfp/vfpmodule.c
---- linux-2.6.18-rc5/arch/arm/vfp/vfpmodule.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/arm/vfp/vfpmodule.c	2006-09-01 00:09:08.000000000 +0200
-@@ -131,7 +131,7 @@
- 
- 	pr_debug("VFP: raising exceptions %08x\n", exceptions);
- 
--	if (exceptions == (u32)-1) {
-+	if (exceptions == VFP_EXCEPTION_ERROR) {
- 		vfp_panic("unhandled bounce");
- 		vfp_raise_sigfpe(0, regs);
- 		return;
-@@ -170,7 +170,7 @@
-  */
- static u32 vfp_emulate_instruction(u32 inst, u32 fpscr, struct pt_regs *regs)
- {
--	u32 exceptions = (u32)-1;
-+	u32 exceptions = VFP_EXCEPTION_ERROR;
- 
- 	pr_debug("VFP: emulate: INST=0x%08x SCR=0x%08x\n", inst, fpscr);
- 
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/arm/vfp/vfpsingle.c linux-2.6.18-rc5-xen/arch/arm/vfp/vfpsingle.c
---- linux-2.6.18-rc5/arch/arm/vfp/vfpsingle.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/arm/vfp/vfpsingle.c	2006-09-01 00:09:08.000000000 +0200
-@@ -506,7 +506,7 @@
- 	 */
- 	if (tm & (VFP_INFINITY|VFP_NAN)) {
- 		vdd.exponent = 2047;
--		if (tm & VFP_NAN)
-+		if (tm == VFP_QNAN)
- 			vdd.significand |= VFP_DOUBLE_SIGNIFICAND_QNAN;
- 		goto pack_nan;
- 	} else if (tm & VFP_ZERO)
-@@ -514,10 +514,6 @@
- 	else
- 		vdd.exponent = vsm.exponent + (1023 - 127);
- 
--	/*
--	 * Technically, if bit 0 of dd is set, this is an invalid
--	 * instruction.  However, we ignore this for efficiency.
--	 */
- 	return vfp_double_normaliseround(dd, &vdd, fpscr, exceptions, "fcvtd");
- 
-  pack_nan:
-@@ -1174,7 +1170,7 @@
- {
- 	u32 op = inst & FOP_MASK;
- 	u32 exceptions = 0;
--	unsigned int sd = vfp_get_sd(inst);
-+	unsigned int dest;
- 	unsigned int sn = vfp_get_sn(inst);
- 	unsigned int sm = vfp_get_sm(inst);
- 	unsigned int vecitr, veclen, vecstride;
-@@ -1184,10 +1180,22 @@
- 	vecstride = 1 + ((fpscr & FPSCR_STRIDE_MASK) == FPSCR_STRIDE_MASK);
- 
- 	/*
-+	 * fcvtsd takes a dN register number as destination, not sN.
-+	 * Technically, if bit 0 of dd is set, this is an invalid
-+	 * instruction.  However, we ignore this for efficiency.
-+	 * It also only operates on scalars.
-+	 */
-+	if ((inst & FEXT_MASK) == FEXT_FCVT) {
-+		veclen = 0;
-+		dest = vfp_get_dd(inst);
-+	} else
-+		dest = vfp_get_sd(inst);
-+
-+	/*
- 	 * If destination bank is zero, vector length is always '1'.
- 	 * ARM DDI0100F C5.1.3, C5.3.2.
- 	 */
--	if (FREG_BANK(sd) == 0)
-+	if (FREG_BANK(dest) == 0)
- 		veclen = 0;
- 
- 	pr_debug("VFP: vecstride=%u veclen=%u\n", vecstride,
-@@ -1201,15 +1209,18 @@
- 		s32 m = vfp_get_float(sm);
- 		u32 except;
- 
--		if (op == FOP_EXT)
-+		if (op == FOP_EXT && (inst & FEXT_MASK) == FEXT_FCVT)
-+			pr_debug("VFP: itr%d (d%u) = op[%u] (s%u=%08x)\n",
-+				 vecitr >> FPSCR_LENGTH_BIT, dest, sn, sm, m);
-+		else if (op == FOP_EXT)
- 			pr_debug("VFP: itr%d (s%u) = op[%u] (s%u=%08x)\n",
--				 vecitr >> FPSCR_LENGTH_BIT, sd, sn, sm, m);
-+				 vecitr >> FPSCR_LENGTH_BIT, dest, sn, sm, m);
- 		else
- 			pr_debug("VFP: itr%d (s%u) = (s%u) op[%u] (s%u=%08x)\n",
--				 vecitr >> FPSCR_LENGTH_BIT, sd, sn,
-+				 vecitr >> FPSCR_LENGTH_BIT, dest, sn,
- 				 FOP_TO_IDX(op), sm, m);
- 
--		except = fop(sd, sn, m, fpscr);
-+		except = fop(dest, sn, m, fpscr);
- 		pr_debug("VFP: itr%d: exceptions=%08x\n",
- 			 vecitr >> FPSCR_LENGTH_BIT, except);
- 
-@@ -1227,7 +1238,7 @@
- 		 * we encounter an exception.  We continue.
- 		 */
- 
--		sd = FREG_BANK(sd) + ((FREG_IDX(sd) + vecstride) & 7);
-+		dest = FREG_BANK(dest) + ((FREG_IDX(dest) + vecstride) & 7);
- 		sn = FREG_BANK(sn) + ((FREG_IDX(sn) + vecstride) & 7);
- 		if (FREG_BANK(sm) != 0)
- 			sm = FREG_BANK(sm) + ((FREG_IDX(sm) + vecstride) & 7);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/boot-xen/Makefile linux-2.6.18-rc5-xen/arch/i386/boot-xen/Makefile
---- linux-2.6.18-rc5/arch/i386/boot-xen/Makefile	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/boot-xen/Makefile	2006-07-20 15:56:36.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/boot-xen/Makefile linux-2.6.18-rc6-xen/arch/i386/boot-xen/Makefile
+--- linux-2.6.18-rc6/arch/i386/boot-xen/Makefile	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/boot-xen/Makefile	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,21 @@
 +
 +OBJCOPYFLAGS := -g --strip-unneeded
@@ -702,9 +23,9 @@
 +	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-rc5/arch/i386/Kconfig linux-2.6.18-rc5-xen/arch/i386/Kconfig
---- linux-2.6.18-rc5/arch/i386/Kconfig	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/i386/Kconfig	2006-09-01 00:09:08.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/Kconfig linux-2.6.18-rc6-xen/arch/i386/Kconfig
+--- linux-2.6.18-rc6/arch/i386/Kconfig	2006-09-05 10:53:00.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/i386/Kconfig	2006-09-04 16:31:00.000000000 +0200
 @@ -16,6 +16,7 @@
  
  config GENERIC_TIME
@@ -985,9 +306,9 @@
  config KTIME_SCALAR
  	bool
  	default y
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/Kconfig.cpu linux-2.6.18-rc5-xen/arch/i386/Kconfig.cpu
---- linux-2.6.18-rc5/arch/i386/Kconfig.cpu	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/i386/Kconfig.cpu	2006-07-20 15:56:36.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/Kconfig.cpu linux-2.6.18-rc6-xen/arch/i386/Kconfig.cpu
+--- linux-2.6.18-rc6/arch/i386/Kconfig.cpu	2006-09-05 10:53:00.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/i386/Kconfig.cpu	2006-09-04 16:31:00.000000000 +0200
 @@ -251,7 +251,7 @@
  
  config X86_F00F_BUG
@@ -1004,9 +325,9 @@
 -	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-rc5/arch/i386/Kconfig.debug linux-2.6.18-rc5-xen/arch/i386/Kconfig.debug
---- linux-2.6.18-rc5/arch/i386/Kconfig.debug	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/i386/Kconfig.debug	2006-09-01 00:09:08.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/Kconfig.debug linux-2.6.18-rc6-xen/arch/i386/Kconfig.debug
+--- linux-2.6.18-rc6/arch/i386/Kconfig.debug	2006-09-05 10:53:00.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/i386/Kconfig.debug	2006-09-04 16:31:00.000000000 +0200
 @@ -79,6 +79,7 @@
  config DOUBLEFAULT
  	default y
@@ -1015,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-rc5/arch/i386/kernel/acpi/boot-xen.c linux-2.6.18-rc5-xen/arch/i386/kernel/acpi/boot-xen.c
---- linux-2.6.18-rc5/arch/i386/kernel/acpi/boot-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/acpi/boot-xen.c	2006-09-01 00:09:08.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/acpi/boot-xen.c linux-2.6.18-rc6-xen/arch/i386/kernel/acpi/boot-xen.c
+--- linux-2.6.18-rc6/arch/i386/kernel/acpi/boot-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/acpi/boot-xen.c	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,1168 @@
 +/*
 + *  boot.c - Architecture-Specific Low-Level ACPI Boot Support
@@ -2187,9 +1508,9 @@
 +
 +	return 0;
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/kernel/acpi/Makefile linux-2.6.18-rc5-xen/arch/i386/kernel/acpi/Makefile
---- linux-2.6.18-rc5/arch/i386/kernel/acpi/Makefile	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/acpi/Makefile	2006-07-20 15:56:36.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/acpi/Makefile linux-2.6.18-rc6-xen/arch/i386/kernel/acpi/Makefile
+--- linux-2.6.18-rc6/arch/i386/kernel/acpi/Makefile	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/acpi/Makefile	2006-09-04 16:31:00.000000000 +0200
 @@ -6,3 +6,7 @@
  obj-y				+= cstate.o processor.o
  endif
@@ -2198,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-rc5/arch/i386/kernel/alternative.c linux-2.6.18-rc5-xen/arch/i386/kernel/alternative.c
---- linux-2.6.18-rc5/arch/i386/kernel/alternative.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/alternative.c	2006-09-01 00:09:08.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/alternative.c linux-2.6.18-rc6-xen/arch/i386/kernel/alternative.c
+--- linux-2.6.18-rc6/arch/i386/kernel/alternative.c	2006-09-05 10:53:00.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/alternative.c	2006-09-04 16:31:00.000000000 +0200
 @@ -4,7 +4,11 @@
  #include <asm/alternative.h>
  #include <asm/sections.h>
@@ -2225,9 +1546,9 @@
  			DPRINTK("%s: vsyscall fixup: %p => %p\n",
  				__FUNCTION__, a->instr, instr);
  		}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/kernel/apic-xen.c linux-2.6.18-rc5-xen/arch/i386/kernel/apic-xen.c
---- linux-2.6.18-rc5/arch/i386/kernel/apic-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/apic-xen.c	2006-07-20 15:56:36.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/apic-xen.c linux-2.6.18-rc6-xen/arch/i386/kernel/apic-xen.c
+--- linux-2.6.18-rc6/arch/i386/kernel/apic-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/apic-xen.c	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,160 @@
 +/*
 + *	Local APIC handling, local APIC timers
@@ -2389,9 +1710,9 @@
 +
 +	return 0;
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/kernel/asm-offsets.c linux-2.6.18-rc5-xen/arch/i386/kernel/asm-offsets.c
---- linux-2.6.18-rc5/arch/i386/kernel/asm-offsets.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/asm-offsets.c	2006-07-31 23:43:28.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/asm-offsets.c linux-2.6.18-rc6-xen/arch/i386/kernel/asm-offsets.c
+--- linux-2.6.18-rc6/arch/i386/kernel/asm-offsets.c	2006-09-05 10:53:00.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/asm-offsets.c	2006-09-04 16:31:00.000000000 +0200
 @@ -66,9 +66,14 @@
  	OFFSET(pbe_orig_address, pbe, orig_address);
  	OFFSET(pbe_next, pbe, next);
@@ -2408,9 +1729,9 @@
  
  	DEFINE(PAGE_SIZE_asm, PAGE_SIZE);
  	DEFINE(VDSO_PRELINK, VDSO_PRELINK);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/kernel/cpu/common-xen.c linux-2.6.18-rc5-xen/arch/i386/kernel/cpu/common-xen.c
---- linux-2.6.18-rc5/arch/i386/kernel/cpu/common-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/cpu/common-xen.c	2006-09-01 00:09:08.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/cpu/common-xen.c linux-2.6.18-rc6-xen/arch/i386/kernel/cpu/common-xen.c
+--- linux-2.6.18-rc6/arch/i386/kernel/cpu/common-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/cpu/common-xen.c	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,739 @@
 +#include <linux/init.h>
 +#include <linux/string.h>
@@ -3151,9 +2472,9 @@
 +	per_cpu(cpu_tlbstate, cpu).active_mm = &init_mm;
 +}
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/kernel/cpu/Makefile linux-2.6.18-rc5-xen/arch/i386/kernel/cpu/Makefile
---- linux-2.6.18-rc5/arch/i386/kernel/cpu/Makefile	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/cpu/Makefile	2006-07-20 15:56:36.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/cpu/Makefile linux-2.6.18-rc6-xen/arch/i386/kernel/cpu/Makefile
+--- linux-2.6.18-rc6/arch/i386/kernel/cpu/Makefile	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/cpu/Makefile	2006-09-04 16:31:00.000000000 +0200
 @@ -17,3 +17,8 @@
  
  obj-$(CONFIG_MTRR)	+= 	mtrr/
@@ -3163,9 +2484,9 @@
 +include $(srctree)/scripts/Makefile.xen
 +obj-y := $(call cherrypickxen, $(obj-y), $(src))
 +endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/kernel/cpu/mtrr/main-xen.c linux-2.6.18-rc5-xen/arch/i386/kernel/cpu/mtrr/main-xen.c
---- linux-2.6.18-rc5/arch/i386/kernel/cpu/mtrr/main-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/cpu/mtrr/main-xen.c	2006-09-01 00:09:08.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/cpu/mtrr/main-xen.c linux-2.6.18-rc6-xen/arch/i386/kernel/cpu/mtrr/main-xen.c
+--- linux-2.6.18-rc6/arch/i386/kernel/cpu/mtrr/main-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/cpu/mtrr/main-xen.c	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,197 @@
 +#include <linux/init.h>
 +#include <linux/proc_fs.h>
@@ -3364,9 +2685,9 @@
 +}
 +
 +subsys_initcall(mtrr_init);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/kernel/cpu/mtrr/Makefile linux-2.6.18-rc5-xen/arch/i386/kernel/cpu/mtrr/Makefile
---- linux-2.6.18-rc5/arch/i386/kernel/cpu/mtrr/Makefile	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/cpu/mtrr/Makefile	2006-07-20 15:56:36.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/cpu/mtrr/Makefile linux-2.6.18-rc6-xen/arch/i386/kernel/cpu/mtrr/Makefile
+--- linux-2.6.18-rc6/arch/i386/kernel/cpu/mtrr/Makefile	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/cpu/mtrr/Makefile	2006-09-04 16:31:00.000000000 +0200
 @@ -3,3 +3,10 @@
  obj-y		+= cyrix.o
  obj-y		+= centaur.o
@@ -3378,15 +2699,15 @@
 +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-rc5/arch/i386/kernel/early_printk-xen.c linux-2.6.18-rc5-xen/arch/i386/kernel/early_printk-xen.c
---- linux-2.6.18-rc5/arch/i386/kernel/early_printk-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/early_printk-xen.c	2006-07-20 15:56:36.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/early_printk-xen.c linux-2.6.18-rc6-xen/arch/i386/kernel/early_printk-xen.c
+--- linux-2.6.18-rc6/arch/i386/kernel/early_printk-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/early_printk-xen.c	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,2 @@
 +
 +#include "../../x86_64/kernel/early_printk-xen.c"
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/kernel/entry.S linux-2.6.18-rc5-xen/arch/i386/kernel/entry.S
---- linux-2.6.18-rc5/arch/i386/kernel/entry.S	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/entry.S	2006-09-01 00:09:08.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/entry.S linux-2.6.18-rc6-xen/arch/i386/kernel/entry.S
+--- linux-2.6.18-rc6/arch/i386/kernel/entry.S	2006-09-05 10:53:00.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/entry.S	2006-09-04 16:31:00.000000000 +0200
 @@ -265,7 +265,7 @@
  	CFI_STARTPROC simple
  	CFI_DEF_CFA esp, 0
@@ -3414,9 +2735,9 @@
  	pushfl;					\
  	pushl $__KERNEL_CS;			\
  	pushl $sysenter_past_esp
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/kernel/entry-xen.S linux-2.6.18-rc5-xen/arch/i386/kernel/entry-xen.S
---- linux-2.6.18-rc5/arch/i386/kernel/entry-xen.S	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/entry-xen.S	2006-08-06 23:45:52.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/entry-xen.S linux-2.6.18-rc6-xen/arch/i386/kernel/entry-xen.S
+--- linux-2.6.18-rc6/arch/i386/kernel/entry-xen.S	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/entry-xen.S	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,1209 @@
 +/*
 + *  linux/arch/i386/entry.S
@@ -4627,9 +3948,9 @@
 +#include "syscall_table.S"
 +
 +syscall_table_size=(.-sys_call_table)
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/kernel/fixup.c linux-2.6.18-rc5-xen/arch/i386/kernel/fixup.c
---- linux-2.6.18-rc5/arch/i386/kernel/fixup.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/fixup.c	2006-08-14 15:07:20.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/fixup.c linux-2.6.18-rc6-xen/arch/i386/kernel/fixup.c
+--- linux-2.6.18-rc6/arch/i386/kernel/fixup.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/fixup.c	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,92 @@
 +/******************************************************************************
 + * fixup.c
@@ -4723,9 +4044,9 @@
 +	return 0;
 +}
 +__initcall(fixup_init);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/kernel/head-xen.S linux-2.6.18-rc5-xen/arch/i386/kernel/head-xen.S
---- linux-2.6.18-rc5/arch/i386/kernel/head-xen.S	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/head-xen.S	2006-09-01 00:09:08.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/head-xen.S linux-2.6.18-rc6-xen/arch/i386/kernel/head-xen.S
+--- linux-2.6.18-rc6/arch/i386/kernel/head-xen.S	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/head-xen.S	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,200 @@
 +
 +
@@ -4927,9 +4248,9 @@
 +	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-rc5/arch/i386/kernel/init_task-xen.c linux-2.6.18-rc5-xen/arch/i386/kernel/init_task-xen.c
---- linux-2.6.18-rc5/arch/i386/kernel/init_task-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/init_task-xen.c	2006-07-20 15:56:36.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/init_task-xen.c linux-2.6.18-rc6-xen/arch/i386/kernel/init_task-xen.c
+--- linux-2.6.18-rc6/arch/i386/kernel/init_task-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/init_task-xen.c	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,51 @@
 +#include <linux/mm.h>
 +#include <linux/module.h>
@@ -4982,9 +4303,9 @@
 +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-rc5/arch/i386/kernel/io_apic-xen.c linux-2.6.18-rc5-xen/arch/i386/kernel/io_apic-xen.c
---- linux-2.6.18-rc5/arch/i386/kernel/io_apic-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/io_apic-xen.c	2006-09-01 00:09:08.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/io_apic-xen.c linux-2.6.18-rc6-xen/arch/i386/kernel/io_apic-xen.c
+--- linux-2.6.18-rc6/arch/i386/kernel/io_apic-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/io_apic-xen.c	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,2771 @@
 +/*
 + *	Intel IO-APIC support for multi-Pentium hosts.
@@ -7757,9 +7078,9 @@
 +}
 +
 +#endif /* CONFIG_ACPI */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/kernel/ioport-xen.c linux-2.6.18-rc5-xen/arch/i386/kernel/ioport-xen.c
---- linux-2.6.18-rc5/arch/i386/kernel/ioport-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/ioport-xen.c	2006-07-20 15:56:36.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/ioport-xen.c linux-2.6.18-rc6-xen/arch/i386/kernel/ioport-xen.c
+--- linux-2.6.18-rc6/arch/i386/kernel/ioport-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/ioport-xen.c	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,121 @@
 +/*
 + *	linux/arch/i386/kernel/ioport.c
@@ -7882,9 +7203,9 @@
 +	set_iopl_mask(t->iopl);
 +	return 0;
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/kernel/irq-xen.c linux-2.6.18-rc5-xen/arch/i386/kernel/irq-xen.c
---- linux-2.6.18-rc5/arch/i386/kernel/irq-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/irq-xen.c	2006-07-20 15:56:36.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/irq-xen.c linux-2.6.18-rc6-xen/arch/i386/kernel/irq-xen.c
+--- linux-2.6.18-rc6/arch/i386/kernel/irq-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/irq-xen.c	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,324 @@
 +/*
 + *	linux/arch/i386/kernel/irq.c
@@ -8210,9 +7531,9 @@
 +}
 +#endif
 +
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/kernel/ldt-xen.c linux-2.6.18-rc5-xen/arch/i386/kernel/ldt-xen.c
---- linux-2.6.18-rc5/arch/i386/kernel/ldt-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/ldt-xen.c	2006-08-14 15:07:20.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/ldt-xen.c linux-2.6.18-rc6-xen/arch/i386/kernel/ldt-xen.c
+--- linux-2.6.18-rc6/arch/i386/kernel/ldt-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/ldt-xen.c	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,270 @@
 +/*
 + * linux/kernel/ldt.c
@@ -8484,9 +7805,9 @@
 +	}
 +	return ret;
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/kernel/Makefile linux-2.6.18-rc5-xen/arch/i386/kernel/Makefile
---- linux-2.6.18-rc5/arch/i386/kernel/Makefile	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/Makefile	2006-09-01 00:09:08.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/Makefile linux-2.6.18-rc6-xen/arch/i386/kernel/Makefile
+--- linux-2.6.18-rc6/arch/i386/kernel/Makefile	2006-09-05 10:53:00.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/Makefile	2006-09-04 16:31:00.000000000 +0200
 @@ -45,6 +45,12 @@
  
  obj-$(CONFIG_SCx200)		+= scx200.o
@@ -8530,9 +7851,9 @@
 +obj-y := $(call cherrypickxen, $(obj-y))
 +extra-y := $(call cherrypickxen, $(extra-y))
 +endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/kernel/microcode-xen.c linux-2.6.18-rc5-xen/arch/i386/kernel/microcode-xen.c
---- linux-2.6.18-rc5/arch/i386/kernel/microcode-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/microcode-xen.c	2006-07-20 15:56:36.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/microcode-xen.c linux-2.6.18-rc6-xen/arch/i386/kernel/microcode-xen.c
+--- linux-2.6.18-rc6/arch/i386/kernel/microcode-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/microcode-xen.c	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,147 @@
 +/*
 + *	Intel CPU Microcode Update Driver for Linux
@@ -8681,9 +8002,9 @@
 +module_init(microcode_init)
 +module_exit(microcode_exit)
 +MODULE_ALIAS_MISCDEV(MICROCODE_MINOR);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/kernel/mpparse-xen.c linux-2.6.18-rc5-xen/arch/i386/kernel/mpparse-xen.c
---- linux-2.6.18-rc5/arch/i386/kernel/mpparse-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/mpparse-xen.c	2006-08-14 15:07:20.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/mpparse-xen.c linux-2.6.18-rc6-xen/arch/i386/kernel/mpparse-xen.c
+--- linux-2.6.18-rc6/arch/i386/kernel/mpparse-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/mpparse-xen.c	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,1185 @@
 +/*
 + *	Intel Multiprocessor Specification 1.1 and 1.4
@@ -9870,9 +9191,9 @@
 +
 +#endif /* CONFIG_X86_IO_APIC */
 +#endif /* CONFIG_ACPI */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/kernel/pci-dma-xen.c linux-2.6.18-rc5-xen/arch/i386/kernel/pci-dma-xen.c
---- linux-2.6.18-rc5/arch/i386/kernel/pci-dma-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/pci-dma-xen.c	2006-09-01 00:09:08.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/pci-dma-xen.c linux-2.6.18-rc6-xen/arch/i386/kernel/pci-dma-xen.c
+--- linux-2.6.18-rc6/arch/i386/kernel/pci-dma-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/pci-dma-xen.c	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,379 @@
 +/*
 + * Dynamic DMA mapping support.
@@ -10253,9 +9574,9 @@
 +		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-rc5/arch/i386/kernel/process-xen.c linux-2.6.18-rc5-xen/arch/i386/kernel/process-xen.c
---- linux-2.6.18-rc5/arch/i386/kernel/process-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/process-xen.c	2006-09-01 00:09:08.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/process-xen.c linux-2.6.18-rc6-xen/arch/i386/kernel/process-xen.c
+--- linux-2.6.18-rc6/arch/i386/kernel/process-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/process-xen.c	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,812 @@
 +/*
 + *  linux/arch/i386/kernel/process.c
@@ -11069,9 +10390,9 @@
 +		sp -= get_random_int() % 8192;
 +	return sp & ~0xf;
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/kernel/quirks-xen.c linux-2.6.18-rc5-xen/arch/i386/kernel/quirks-xen.c
---- linux-2.6.18-rc5/arch/i386/kernel/quirks-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/quirks-xen.c	2006-08-14 15:07:20.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/quirks-xen.c linux-2.6.18-rc6-xen/arch/i386/kernel/quirks-xen.c
+--- linux-2.6.18-rc6/arch/i386/kernel/quirks-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/quirks-xen.c	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,47 @@
 +/*
 + * This file contains work-arounds for x86 and x86_64 platform bugs.
@@ -11120,10 +10441,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-rc5/arch/i386/kernel/setup-xen.c linux-2.6.18-rc5-xen/arch/i386/kernel/setup-xen.c
---- linux-2.6.18-rc5/arch/i386/kernel/setup-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/setup-xen.c	2006-09-01 00:09:08.000000000 +0200
-@@ -0,0 +1,1845 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/setup-xen.c linux-2.6.18-rc6-xen/arch/i386/kernel/setup-xen.c
+--- linux-2.6.18-rc6/arch/i386/kernel/setup-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/setup-xen.c	2006-09-04 16:31:00.000000000 +0200
+@@ -0,0 +1,1815 @@
 +/*
 + *  linux/arch/i386/kernel/setup.c
 + *
@@ -12131,38 +11452,6 @@
 +	return 0;
 +}
 +
-+ /*
-+  * This function checks if the entire range <start,end> is mapped with type.
-+  *
-+  * Note: this function only works correct if the e820 table is sorted and
-+  * not-overlapping, which is the case
-+  */
-+int __init
-+e820_all_mapped(unsigned long s, unsigned long e, unsigned type)
-+{
-+	u64 start = s;
-+	u64 end = e;
-+	int i;
-+	for (i = 0; i < e820.nr_map; i++) {
-+		struct e820entry *ei = &e820.map[i];
-+		if (type && ei->type != type)
-+			continue;
-+		/* is the region (part) in overlap with the current region ?*/
-+		if (ei->addr >= end || ei->addr + ei->size <= start)
-+			continue;
-+		/* if the region is at the beginning of <start,end> we move
-+		 * start to the end of the region since it's ok until there
-+		 */
-+		if (ei->addr <= start)
-+			start = ei->addr + ei->size;
-+		/* if start is now at or beyond end, we're done, full
-+		 * coverage */
-+		if (start >= end)
-+			return 1; /* we're done */
-+	}
-+	return 0;
-+}
-+
 +/*
 + * Find the highest page frame number we have available
 + */
@@ -12544,8 +11833,10 @@
 +			 *  so we try it repeatedly and let the resource manager
 +			 *  test it.
 +			 */
++#ifndef CONFIG_XEN
 +			request_resource(res, code_resource);
 +			request_resource(res, data_resource);
++#endif
 +#ifdef CONFIG_KEXEC
 +			request_resource(res, &crashk_res);
 +#endif
@@ -12969,9 +12260,9 @@
 + * c-basic-offset:8
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/kernel/smp-xen.c linux-2.6.18-rc5-xen/arch/i386/kernel/smp-xen.c
---- linux-2.6.18-rc5/arch/i386/kernel/smp-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/smp-xen.c	2006-07-20 15:56:36.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/smp-xen.c linux-2.6.18-rc6-xen/arch/i386/kernel/smp-xen.c
+--- linux-2.6.18-rc6/arch/i386/kernel/smp-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/smp-xen.c	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,624 @@
 +/*
 + *	Intel SMP support routines.
@@ -13597,9 +12888,9 @@
 +	return IRQ_HANDLED;
 +}
 +
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/kernel/swiotlb.c linux-2.6.18-rc5-xen/arch/i386/kernel/swiotlb.c
---- linux-2.6.18-rc5/arch/i386/kernel/swiotlb.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/swiotlb.c	2006-09-01 00:09:08.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/swiotlb.c linux-2.6.18-rc6-xen/arch/i386/kernel/swiotlb.c
+--- linux-2.6.18-rc6/arch/i386/kernel/swiotlb.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/swiotlb.c	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,672 @@
 +/*
 + * Dynamic DMA mapping support.
@@ -14273,9 +13564,9 @@
 +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-rc5/arch/i386/kernel/sysenter.c linux-2.6.18-rc5-xen/arch/i386/kernel/sysenter.c
---- linux-2.6.18-rc5/arch/i386/kernel/sysenter.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/sysenter.c	2006-07-31 23:43:28.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/sysenter.c linux-2.6.18-rc6-xen/arch/i386/kernel/sysenter.c
+--- linux-2.6.18-rc6/arch/i386/kernel/sysenter.c	2006-09-05 10:53:00.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/sysenter.c	2006-09-04 16:31:00.000000000 +0200
 @@ -23,6 +23,10 @@
  #include <asm/pgtable.h>
  #include <asm/unistd.h>
@@ -14335,9 +13626,9 @@
  
  	if (!boot_cpu_has(X86_FEATURE_SEP)) {
  		memcpy(syscall_page,
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/kernel/time-xen.c linux-2.6.18-rc5-xen/arch/i386/kernel/time-xen.c
---- linux-2.6.18-rc5/arch/i386/kernel/time-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/time-xen.c	2006-09-01 00:09:08.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/time-xen.c linux-2.6.18-rc6-xen/arch/i386/kernel/time-xen.c
+--- linux-2.6.18-rc6/arch/i386/kernel/time-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/time-xen.c	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,1101 @@
 +/*
 + *  linux/arch/i386/kernel/time.c
@@ -15440,10 +14731,10 @@
 +	return 0;
 +}
 +__initcall(xen_sysctl_init);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/kernel/traps.c linux-2.6.18-rc5-xen/arch/i386/kernel/traps.c
---- linux-2.6.18-rc5/arch/i386/kernel/traps.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/traps.c	2006-09-01 00:09:09.000000000 +0200
-@@ -639,18 +639,11 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/traps.c linux-2.6.18-rc6-xen/arch/i386/kernel/traps.c
+--- linux-2.6.18-rc6/arch/i386/kernel/traps.c	2006-09-05 10:53:00.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/traps.c	2006-09-04 16:31:00.000000000 +0200
+@@ -642,18 +642,11 @@
  
  static void io_check_error(unsigned char reason, struct pt_regs * regs)
  {
@@ -15463,10 +14754,10 @@
  }
  
  static void unknown_nmi_error(unsigned char reason, struct pt_regs * regs)
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/kernel/traps-xen.c linux-2.6.18-rc5-xen/arch/i386/kernel/traps-xen.c
---- linux-2.6.18-rc5/arch/i386/kernel/traps-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/traps-xen.c	2006-09-01 00:09:09.000000000 +0200
-@@ -0,0 +1,1180 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/traps-xen.c linux-2.6.18-rc6-xen/arch/i386/kernel/traps-xen.c
+--- linux-2.6.18-rc6/arch/i386/kernel/traps-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/traps-xen.c	2006-09-04 16:31:00.000000000 +0200
+@@ -0,0 +1,1184 @@
 +/*
 + *  linux/arch/i386/traps.c
 + *
@@ -15567,7 +14858,11 @@
 +asmlinkage void machine_check(void);
 +
 +static int kstack_depth_to_print = 24;
++#ifdef CONFIG_STACK_UNWIND
 +static int call_trace = 1;
++#else
++#define call_trace (-1)
++#endif
 +ATOMIC_NOTIFIER_HEAD(i386die_chain);
 +
 +int register_die_notifier(struct notifier_block *nb)
@@ -15662,22 +14957,20 @@
 +			if (unwind_init_blocked(&info, task) == 0)
 +				unw_ret = show_trace_unwind(&info, log_lvl);
 +		}
-+		if (unw_ret > 0 && !arch_unw_user_mode(&info)) {
-+#ifdef CONFIG_STACK_UNWIND
-+			print_symbol("DWARF2 unwinder stuck at %s\n",
-+				     UNW_PC(&info));
-+			if (call_trace == 1) {
-+				printk("Leftover inexact backtrace:\n");
-+				if (UNW_SP(&info))
++		if (unw_ret > 0) {
++			if (call_trace == 1 && !arch_unw_user_mode(&info)) {
++				print_symbol("DWARF2 unwinder stuck at %s\n",
++					     UNW_PC(&info));
++				if (UNW_SP(&info) >= PAGE_OFFSET) {
++					printk("Leftover inexact backtrace:\n");
 +					stack = (void *)UNW_SP(&info);
-+			} else if (call_trace > 1)
++				} else
++					printk("Full inexact backtrace again:\n");
++			} else if (call_trace >= 1)
 +				return;
-+			else
++		} else
 +				printk("Full inexact backtrace again:\n");
-+#else
 +			printk("Inexact backtrace:\n");
-+#endif
-+		}
 +	}
 +
 +	if (task == current) {
@@ -16634,6 +15927,7 @@
 +}
 +__setup("kstack=", kstack_setup);
 +
++#ifdef CONFIG_STACK_UNWIND
 +static int __init call_trace_setup(char *s)
 +{
 +	if (strcmp(s, "old") == 0)
@@ -16647,9 +15941,10 @@
 +	return 1;
 +}
 +__setup("call_trace=", call_trace_setup);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/kernel/tsc.c linux-2.6.18-rc5-xen/arch/i386/kernel/tsc.c
---- linux-2.6.18-rc5/arch/i386/kernel/tsc.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/tsc.c	2006-07-31 23:43:28.000000000 +0200
++#endif
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/tsc.c linux-2.6.18-rc6-xen/arch/i386/kernel/tsc.c
+--- linux-2.6.18-rc6/arch/i386/kernel/tsc.c	2006-09-05 10:53:00.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/tsc.c	2006-09-04 16:31:00.000000000 +0200
 @@ -101,6 +101,7 @@
  	return (cyc * cyc2ns_scale) >> CYC2NS_SCALE_FACTOR;
  }
@@ -16666,9 +15961,9 @@
  
  static unsigned long calculate_cpu_khz(void)
  {
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/kernel/vm86.c linux-2.6.18-rc5-xen/arch/i386/kernel/vm86.c
---- linux-2.6.18-rc5/arch/i386/kernel/vm86.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/vm86.c	2006-07-20 15:56:36.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/vm86.c linux-2.6.18-rc6-xen/arch/i386/kernel/vm86.c
+--- linux-2.6.18-rc6/arch/i386/kernel/vm86.c	2006-09-05 10:53:01.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/vm86.c	2006-09-04 16:31:00.000000000 +0200
 @@ -97,7 +97,9 @@
  struct pt_regs * FASTCALL(save_v86_state(struct kernel_vm86_regs * regs));
  struct pt_regs * fastcall save_v86_state(struct kernel_vm86_regs * regs)
@@ -16723,9 +16018,9 @@
  
  	tsk->thread.screen_bitmap = info->screen_bitmap;
  	if (info->flags & VM86_SCREEN_BITMAP)
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/kernel/vmlinux.lds.S linux-2.6.18-rc5-xen/arch/i386/kernel/vmlinux.lds.S
---- linux-2.6.18-rc5/arch/i386/kernel/vmlinux.lds.S	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/vmlinux.lds.S	2006-09-01 00:09:09.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/vmlinux.lds.S linux-2.6.18-rc6-xen/arch/i386/kernel/vmlinux.lds.S
+--- linux-2.6.18-rc6/arch/i386/kernel/vmlinux.lds.S	2006-09-05 10:53:01.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/vmlinux.lds.S	2006-09-04 16:31:00.000000000 +0200
 @@ -13,6 +13,12 @@
  OUTPUT_ARCH(i386)
  ENTRY(phys_startup_32)
@@ -16764,9 +16059,9 @@
 +
 +  NOTES
  }
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/kernel/vsyscall-note-xen.S linux-2.6.18-rc5-xen/arch/i386/kernel/vsyscall-note-xen.S
---- linux-2.6.18-rc5/arch/i386/kernel/vsyscall-note-xen.S	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/kernel/vsyscall-note-xen.S	2006-07-20 15:56:36.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/kernel/vsyscall-note-xen.S linux-2.6.18-rc6-xen/arch/i386/kernel/vsyscall-note-xen.S
+--- linux-2.6.18-rc6/arch/i386/kernel/vsyscall-note-xen.S	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/kernel/vsyscall-note-xen.S	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,32 @@
 +/*
 + * This supplies .note.* sections to go into the PT_NOTE inside the vDSO text.
@@ -16800,9 +16095,9 @@
 +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-rc5/arch/i386/lib/delay.c linux-2.6.18-rc5-xen/arch/i386/lib/delay.c
---- linux-2.6.18-rc5/arch/i386/lib/delay.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/i386/lib/delay.c	2006-07-20 15:56:36.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/lib/delay.c linux-2.6.18-rc6-xen/arch/i386/lib/delay.c
+--- linux-2.6.18-rc6/arch/i386/lib/delay.c	2006-09-05 10:53:01.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/i386/lib/delay.c	2006-09-04 16:31:00.000000000 +0200
 @@ -61,6 +61,7 @@
  	delay_fn = delay_tsc;
  }
@@ -16820,9 +16115,9 @@
  void __delay(unsigned long loops)
  {
  	delay_fn(loops);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/mach-xen/irqflags.c linux-2.6.18-rc5-xen/arch/i386/mach-xen/irqflags.c
---- linux-2.6.18-rc5/arch/i386/mach-xen/irqflags.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/mach-xen/irqflags.c	2006-09-01 00:09:09.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/mach-xen/irqflags.c linux-2.6.18-rc6-xen/arch/i386/mach-xen/irqflags.c
+--- linux-2.6.18-rc6/arch/i386/mach-xen/irqflags.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/mach-xen/irqflags.c	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,99 @@
 +#include <linux/module.h>
 +#include <linux/smp.h>
@@ -16923,18 +16218,18 @@
 +	return flags;
 +}
 +EXPORT_SYMBOL(__raw_local_irq_save);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/mach-xen/Makefile linux-2.6.18-rc5-xen/arch/i386/mach-xen/Makefile
---- linux-2.6.18-rc5/arch/i386/mach-xen/Makefile	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/mach-xen/Makefile	2006-09-01 00:09:09.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/mach-xen/Makefile linux-2.6.18-rc6-xen/arch/i386/mach-xen/Makefile
+--- linux-2.6.18-rc6/arch/i386/mach-xen/Makefile	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/mach-xen/Makefile	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,5 @@
 +#
 +# Makefile for the linux kernel.
 +#
 +
 +obj-y				:= setup.o irqflags.o
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/mach-xen/setup.c linux-2.6.18-rc5-xen/arch/i386/mach-xen/setup.c
---- linux-2.6.18-rc5/arch/i386/mach-xen/setup.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/mach-xen/setup.c	2006-08-14 15:07:20.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/mach-xen/setup.c linux-2.6.18-rc6-xen/arch/i386/mach-xen/setup.c
+--- linux-2.6.18-rc6/arch/i386/mach-xen/setup.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/mach-xen/setup.c	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,153 @@
 +/*
 + *	Machine specific setup for generic
@@ -17089,9 +16384,9 @@
 +void __init pre_setup_arch_hook(void)
 +{
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/Makefile linux-2.6.18-rc5-xen/arch/i386/Makefile
---- linux-2.6.18-rc5/arch/i386/Makefile	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/i386/Makefile	2006-07-20 15:56:36.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/Makefile linux-2.6.18-rc6-xen/arch/i386/Makefile
+--- linux-2.6.18-rc6/arch/i386/Makefile	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/i386/Makefile	2006-09-04 16:31:00.000000000 +0200
 @@ -48,6 +48,11 @@
  
  CFLAGS += $(cflags-y)
@@ -17148,9 +16443,9 @@
  	       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-rc5/arch/i386/mm/fault-xen.c linux-2.6.18-rc5-xen/arch/i386/mm/fault-xen.c
---- linux-2.6.18-rc5/arch/i386/mm/fault-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/mm/fault-xen.c	2006-07-20 15:56:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/mm/fault-xen.c linux-2.6.18-rc6-xen/arch/i386/mm/fault-xen.c
+--- linux-2.6.18-rc6/arch/i386/mm/fault-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/mm/fault-xen.c	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,770 @@
 +/*
 + *  linux/arch/i386/mm/fault.c
@@ -17922,9 +17217,9 @@
 +	}
 +}
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/mm/highmem-xen.c linux-2.6.18-rc5-xen/arch/i386/mm/highmem-xen.c
---- linux-2.6.18-rc5/arch/i386/mm/highmem-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/mm/highmem-xen.c	2006-07-20 15:56:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/mm/highmem-xen.c linux-2.6.18-rc6-xen/arch/i386/mm/highmem-xen.c
+--- linux-2.6.18-rc6/arch/i386/mm/highmem-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/mm/highmem-xen.c	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,133 @@
 +#include <linux/highmem.h>
 +#include <linux/module.h>
@@ -18059,9 +17354,9 @@
 +EXPORT_SYMBOL(kmap_atomic);
 +EXPORT_SYMBOL(kunmap_atomic);
 +EXPORT_SYMBOL(kmap_atomic_to_page);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/mm/hypervisor.c linux-2.6.18-rc5-xen/arch/i386/mm/hypervisor.c
---- linux-2.6.18-rc5/arch/i386/mm/hypervisor.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/mm/hypervisor.c	2006-08-14 15:07:20.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/mm/hypervisor.c linux-2.6.18-rc6-xen/arch/i386/mm/hypervisor.c
+--- linux-2.6.18-rc6/arch/i386/mm/hypervisor.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/mm/hypervisor.c	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,457 @@
 +/******************************************************************************
 + * mm/hypervisor.c
@@ -18520,9 +17815,9 @@
 +		mach_lp, (u64)entry_a | ((u64)entry_b<<32));
 +}
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/mm/init-xen.c linux-2.6.18-rc5-xen/arch/i386/mm/init-xen.c
---- linux-2.6.18-rc5/arch/i386/mm/init-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/mm/init-xen.c	2006-09-01 00:09:09.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/mm/init-xen.c linux-2.6.18-rc6-xen/arch/i386/mm/init-xen.c
+--- linux-2.6.18-rc6/arch/i386/mm/init-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/mm/init-xen.c	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,851 @@
 +/*
 + *  linux/arch/i386/mm/init.c
@@ -19375,10 +18670,10 @@
 +}
 +#endif
 +
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/mm/ioremap-xen.c linux-2.6.18-rc5-xen/arch/i386/mm/ioremap-xen.c
---- linux-2.6.18-rc5/arch/i386/mm/ioremap-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/mm/ioremap-xen.c	2006-09-01 00:09:09.000000000 +0200
-@@ -0,0 +1,475 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/mm/ioremap-xen.c linux-2.6.18-rc6-xen/arch/i386/mm/ioremap-xen.c
+--- linux-2.6.18-rc6/arch/i386/mm/ioremap-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/mm/ioremap-xen.c	2006-09-04 16:31:00.000000000 +0200
+@@ -0,0 +1,439 @@
 +/*
 + * arch/i386/mm/ioremap.c
 + *
@@ -19403,15 +18698,6 @@
 +#define ISA_START_ADDRESS	0x0
 +#define ISA_END_ADDRESS		0x100000
 +
-+#if 0 /* not PAE safe */
-+/* These hacky macros avoid phys->machine translations. */
-+#define __direct_pte(x) ((pte_t) { (x) } )
-+#define __direct_mk_pte(page_nr,pgprot) \
-+  __direct_pte(((page_nr) << PAGE_SHIFT) | pgprot_val(pgprot))
-+#define direct_mk_pte_phys(physpage, pgprot) \
-+  __direct_mk_pte((physpage) >> PAGE_SHIFT, pgprot)
-+#endif
-+
 +static int direct_remap_area_pte_fn(pte_t *pte, 
 +				    struct page *pmd_page,
 +				    unsigned long address, 
@@ -19447,17 +18733,16 @@
 +
 +	for (i = 0; i < size; i += PAGE_SIZE) {
 +		if ((v - u) == (PAGE_SIZE / sizeof(mmu_update_t))) {
-+			/* Fill in the PTE pointers. */
++			/* Flush a full batch after filling in the PTE ptrs. */
 +			rc = apply_to_page_range(mm, start_address, 
 +						 address - start_address,
 +						 direct_remap_area_pte_fn, &w);
 +			if (rc)
 +				goto out;
-+			w = u;
 +			rc = -EFAULT;
 +			if (HYPERVISOR_mmu_update(u, v - u, NULL, domid) < 0)
 +				goto out;
-+			v = u;
++			v = w = u;
 +			start_address = address;
 +		}
 +
@@ -19473,7 +18758,7 @@
 +	}
 +
 +	if (v != u) {
-+		/* get the ptep's filled in */
++		/* Final batch. */
 +		rc = apply_to_page_range(mm, start_address,
 +					 address - start_address,
 +					 direct_remap_area_pte_fn, &w);
@@ -19560,32 +18845,6 @@
 +
 +EXPORT_SYMBOL(touch_pte_range);
 +
-+void *vm_map_xen_pages (unsigned long maddr, int vm_size, pgprot_t prot)
-+{
-+	int error;
-+       
-+	struct vm_struct *vma;
-+	vma = get_vm_area (vm_size, VM_IOREMAP | VM_PFNMAP);
-+      
-+	if (vma == NULL) {
-+		printk ("ioremap.c,vm_map_xen_pages(): "
-+			"Failed to get VMA area\n");
-+		return NULL;
-+	}
-+
-+	error = direct_kernel_remap_pfn_range((unsigned long) vma->addr,
-+					      maddr >> PAGE_SHIFT, vm_size,
-+					      prot, DOMID_SELF );
-+	if (error == 0) {
-+		return vma->addr;
-+	} else {
-+		printk ("ioremap.c,vm_map_xen_pages(): "
-+			"Failed to map xen shared pages into kernel space\n");
-+		return NULL;
-+	}
-+}
-+EXPORT_SYMBOL(vm_map_xen_pages);
-+
 +/*
 + * Does @address reside within a non-highmem page that is local to this virtual
 + * machine (i.e., not an I/O page, nor a memory page belonging to another VM).
@@ -19854,9 +19113,9 @@
 +		--nrpages;
 +	}
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/mm/Makefile linux-2.6.18-rc5-xen/arch/i386/mm/Makefile
---- linux-2.6.18-rc5/arch/i386/mm/Makefile	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/i386/mm/Makefile	2006-07-20 15:56:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/mm/Makefile linux-2.6.18-rc6-xen/arch/i386/mm/Makefile
+--- linux-2.6.18-rc6/arch/i386/mm/Makefile	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/i386/mm/Makefile	2006-09-04 16:31:00.000000000 +0200
 @@ -8,3 +8,11 @@
  obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o
  obj-$(CONFIG_HIGHMEM) += highmem.o
@@ -19869,9 +19128,9 @@
 +
 +obj-y := $(call cherrypickxen, $(obj-y))
 +endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/mm/pageattr.c linux-2.6.18-rc5-xen/arch/i386/mm/pageattr.c
---- linux-2.6.18-rc5/arch/i386/mm/pageattr.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/i386/mm/pageattr.c	2006-07-20 15:56:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/mm/pageattr.c linux-2.6.18-rc6-xen/arch/i386/mm/pageattr.c
+--- linux-2.6.18-rc6/arch/i386/mm/pageattr.c	2006-09-05 10:53:01.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/i386/mm/pageattr.c	2006-09-04 16:31:00.000000000 +0200
 @@ -84,7 +84,7 @@
  	unsigned long flags;
  
@@ -19881,9 +19140,9 @@
  		return;
  
  	spin_lock_irqsave(&pgd_lock, flags);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/mm/pgtable.c linux-2.6.18-rc5-xen/arch/i386/mm/pgtable.c
---- linux-2.6.18-rc5/arch/i386/mm/pgtable.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/i386/mm/pgtable.c	2006-07-20 15:56:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/mm/pgtable.c linux-2.6.18-rc6-xen/arch/i386/mm/pgtable.c
+--- linux-2.6.18-rc6/arch/i386/mm/pgtable.c	2006-09-05 10:53:01.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/i386/mm/pgtable.c	2006-09-04 16:31:00.000000000 +0200
 @@ -12,6 +12,7 @@
  #include <linux/slab.h>
  #include <linux/pagemap.h>
@@ -19917,9 +19176,9 @@
  }
  
  pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address)
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/mm/pgtable-xen.c linux-2.6.18-rc5-xen/arch/i386/mm/pgtable-xen.c
---- linux-2.6.18-rc5/arch/i386/mm/pgtable-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/mm/pgtable-xen.c	2006-08-14 15:07:20.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/mm/pgtable-xen.c linux-2.6.18-rc6-xen/arch/i386/mm/pgtable-xen.c
+--- linux-2.6.18-rc6/arch/i386/mm/pgtable-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/mm/pgtable-xen.c	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,699 @@
 +/*
 + *  linux/arch/i386/mm/pgtable.c
@@ -20620,9 +19879,9 @@
 +	    !mm->context.has_foreign_mappings)
 +		mm_unpin(mm);
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/oprofile/Makefile linux-2.6.18-rc5-xen/arch/i386/oprofile/Makefile
---- linux-2.6.18-rc5/arch/i386/oprofile/Makefile	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/i386/oprofile/Makefile	2006-07-20 15:56:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/oprofile/Makefile linux-2.6.18-rc6-xen/arch/i386/oprofile/Makefile
+--- linux-2.6.18-rc6/arch/i386/oprofile/Makefile	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/i386/oprofile/Makefile	2006-09-04 16:31:00.000000000 +0200
 @@ -6,7 +6,11 @@
  		oprofilefs.o oprofile_stats.o  \
  		timer_int.o )
@@ -20635,10 +19894,10 @@
  					   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-rc5/arch/i386/oprofile/xenoprof.c linux-2.6.18-rc5-xen/arch/i386/oprofile/xenoprof.c
---- linux-2.6.18-rc5/arch/i386/oprofile/xenoprof.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/oprofile/xenoprof.c	2006-07-31 23:43:28.000000000 +0200
-@@ -0,0 +1,555 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/oprofile/xenoprof.c linux-2.6.18-rc6-xen/arch/i386/oprofile/xenoprof.c
+--- linux-2.6.18-rc6/arch/i386/oprofile/xenoprof.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/oprofile/xenoprof.c	2006-09-04 16:31:00.000000000 +0200
+@@ -0,0 +1,570 @@
 +/**
 + * @file xenoprof.c
 + *
@@ -20675,8 +19934,6 @@
 +static int xenoprof_start(void);
 +static void xenoprof_stop(void);
 +
-+void * vm_map_xen_pages(unsigned long maddr, int vm_size, pgprot_t prot);
-+
 +static int xenoprof_enabled = 0;
 +static unsigned int num_events = 0;
 +static int is_primary = 0;
@@ -21014,9 +20271,9 @@
 +{
 +	int ret;
 +	int i, j;
-+	int vm_size;
 +	int npages;
 +	struct xenoprof_buf *buf;
++	struct vm_struct *area;
 +	pgprot_t prot = __pgprot(_KERNPG_TABLE);
 +
 +	if (!is_primary)
@@ -21032,20 +20289,30 @@
 +	for (i = 0; i < pdoms; i++) {
 +		passive_domains[i].domain_id = p_domains[i];
 +		passive_domains[i].max_samples = 2048;
-+		ret = HYPERVISOR_xenoprof_op(XENOPROF_set_passive, &passive_domains[i]);
++		ret = HYPERVISOR_xenoprof_op(XENOPROF_set_passive,
++					     &passive_domains[i]);
 +		if (ret)
-+			return ret;
++			goto out;
 +
 +		npages = (passive_domains[i].bufsize * passive_domains[i].nbuf - 1) / PAGE_SIZE + 1;
-+		vm_size = npages * PAGE_SIZE;
 +
-+		p_shared_buffer[i] = (char *)vm_map_xen_pages(passive_domains[i].buf_maddr,
-+							      vm_size, prot);
-+		if (!p_shared_buffer[i]) {
++		area = get_vm_area(npages * PAGE_SIZE, VM_IOREMAP);
++		if (area == NULL) {
 +			ret = -ENOMEM;
 +			goto out;
 +		}
 +
++		ret = direct_kernel_remap_pfn_range(
++			(unsigned long)area->addr,
++			passive_domains[i].buf_maddr >> PAGE_SHIFT,
++			npages * PAGE_SIZE, prot, DOMID_SELF);
++		if (ret) {
++			vunmap(area->addr);
++			goto out;
++		}
++
++		p_shared_buffer[i] = area->addr;
++
 +		for (j = 0; j < passive_domains[i].nbuf; j++) {
 +			buf = (struct xenoprof_buf *)
 +				&p_shared_buffer[i][j * passive_domains[i].bufsize];
@@ -21114,11 +20381,9 @@
 +int __init oprofile_arch_init(struct oprofile_operations * ops)
 +{
 +	struct xenoprof_init init;
-+	struct xenoprof_buf * buf;
-+	int vm_size;
-+	int npages;
-+	int ret;
-+	int i;
++	struct xenoprof_buf *buf;
++	int npages, ret, i;
++	struct vm_struct *area;
 +
 +	init.max_samples = 16;
 +	ret = HYPERVISOR_xenoprof_op(XENOPROF_init, &init);
@@ -21136,15 +20401,24 @@
 +			num_events = OP_MAX_COUNTER;
 +
 +		npages = (init.bufsize * nbuf - 1) / PAGE_SIZE + 1;
-+		vm_size = npages * PAGE_SIZE;
 +
-+		shared_buffer = (char *)vm_map_xen_pages(init.buf_maddr,
-+							 vm_size, prot);
-+		if (!shared_buffer) {
++		area = get_vm_area(npages * PAGE_SIZE, VM_IOREMAP);
++		if (area == NULL) {
 +			ret = -ENOMEM;
 +			goto out;
 +		}
 +
++		ret = direct_kernel_remap_pfn_range(
++			(unsigned long)area->addr,
++			init.buf_maddr >> PAGE_SHIFT,
++			npages * PAGE_SIZE, prot, DOMID_SELF);
++		if (ret) {
++			vunmap(area->addr);
++			goto out;
++		}
++
++		shared_buffer = area->addr;
++
 +		for (i=0; i< nbuf; i++) {
 +			buf = (struct xenoprof_buf*) 
 +				&shared_buffer[i * init.bufsize];
@@ -21194,9 +20468,9 @@
 +        }
 +
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/pci/irq-xen.c linux-2.6.18-rc5-xen/arch/i386/pci/irq-xen.c
---- linux-2.6.18-rc5/arch/i386/pci/irq-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/pci/irq-xen.c	2006-09-01 00:09:09.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/pci/irq-xen.c linux-2.6.18-rc6-xen/arch/i386/pci/irq-xen.c
+--- linux-2.6.18-rc6/arch/i386/pci/irq-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/pci/irq-xen.c	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,1206 @@
 +/*
 + *	Low-Level PCI Support for PC -- Routing of Interrupts
@@ -22404,9 +21678,9 @@
 +
 +	return count;
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/pci/Makefile linux-2.6.18-rc5-xen/arch/i386/pci/Makefile
---- linux-2.6.18-rc5/arch/i386/pci/Makefile	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/i386/pci/Makefile	2006-07-20 15:56:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/pci/Makefile linux-2.6.18-rc6-xen/arch/i386/pci/Makefile
+--- linux-2.6.18-rc6/arch/i386/pci/Makefile	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/i386/pci/Makefile	2006-09-04 16:31:00.000000000 +0200
 @@ -4,6 +4,10 @@
  obj-$(CONFIG_PCI_MMCONFIG)	+= mmconfig.o direct.o
  obj-$(CONFIG_PCI_DIRECT)	+= direct.o
@@ -22427,9 +21701,9 @@
 +include $(srctree)/scripts/Makefile.xen
 +obj-y := $(call cherrypickxen, $(obj-y))
 +endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/pci/pcifront.c linux-2.6.18-rc5-xen/arch/i386/pci/pcifront.c
---- linux-2.6.18-rc5/arch/i386/pci/pcifront.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/i386/pci/pcifront.c	2006-07-20 15:56:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/pci/pcifront.c linux-2.6.18-rc6-xen/arch/i386/pci/pcifront.c
+--- linux-2.6.18-rc6/arch/i386/pci/pcifront.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/i386/pci/pcifront.c	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,55 @@
 +/*
 + * PCI Frontend Stub - puts some "dummy" functions in to the Linux x86 PCI core
@@ -22486,18 +21760,18 @@
 +}
 +
 +arch_initcall(pcifront_x86_stub_init);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/i386/power/Makefile linux-2.6.18-rc5-xen/arch/i386/power/Makefile
---- linux-2.6.18-rc5/arch/i386/power/Makefile	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/i386/power/Makefile	2006-07-20 15:56:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/i386/power/Makefile linux-2.6.18-rc6-xen/arch/i386/power/Makefile
+--- linux-2.6.18-rc6/arch/i386/power/Makefile	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/i386/power/Makefile	2006-09-04 16:31:00.000000000 +0200
 @@ -1,2 +1,4 @@
 -obj-$(CONFIG_PM)		+= cpu.o
 +obj-$(CONFIG_PM_LEGACY)		+= cpu.o
 +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-rc5/arch/ia64/dig/setup.c linux-2.6.18-rc5-xen/arch/ia64/dig/setup.c
---- linux-2.6.18-rc5/arch/ia64/dig/setup.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/ia64/dig/setup.c	2006-09-01 00:09:09.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/ia64/dig/setup.c linux-2.6.18-rc6-xen/arch/ia64/dig/setup.c
+--- linux-2.6.18-rc6/arch/ia64/dig/setup.c	2006-09-05 10:53:01.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/ia64/dig/setup.c	2006-09-04 16:31:00.000000000 +0200
 @@ -67,4 +67,38 @@
  	screen_info.orig_video_mode = 3;	/* XXX fake */
  	screen_info.orig_video_isVGA = 1;	/* XXX fake */
@@ -22537,18 +21811,18 @@
 +	xen_start_info->console.domU.evtchn = 0;
 +#endif
  }
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/ia64/hp/sim/Makefile linux-2.6.18-rc5-xen/arch/ia64/hp/sim/Makefile
---- linux-2.6.18-rc5/arch/ia64/hp/sim/Makefile	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/ia64/hp/sim/Makefile	2006-07-20 15:56:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/ia64/hp/sim/Makefile linux-2.6.18-rc6-xen/arch/ia64/hp/sim/Makefile
+--- linux-2.6.18-rc6/arch/ia64/hp/sim/Makefile	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/ia64/hp/sim/Makefile	2006-09-04 16:31:00.000000000 +0200
 @@ -14,3 +14,5 @@
  obj-$(CONFIG_HP_SIMSERIAL) += simserial.o
  obj-$(CONFIG_HP_SIMSERIAL_CONSOLE) += hpsim_console.o
  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-rc5/arch/ia64/Kconfig linux-2.6.18-rc5-xen/arch/ia64/Kconfig
---- linux-2.6.18-rc5/arch/ia64/Kconfig	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/ia64/Kconfig	2006-08-14 15:07:20.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/ia64/Kconfig linux-2.6.18-rc6-xen/arch/ia64/Kconfig
+--- linux-2.6.18-rc6/arch/ia64/Kconfig	2006-09-05 10:53:01.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/ia64/Kconfig	2006-09-04 16:31:00.000000000 +0200
 @@ -58,6 +58,20 @@
  	bool
  	default y
@@ -22633,9 +21907,9 @@
 +endif
 +
 +source "drivers/xen/Kconfig"
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/ia64/kernel/asm-offsets.c linux-2.6.18-rc5-xen/arch/ia64/kernel/asm-offsets.c
---- linux-2.6.18-rc5/arch/ia64/kernel/asm-offsets.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/ia64/kernel/asm-offsets.c	2006-07-20 15:56:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/ia64/kernel/asm-offsets.c linux-2.6.18-rc6-xen/arch/ia64/kernel/asm-offsets.c
+--- linux-2.6.18-rc6/arch/ia64/kernel/asm-offsets.c	2006-09-05 10:53:01.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/ia64/kernel/asm-offsets.c	2006-09-04 16:31:00.000000000 +0200
 @@ -268,4 +268,29 @@
  	DEFINE(IA64_TIME_SOURCE_MMIO64, TIME_SOURCE_MMIO64);
  	DEFINE(IA64_TIME_SOURCE_MMIO32, TIME_SOURCE_MMIO32);
@@ -22666,9 +21940,9 @@
 +	DEFINE_MAPPED_REG_OFS(XSI_BANK1_R16_OFS, bank1_regs[0]);
 +#endif /* CONFIG_XEN */
  }
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/ia64/kernel/entry.S linux-2.6.18-rc5-xen/arch/ia64/kernel/entry.S
---- linux-2.6.18-rc5/arch/ia64/kernel/entry.S	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/ia64/kernel/entry.S	2006-07-20 15:56:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/ia64/kernel/entry.S linux-2.6.18-rc6-xen/arch/ia64/kernel/entry.S
+--- linux-2.6.18-rc6/arch/ia64/kernel/entry.S	2006-09-05 10:53:01.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/ia64/kernel/entry.S	2006-09-04 16:31:00.000000000 +0200
 @@ -180,7 +180,7 @@
   *	called.  The code starting at .map relies on this.  The rest of the code
   *	doesn't care about the interrupt masking status.
@@ -22788,9 +22062,9 @@
  	;;
  	mov ar.unat=r9
  	br.many b7
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/ia64/kernel/gate.lds.S linux-2.6.18-rc5-xen/arch/ia64/kernel/gate.lds.S
---- linux-2.6.18-rc5/arch/ia64/kernel/gate.lds.S	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/ia64/kernel/gate.lds.S	2006-09-01 00:09:09.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/ia64/kernel/gate.lds.S linux-2.6.18-rc6-xen/arch/ia64/kernel/gate.lds.S
+--- linux-2.6.18-rc6/arch/ia64/kernel/gate.lds.S	2006-09-05 10:53:01.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/ia64/kernel/gate.lds.S	2006-09-04 16:31:00.000000000 +0200
 @@ -43,6 +43,28 @@
  				    __start_gate_brl_fsys_bubble_down_patchlist = .;
  				    *(.data.patch.brl_fsys_bubble_down)
@@ -22820,9 +22094,9 @@
    }									: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-rc5/arch/ia64/kernel/gate.S linux-2.6.18-rc5-xen/arch/ia64/kernel/gate.S
---- linux-2.6.18-rc5/arch/ia64/kernel/gate.S	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/ia64/kernel/gate.S	2006-08-14 15:07:20.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/ia64/kernel/gate.S linux-2.6.18-rc6-xen/arch/ia64/kernel/gate.S
+--- linux-2.6.18-rc6/arch/ia64/kernel/gate.S	2006-09-05 10:53:01.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/ia64/kernel/gate.S	2006-09-04 16:31:00.000000000 +0200
 @@ -6,13 +6,15 @@
   * 	David Mosberger-Tang <davidm at hpl.hp.com>
   */
@@ -22992,9 +22266,9 @@
  (p9)	mov r8=ENOSYS
  	FSYS_RETURN
  END(__kernel_syscall_via_epc)
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/ia64/kernel/head.S linux-2.6.18-rc5-xen/arch/ia64/kernel/head.S
---- linux-2.6.18-rc5/arch/ia64/kernel/head.S	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/ia64/kernel/head.S	2006-09-01 00:09:09.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/ia64/kernel/head.S linux-2.6.18-rc6-xen/arch/ia64/kernel/head.S
+--- linux-2.6.18-rc6/arch/ia64/kernel/head.S	2006-09-05 10:53:01.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/ia64/kernel/head.S	2006-09-04 16:31:00.000000000 +0200
 @@ -362,6 +362,12 @@
  	;;
  (isBP)	st8 [r2]=r28		// save the address of the boot param area passed by the bootloader
@@ -23008,9 +22282,9 @@
  #ifdef CONFIG_SMP
  (isAP)	br.call.sptk.many rp=start_secondary
  .ret0:
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/ia64/kernel/iosapic.c linux-2.6.18-rc5-xen/arch/ia64/kernel/iosapic.c
---- linux-2.6.18-rc5/arch/ia64/kernel/iosapic.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/ia64/kernel/iosapic.c	2006-07-20 15:56:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/ia64/kernel/iosapic.c linux-2.6.18-rc6-xen/arch/ia64/kernel/iosapic.c
+--- linux-2.6.18-rc6/arch/ia64/kernel/iosapic.c	2006-09-05 10:53:01.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/ia64/kernel/iosapic.c	2006-09-04 16:31:00.000000000 +0200
 @@ -159,6 +159,65 @@
  static int iosapic_kmalloc_ok;
  static LIST_HEAD(free_rte_list);
@@ -23097,9 +22371,9 @@
  	if (pcat_compat) {
  		/*
  		 * Disable the compatibility mode interrupts (8259 style),
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/ia64/kernel/irq_ia64.c linux-2.6.18-rc5-xen/arch/ia64/kernel/irq_ia64.c
---- linux-2.6.18-rc5/arch/ia64/kernel/irq_ia64.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/ia64/kernel/irq_ia64.c	2006-08-14 15:07:20.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/ia64/kernel/irq_ia64.c linux-2.6.18-rc6-xen/arch/ia64/kernel/irq_ia64.c
+--- linux-2.6.18-rc6/arch/ia64/kernel/irq_ia64.c	2006-09-05 10:53:01.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/ia64/kernel/irq_ia64.c	2006-09-04 16:31:00.000000000 +0200
 @@ -30,6 +30,9 @@
  #include <linux/smp_lock.h>
  #include <linux/threads.h>
@@ -23402,9 +22676,9 @@
  #ifdef CONFIG_SMP
  	phys_cpu_id = cpu_physical_id(cpu);
  #else
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/ia64/kernel/pal.S linux-2.6.18-rc5-xen/arch/ia64/kernel/pal.S
---- linux-2.6.18-rc5/arch/ia64/kernel/pal.S	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/ia64/kernel/pal.S	2006-09-01 00:09:09.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/ia64/kernel/pal.S linux-2.6.18-rc6-xen/arch/ia64/kernel/pal.S
+--- linux-2.6.18-rc6/arch/ia64/kernel/pal.S	2006-09-05 10:53:01.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/ia64/kernel/pal.S	2006-09-04 16:31:00.000000000 +0200
 @@ -16,6 +16,7 @@
  #include <asm/processor.h>
  
@@ -23431,9 +22705,9 @@
  
  /*
   * Make a PAL call using the stacked registers calling convention.
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/ia64/kernel/patch.c linux-2.6.18-rc5-xen/arch/ia64/kernel/patch.c
---- linux-2.6.18-rc5/arch/ia64/kernel/patch.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/ia64/kernel/patch.c	2006-08-06 23:45:52.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/ia64/kernel/patch.c linux-2.6.18-rc6-xen/arch/ia64/kernel/patch.c
+--- linux-2.6.18-rc6/arch/ia64/kernel/patch.c	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/ia64/kernel/patch.c	2006-09-04 16:31:00.000000000 +0200
 @@ -184,6 +184,73 @@
  	ia64_srlz_i();
  }
@@ -23519,9 +22793,9 @@
  	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-rc5/arch/ia64/kernel/setup.c linux-2.6.18-rc5-xen/arch/ia64/kernel/setup.c
---- linux-2.6.18-rc5/arch/ia64/kernel/setup.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/ia64/kernel/setup.c	2006-09-01 00:09:09.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/ia64/kernel/setup.c linux-2.6.18-rc6-xen/arch/ia64/kernel/setup.c
+--- linux-2.6.18-rc6/arch/ia64/kernel/setup.c	2006-09-05 10:53:01.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/ia64/kernel/setup.c	2006-09-04 16:31:00.000000000 +0200
 @@ -60,6 +60,10 @@
  #include <asm/system.h>
  #include <asm/unistd.h>
@@ -23699,15 +22973,17 @@
  #endif
  
  	/* enable IA-64 Machine Check Abort Handling unless disabled */
-@@ -486,6 +597,7 @@
+@@ -486,6 +597,9 @@
  
  	platform_setup(cmdline_p);
  	paging_init();
++#ifdef CONFIG_XEN
 +	contiguous_bitmap_init(max_pfn);
++#endif
  }
  
  /*
-@@ -870,6 +982,15 @@
+@@ -870,6 +984,15 @@
  	/* size of physical stacked register partition plus 8 bytes: */
  	__get_cpu_var(ia64_phys_stacked_size_p8) = num_phys_stacked*8 + 8;
  	platform_cpu_init();
@@ -23723,9 +22999,9 @@
  	pm_idle = default_idle;
  }
  
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/ia64/Makefile linux-2.6.18-rc5-xen/arch/ia64/Makefile
---- linux-2.6.18-rc5/arch/ia64/Makefile	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/ia64/Makefile	2006-07-20 15:56:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/ia64/Makefile linux-2.6.18-rc6-xen/arch/ia64/Makefile
+--- linux-2.6.18-rc6/arch/ia64/Makefile	2006-09-05 10:53:01.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/ia64/Makefile	2006-09-04 16:31:00.000000000 +0200
 @@ -45,6 +45,12 @@
  endif
  
@@ -23766,9 +23042,9 @@
  
  define archhelp
    echo '* compressed	- Build compressed kernel image'
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/ia64/mm/ioremap.c linux-2.6.18-rc5-xen/arch/ia64/mm/ioremap.c
---- linux-2.6.18-rc5/arch/ia64/mm/ioremap.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/ia64/mm/ioremap.c	2006-09-01 00:09:09.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/ia64/mm/ioremap.c linux-2.6.18-rc6-xen/arch/ia64/mm/ioremap.c
+--- linux-2.6.18-rc6/arch/ia64/mm/ioremap.c	2006-09-05 10:53:01.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/ia64/mm/ioremap.c	2006-09-04 16:31:00.000000000 +0200
 @@ -16,6 +16,9 @@
  static inline void __iomem *
  __ioremap (unsigned long offset, unsigned long size)
@@ -23779,15 +23055,15 @@
  	return (void __iomem *) (__IA64_UNCACHED_OFFSET | offset);
  }
  
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/ia64/xen/drivers/README linux-2.6.18-rc5-xen/arch/ia64/xen/drivers/README
---- linux-2.6.18-rc5/arch/ia64/xen/drivers/README	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/ia64/xen/drivers/README	2006-07-20 15:56:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/ia64/xen/drivers/README linux-2.6.18-rc6-xen/arch/ia64/xen/drivers/README
+--- linux-2.6.18-rc6/arch/ia64/xen/drivers/README	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/ia64/xen/drivers/README	2006-09-04 16:31:00.000000000 +0200
 @@ -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-rc5/arch/ia64/xen/hypercall.S linux-2.6.18-rc5-xen/arch/ia64/xen/hypercall.S
---- linux-2.6.18-rc5/arch/ia64/xen/hypercall.S	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/ia64/xen/hypercall.S	2006-08-14 15:07:20.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/ia64/xen/hypercall.S linux-2.6.18-rc6-xen/arch/ia64/xen/hypercall.S
+--- linux-2.6.18-rc6/arch/ia64/xen/hypercall.S	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/ia64/xen/hypercall.S	2006-09-04 16:31:01.000000000 +0200
 @@ -0,0 +1,413 @@
 +/*
 + * Support routines for Xen hypercalls
@@ -24202,10 +23478,10 @@
 +	;; 
 +END(xen_ssm_i_1)
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/ia64/xen/hypervisor.c linux-2.6.18-rc5-xen/arch/ia64/xen/hypervisor.c
---- linux-2.6.18-rc5/arch/ia64/xen/hypervisor.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/ia64/xen/hypervisor.c	2006-09-01 00:09:09.000000000 +0200
-@@ -0,0 +1,810 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/ia64/xen/hypervisor.c linux-2.6.18-rc6-xen/arch/ia64/xen/hypervisor.c
+--- linux-2.6.18-rc6/arch/ia64/xen/hypervisor.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/ia64/xen/hypervisor.c	2006-09-04 16:31:01.000000000 +0200
+@@ -0,0 +1,833 @@
 +/******************************************************************************
 + * include/asm-ia64/shadow.h
 + *
@@ -24579,6 +23855,8 @@
 +int
 +HYPERVISOR_grant_table_op(unsigned int cmd, void *uop, unsigned int count)
 +{
++	__u64 va1, va2, pa1, pa2;
++
 +	if (cmd == GNTTABOP_map_grant_ref) {
 +		unsigned int i;
 +		for (i = 0; i < count; i++) {
@@ -24586,8 +23864,29 @@
 +				(struct gnttab_map_grant_ref*)uop + i);
 +		}
 +	}
-+
-+	return ____HYPERVISOR_grant_table_op(cmd, uop, count);
++	va1 = (__u64)uop & PAGE_MASK;
++	pa1 = pa2 = 0;
++	if ((REGION_NUMBER(va1) == 5) &&
++	    ((va1 - KERNEL_START) >= KERNEL_TR_PAGE_SIZE)) {
++		pa1 = ia64_tpa(va1);
++		if (cmd <= GNTTABOP_transfer) {
++			static uint32_t uop_size[GNTTABOP_transfer + 1] = {
++				sizeof(struct gnttab_map_grant_ref),
++				sizeof(struct gnttab_unmap_grant_ref),
++				sizeof(struct gnttab_setup_table),
++				sizeof(struct gnttab_dump_table),
++				sizeof(struct gnttab_transfer),
++			};
++			va2 = (__u64)uop + (uop_size[cmd] * count) - 1;
++			va2 &= PAGE_MASK;
++			if (va1 != va2) {
++				/* maximum size of uop is 2pages */
++				BUG_ON(va2 > va1 + PAGE_SIZE);
++				pa2 = ia64_tpa(va2);
++			}
++		}
++	}
++	return ____HYPERVISOR_grant_table_op(cmd, uop, count, pa1, pa2);
 +}
 +EXPORT_SYMBOL(HYPERVISOR_grant_table_op);
 +
@@ -25016,9 +24315,9 @@
 +	/* Just trigger a tick.  */
 +	ia64_cpu_local_tick();
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/ia64/xen/Makefile linux-2.6.18-rc5-xen/arch/ia64/xen/Makefile
---- linux-2.6.18-rc5/arch/ia64/xen/Makefile	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/ia64/xen/Makefile	2006-08-14 15:07:20.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/ia64/xen/Makefile linux-2.6.18-rc6-xen/arch/ia64/xen/Makefile
+--- linux-2.6.18-rc6/arch/ia64/xen/Makefile	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/ia64/xen/Makefile	2006-09-04 16:31:00.000000000 +0200
 @@ -0,0 +1,8 @@
 +#
 +# Makefile for Xen components
@@ -25028,9 +24327,9 @@
 +	 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-rc5/arch/ia64/xen/util.c linux-2.6.18-rc5-xen/arch/ia64/xen/util.c
---- linux-2.6.18-rc5/arch/ia64/xen/util.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/ia64/xen/util.c	2006-08-14 15:07:20.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/ia64/xen/util.c linux-2.6.18-rc6-xen/arch/ia64/xen/util.c
+--- linux-2.6.18-rc6/arch/ia64/xen/util.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/ia64/xen/util.c	2006-09-04 16:31:01.000000000 +0200
 @@ -0,0 +1,115 @@
 +/******************************************************************************
 + * arch/ia64/xen/util.c
@@ -25147,9 +24446,9 @@
 + *  tab-width: 8
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/ia64/xen/xenentry.S linux-2.6.18-rc5-xen/arch/ia64/xen/xenentry.S
---- linux-2.6.18-rc5/arch/ia64/xen/xenentry.S	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/ia64/xen/xenentry.S	2006-08-14 15:07:20.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/ia64/xen/xenentry.S linux-2.6.18-rc6-xen/arch/ia64/xen/xenentry.S
+--- linux-2.6.18-rc6/arch/ia64/xen/xenentry.S	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/ia64/xen/xenentry.S	2006-09-04 16:31:01.000000000 +0200
 @@ -0,0 +1,867 @@
 +/*
 + * ia64/xen/entry.S
@@ -26018,9 +25317,9 @@
 +#else
 +END(ia64_leave_kernel)
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/ia64/xen/xenhpski.c linux-2.6.18-rc5-xen/arch/ia64/xen/xenhpski.c
---- linux-2.6.18-rc5/arch/ia64/xen/xenhpski.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/ia64/xen/xenhpski.c	2006-07-20 15:56:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/ia64/xen/xenhpski.c linux-2.6.18-rc6-xen/arch/ia64/xen/xenhpski.c
+--- linux-2.6.18-rc6/arch/ia64/xen/xenhpski.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/ia64/xen/xenhpski.c	2006-09-04 16:31:01.000000000 +0200
 @@ -0,0 +1,19 @@
 +
 +extern unsigned long xen_get_cpuid(int);
@@ -26041,9 +25340,9 @@
 +	return 1;
 +}
 +
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/ia64/xen/xenivt.S linux-2.6.18-rc5-xen/arch/ia64/xen/xenivt.S
---- linux-2.6.18-rc5/arch/ia64/xen/xenivt.S	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/ia64/xen/xenivt.S	2006-08-14 15:07:20.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/ia64/xen/xenivt.S linux-2.6.18-rc6-xen/arch/ia64/xen/xenivt.S
+--- linux-2.6.18-rc6/arch/ia64/xen/xenivt.S	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/ia64/xen/xenivt.S	2006-09-04 16:31:01.000000000 +0200
 @@ -0,0 +1,2169 @@
 +/*
 + * arch/ia64/xen/ivt.S
@@ -28214,9 +27513,9 @@
 +	br.call.sptk.many b6=evtchn_do_upcall
 +END(xen_event_callback)
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/ia64/xen/xenminstate.h linux-2.6.18-rc5-xen/arch/ia64/xen/xenminstate.h
---- linux-2.6.18-rc5/arch/ia64/xen/xenminstate.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/ia64/xen/xenminstate.h	2006-08-14 15:07:20.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/ia64/xen/xenminstate.h linux-2.6.18-rc6-xen/arch/ia64/xen/xenminstate.h
+--- linux-2.6.18-rc6/arch/ia64/xen/xenminstate.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/ia64/xen/xenminstate.h	2006-09-04 16:31:01.000000000 +0200
 @@ -0,0 +1,368 @@
 +
 +#include <asm/cache.h>
@@ -28586,9 +27885,9 @@
 +#else
 +#define SAVE_MIN		DO_SAVE_MIN(     , mov r30=r0, )
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/ia64/xen/xenpal.S linux-2.6.18-rc5-xen/arch/ia64/xen/xenpal.S
---- linux-2.6.18-rc5/arch/ia64/xen/xenpal.S	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/ia64/xen/xenpal.S	2006-07-20 15:56:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/ia64/xen/xenpal.S linux-2.6.18-rc6-xen/arch/ia64/xen/xenpal.S
+--- linux-2.6.18-rc6/arch/ia64/xen/xenpal.S	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/ia64/xen/xenpal.S	2006-09-04 16:31:01.000000000 +0200
 @@ -0,0 +1,76 @@
 +/*
 + * ia64/xen/xenpal.S
@@ -28666,9 +27965,9 @@
 +	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-rc5/arch/ia64/xen/xensetup.S linux-2.6.18-rc5-xen/arch/ia64/xen/xensetup.S
---- linux-2.6.18-rc5/arch/ia64/xen/xensetup.S	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/ia64/xen/xensetup.S	2006-08-14 15:07:20.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/ia64/xen/xensetup.S linux-2.6.18-rc6-xen/arch/ia64/xen/xensetup.S
+--- linux-2.6.18-rc6/arch/ia64/xen/xensetup.S	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/ia64/xen/xensetup.S	2006-09-04 16:31:01.000000000 +0200
 @@ -0,0 +1,54 @@
 +/*
 + * Support routines for Xen
@@ -28724,9 +28023,9 @@
 +	mov ar.pfs=r20
 +	br.ret.sptk.many b0
 +END(HYPERVISOR_suspend)
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/um/kernel/physmem.c linux-2.6.18-rc5-xen/arch/um/kernel/physmem.c
---- linux-2.6.18-rc5/arch/um/kernel/physmem.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/um/kernel/physmem.c	2006-07-20 15:56:47.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/um/kernel/physmem.c linux-2.6.18-rc6-xen/arch/um/kernel/physmem.c
+--- linux-2.6.18-rc6/arch/um/kernel/physmem.c	2006-09-05 10:53:09.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/um/kernel/physmem.c	2006-09-04 16:31:02.000000000 +0200
 @@ -226,7 +226,7 @@
  EXPORT_SYMBOL(physmem_remove_mapping);
  EXPORT_SYMBOL(physmem_subst_mapping);
@@ -28745,9 +28044,9 @@
  }
  
  int is_remapped(void *virt)
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/ia32/ia32entry-xen.S linux-2.6.18-rc5-xen/arch/x86_64/ia32/ia32entry-xen.S
---- linux-2.6.18-rc5/arch/x86_64/ia32/ia32entry-xen.S	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/ia32/ia32entry-xen.S	2006-08-06 23:45:52.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/ia32/ia32entry-xen.S linux-2.6.18-rc6-xen/arch/x86_64/ia32/ia32entry-xen.S
+--- linux-2.6.18-rc6/arch/x86_64/ia32/ia32entry-xen.S	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/ia32/ia32entry-xen.S	2006-09-04 16:31:03.000000000 +0200
 @@ -0,0 +1,743 @@
 +/*
 + * Compatibility mode system call entry point for x86-64. 
@@ -29492,9 +28791,9 @@
 +	.quad compat_sys_vmsplice
 +	.quad compat_sys_move_pages
 +ia32_syscall_end:		
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/ia32/Makefile linux-2.6.18-rc5-xen/arch/x86_64/ia32/Makefile
---- linux-2.6.18-rc5/arch/x86_64/ia32/Makefile	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/x86_64/ia32/Makefile	2006-09-01 00:09:09.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/ia32/Makefile linux-2.6.18-rc6-xen/arch/x86_64/ia32/Makefile
+--- linux-2.6.18-rc6/arch/x86_64/ia32/Makefile	2006-09-05 10:53:10.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/x86_64/ia32/Makefile	2006-09-04 16:31:03.000000000 +0200
 @@ -27,9 +27,25 @@
  			   -Wl,-soname=linux-gate.so.1 -o $@ \
  			   -Wl,-T,$(filter-out FORCE,$^)
@@ -29523,9 +28822,9 @@
 +
 +obj-y := $(call cherrypickxen, $(obj-y))
 +endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/ia32/syscall32_syscall-xen.S linux-2.6.18-rc5-xen/arch/x86_64/ia32/syscall32_syscall-xen.S
---- linux-2.6.18-rc5/arch/x86_64/ia32/syscall32_syscall-xen.S	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/ia32/syscall32_syscall-xen.S	2006-07-20 15:56:48.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/ia32/syscall32_syscall-xen.S linux-2.6.18-rc6-xen/arch/x86_64/ia32/syscall32_syscall-xen.S
+--- linux-2.6.18-rc6/arch/x86_64/ia32/syscall32_syscall-xen.S	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/ia32/syscall32_syscall-xen.S	2006-09-04 16:31:03.000000000 +0200
 @@ -0,0 +1,28 @@
 +/* 32bit VDSOs mapped into user space. */
 +
@@ -29555,9 +28854,9 @@
 +syscall32_sysenter:
 +	.incbin "arch/x86_64/ia32/vsyscall-sysenter.so"
 +syscall32_sysenter_end:
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/ia32/syscall32-xen.c linux-2.6.18-rc5-xen/arch/x86_64/ia32/syscall32-xen.c
---- linux-2.6.18-rc5/arch/x86_64/ia32/syscall32-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/ia32/syscall32-xen.c	2006-07-20 15:56:48.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/ia32/syscall32-xen.c linux-2.6.18-rc6-xen/arch/x86_64/ia32/syscall32-xen.c
+--- linux-2.6.18-rc6/arch/x86_64/ia32/syscall32-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/ia32/syscall32-xen.c	2006-09-04 16:31:03.000000000 +0200
 @@ -0,0 +1,128 @@
 +/* Copyright 2002,2003 Andi Kleen, SuSE Labs */
 +
@@ -29687,9 +28986,9 @@
 +	wrmsrl(MSR_CSTAR, ia32_cstar_target);
 +#endif
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/ia32/vsyscall-int80.S linux-2.6.18-rc5-xen/arch/x86_64/ia32/vsyscall-int80.S
---- linux-2.6.18-rc5/arch/x86_64/ia32/vsyscall-int80.S	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/ia32/vsyscall-int80.S	2006-07-20 15:56:48.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/ia32/vsyscall-int80.S linux-2.6.18-rc6-xen/arch/x86_64/ia32/vsyscall-int80.S
+--- linux-2.6.18-rc6/arch/x86_64/ia32/vsyscall-int80.S	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/ia32/vsyscall-int80.S	2006-09-04 16:31:03.000000000 +0200
 @@ -0,0 +1,58 @@
 +/*
 + * Code for the vsyscall page.  This version uses the old int $0x80 method.
@@ -29749,9 +29048,9 @@
 + */
 +#define SYSCALL_ENTER_KERNEL    int $0x80
 +#include "vsyscall-sigreturn.S"
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/ia32/vsyscall-sigreturn.S linux-2.6.18-rc5-xen/arch/x86_64/ia32/vsyscall-sigreturn.S
---- linux-2.6.18-rc5/arch/x86_64/ia32/vsyscall-sigreturn.S	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/x86_64/ia32/vsyscall-sigreturn.S	2006-07-20 15:56:48.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/ia32/vsyscall-sigreturn.S linux-2.6.18-rc6-xen/arch/x86_64/ia32/vsyscall-sigreturn.S
+--- linux-2.6.18-rc6/arch/x86_64/ia32/vsyscall-sigreturn.S	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/x86_64/ia32/vsyscall-sigreturn.S	2006-09-04 16:31:03.000000000 +0200
 @@ -139,5 +139,5 @@
  	.align 4
  .LENDFDE3:
@@ -29759,9 +29058,9 @@
 -#include "../../i386/kernel/vsyscall-note.S"
 +#include <vsyscall-note.S>
  
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/Kconfig linux-2.6.18-rc5-xen/arch/x86_64/Kconfig
---- linux-2.6.18-rc5/arch/x86_64/Kconfig	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/x86_64/Kconfig	2006-09-01 00:09:09.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/Kconfig linux-2.6.18-rc6-xen/arch/x86_64/Kconfig
+--- linux-2.6.18-rc6/arch/x86_64/Kconfig	2006-09-05 10:53:09.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/x86_64/Kconfig	2006-09-04 16:31:02.000000000 +0200
 @@ -30,6 +30,7 @@
  
  config STACKTRACE_SUPPORT
@@ -29952,17 +29251,17 @@
 +source "drivers/xen/Kconfig"
 +
  source "lib/Kconfig"
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/kernel/acpi/Makefile linux-2.6.18-rc5-xen/arch/x86_64/kernel/acpi/Makefile
---- linux-2.6.18-rc5/arch/x86_64/kernel/acpi/Makefile	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/x86_64/kernel/acpi/Makefile	2006-07-20 15:56:48.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/kernel/acpi/Makefile linux-2.6.18-rc6-xen/arch/x86_64/kernel/acpi/Makefile
+--- linux-2.6.18-rc6/arch/x86_64/kernel/acpi/Makefile	2006-09-05 10:53:10.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/x86_64/kernel/acpi/Makefile	2006-09-04 16:31:03.000000000 +0200
 @@ -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-rc5/arch/x86_64/kernel/apic-xen.c linux-2.6.18-rc5-xen/arch/x86_64/kernel/apic-xen.c
---- linux-2.6.18-rc5/arch/x86_64/kernel/apic-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/kernel/apic-xen.c	2006-07-20 15:56:48.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/kernel/apic-xen.c linux-2.6.18-rc6-xen/arch/x86_64/kernel/apic-xen.c
+--- linux-2.6.18-rc6/arch/x86_64/kernel/apic-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/kernel/apic-xen.c	2006-09-04 16:31:03.000000000 +0200
 @@ -0,0 +1,197 @@
 +/*
 + *	Local APIC handling, local APIC timers
@@ -30161,9 +29460,9 @@
 +
 +	return 1;
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/kernel/asm-offsets.c linux-2.6.18-rc5-xen/arch/x86_64/kernel/asm-offsets.c
---- linux-2.6.18-rc5/arch/x86_64/kernel/asm-offsets.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/x86_64/kernel/asm-offsets.c	2006-07-20 15:56:48.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/kernel/asm-offsets.c linux-2.6.18-rc6-xen/arch/x86_64/kernel/asm-offsets.c
+--- linux-2.6.18-rc6/arch/x86_64/kernel/asm-offsets.c	2006-09-05 10:53:10.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/x86_64/kernel/asm-offsets.c	2006-09-04 16:31:03.000000000 +0200
 @@ -67,8 +67,10 @@
  	DEFINE(pbe_address, offsetof(struct pbe, address));
  	DEFINE(pbe_orig_address, offsetof(struct pbe, orig_address));
@@ -30175,10 +29474,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-rc5/arch/x86_64/kernel/e820-xen.c linux-2.6.18-rc5-xen/arch/x86_64/kernel/e820-xen.c
---- linux-2.6.18-rc5/arch/x86_64/kernel/e820-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/kernel/e820-xen.c	2006-07-20 15:56:48.000000000 +0200
-@@ -0,0 +1,752 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/kernel/e820-xen.c linux-2.6.18-rc6-xen/arch/x86_64/kernel/e820-xen.c
+--- linux-2.6.18-rc6/arch/x86_64/kernel/e820-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/kernel/e820-xen.c	2006-09-04 16:31:03.000000000 +0200
+@@ -0,0 +1,728 @@
 +/* 
 + * Handle the memory map.
 + * The functions here do the job until bootmem takes over.
@@ -30228,7 +29527,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; 
 +
@@ -30255,7 +29553,11 @@
 +#endif
 +	/* kernel code + 640k memory hole (later should not be needed, but 
 +	   be paranoid for now) */
-+	if (last >= 640*1024 && addr < __pa_symbol(&_end)) { 
++	if (last >= 640*1024 && addr < 1024*1024) {
++		*addrp = 1024*1024;
++		return 1;
++	}
++	if (last >= __pa_symbol(&_text) && last < __pa_symbol(&_end)) {
 +		*addrp = __pa_symbol(&_end);
 +		return 1;
 +	}
@@ -30294,35 +29596,6 @@
 +	return 0;
 +}
 +
-+/*
-+ * This function checks if the entire range <start,end> is mapped with type.
-+ *
-+ * Note: this function only works correct if the e820 table is sorted and
-+ * not-overlapping, which is the case
-+ */
-+int __init e820_all_mapped(unsigned long start, unsigned long end, unsigned type)
-+{
-+	int i;
-+	for (i = 0; i < e820.nr_map; i++) {
-+		struct e820entry *ei = &e820.map[i];
-+		if (type && ei->type != type)
-+			continue;
-+		/* is the region (part) in overlap with the current region ?*/
-+		if (ei->addr >= end || ei->addr + ei->size <= start)
-+			continue;
-+
-+		/* if the region is at the beginning of <start,end> we move
-+		 * start to the end of the region since it's ok until there
-+		 */
-+		if (ei->addr <= start)
-+			start = ei->addr + ei->size;
-+		/* if start is now at or beyond end, we're done, full coverage */
-+		if (start >= end)
-+			return 1; /* we're done */
-+	}
-+	return 0;
-+}
-+
 +/* 
 + * Find a free area in a specific range. 
 + */ 
@@ -30474,8 +29747,10 @@
 +			 *  so we try it repeatedly and let the resource manager
 +			 *  test it.
 +			 */
++#ifndef CONFIG_XEN
 +			request_resource(res, &code_resource);
 +			request_resource(res, &data_resource);
++#endif
 +#ifdef CONFIG_KEXEC
 +			request_resource(res, &crashk_res);
 +#endif
@@ -30931,9 +30206,9 @@
 +	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-rc5/arch/x86_64/kernel/early_printk-xen.c linux-2.6.18-rc5-xen/arch/x86_64/kernel/early_printk-xen.c
---- linux-2.6.18-rc5/arch/x86_64/kernel/early_printk-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/kernel/early_printk-xen.c	2006-08-14 15:07:20.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/kernel/early_printk-xen.c linux-2.6.18-rc6-xen/arch/x86_64/kernel/early_printk-xen.c
+--- linux-2.6.18-rc6/arch/x86_64/kernel/early_printk-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/kernel/early_printk-xen.c	2006-09-04 16:31:03.000000000 +0200
 @@ -0,0 +1,304 @@
 +
 +#include <linux/console.h>
@@ -31239,10 +30514,10 @@
 +}
 +
 +__setup("earlyprintk=", setup_early_printk);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/kernel/entry-xen.S linux-2.6.18-rc5-xen/arch/x86_64/kernel/entry-xen.S
---- linux-2.6.18-rc5/arch/x86_64/kernel/entry-xen.S	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/kernel/entry-xen.S	2006-09-01 00:09:09.000000000 +0200
-@@ -0,0 +1,1210 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/kernel/entry-xen.S linux-2.6.18-rc6-xen/arch/x86_64/kernel/entry-xen.S
+--- linux-2.6.18-rc6/arch/x86_64/kernel/entry-xen.S	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/kernel/entry-xen.S	2006-09-04 16:31:03.000000000 +0200
+@@ -0,0 +1,1213 @@
 +/*
 + *  linux/arch/x86_64/entry.S
 + *
@@ -32231,6 +31506,8 @@
 +ENDPROC(kernel_thread)
 +	
 +child_rip:
++	pushq $0		# fake return address
++	CFI_STARTPROC
 +	/*
 +	 * Here we are in the child and the registers are set as they were
 +	 * at kernel_thread() invocation in the parent.
@@ -32241,6 +31518,7 @@
 +	# exit
 +	xorl %edi, %edi
 +	call do_exit
++	CFI_ENDPROC
 +ENDPROC(child_rip)
 +
 +/*
@@ -32453,9 +31731,9 @@
 +	CFI_ENDPROC
 +ENDPROC(arch_unwind_init_running)
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/kernel/genapic_xen.c linux-2.6.18-rc5-xen/arch/x86_64/kernel/genapic_xen.c
---- linux-2.6.18-rc5/arch/x86_64/kernel/genapic_xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/kernel/genapic_xen.c	2006-09-01 00:09:09.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/kernel/genapic_xen.c linux-2.6.18-rc6-xen/arch/x86_64/kernel/genapic_xen.c
+--- linux-2.6.18-rc6/arch/x86_64/kernel/genapic_xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/kernel/genapic_xen.c	2006-09-04 16:31:03.000000000 +0200
 @@ -0,0 +1,176 @@
 +/*
 + * Copyright 2004 James Cleverdon, IBM.
@@ -32633,9 +31911,9 @@
 +	.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-rc5/arch/x86_64/kernel/genapic-xen.c linux-2.6.18-rc5-xen/arch/x86_64/kernel/genapic-xen.c
---- linux-2.6.18-rc5/arch/x86_64/kernel/genapic-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/kernel/genapic-xen.c	2006-07-20 15:56:48.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/kernel/genapic-xen.c linux-2.6.18-rc6-xen/arch/x86_64/kernel/genapic-xen.c
+--- linux-2.6.18-rc6/arch/x86_64/kernel/genapic-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/kernel/genapic-xen.c	2006-09-04 16:31:03.000000000 +0200
 @@ -0,0 +1,143 @@
 +/*
 + * Copyright 2004 James Cleverdon, IBM.
@@ -32780,9 +32058,9 @@
 +	xen_send_IPI_shortcut(APIC_DEST_SELF, vector, APIC_DEST_PHYSICAL);
 +#endif
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/kernel/head64-xen.c linux-2.6.18-rc5-xen/arch/x86_64/kernel/head64-xen.c
---- linux-2.6.18-rc5/arch/x86_64/kernel/head64-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/kernel/head64-xen.c	2006-07-20 15:56:48.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/kernel/head64-xen.c linux-2.6.18-rc6-xen/arch/x86_64/kernel/head64-xen.c
+--- linux-2.6.18-rc6/arch/x86_64/kernel/head64-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/kernel/head64-xen.c	2006-09-04 16:31:03.000000000 +0200
 @@ -0,0 +1,161 @@
 +/*
 + *  linux/arch/x86_64/kernel/head64.c -- prepare to run common code
@@ -32945,9 +32223,9 @@
 +	setup_boot_cpu_data();
 +	start_kernel();
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/kernel/head-xen.S linux-2.6.18-rc5-xen/arch/x86_64/kernel/head-xen.S
---- linux-2.6.18-rc5/arch/x86_64/kernel/head-xen.S	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/kernel/head-xen.S	2006-09-01 00:09:09.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/kernel/head-xen.S linux-2.6.18-rc6-xen/arch/x86_64/kernel/head-xen.S
+--- linux-2.6.18-rc6/arch/x86_64/kernel/head-xen.S	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/kernel/head-xen.S	2006-09-04 16:31:03.000000000 +0200
 @@ -0,0 +1,191 @@
 +/*
 + *  linux/arch/x86_64/kernel/head.S -- start in 32bit and switch to 64bit
@@ -33140,9 +32418,9 @@
 +	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-rc5/arch/x86_64/kernel/init_task.c linux-2.6.18-rc5-xen/arch/x86_64/kernel/init_task.c
---- linux-2.6.18-rc5/arch/x86_64/kernel/init_task.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/x86_64/kernel/init_task.c	2006-07-20 15:56:48.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/kernel/init_task.c linux-2.6.18-rc6-xen/arch/x86_64/kernel/init_task.c
+--- linux-2.6.18-rc6/arch/x86_64/kernel/init_task.c	2006-09-05 10:53:10.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/x86_64/kernel/init_task.c	2006-09-04 16:31:03.000000000 +0200
 @@ -37,6 +37,8 @@
  struct task_struct init_task = INIT_TASK(init_task);
  
@@ -33152,16 +32430,17 @@
  /*
   * per-CPU TSS segments. Threads are completely 'soft' on Linux,
   * no more per-task TSS's. The TSS size is kept cacheline-aligned
-@@ -45,5 +47,6 @@
+@@ -45,6 +47,7 @@
   * on exact cacheline boundaries, to eliminate cacheline ping-pong.
   */ 
  DEFINE_PER_CPU(struct tss_struct, init_tss) ____cacheline_internodealigned_in_smp = INIT_TSS;
 +#endif
  
- #define ALIGN_TO_4K __attribute__((section(".data.init_task")))
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/kernel/io_apic-xen.c linux-2.6.18-rc5-xen/arch/x86_64/kernel/io_apic-xen.c
---- linux-2.6.18-rc5/arch/x86_64/kernel/io_apic-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/kernel/io_apic-xen.c	2006-07-20 15:56:48.000000000 +0200
+ /* 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-rc6/arch/x86_64/kernel/io_apic-xen.c linux-2.6.18-rc6-xen/arch/x86_64/kernel/io_apic-xen.c
+--- linux-2.6.18-rc6/arch/x86_64/kernel/io_apic-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/kernel/io_apic-xen.c	2006-09-04 16:31:03.000000000 +0200
 @@ -0,0 +1,2263 @@
 +/*
 + *	Intel IO-APIC support for multi-Pentium hosts.
@@ -35426,9 +34705,9 @@
 +}
 +#endif
 +#endif /* !CONFIG_XEN */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/kernel/ioport-xen.c linux-2.6.18-rc5-xen/arch/x86_64/kernel/ioport-xen.c
---- linux-2.6.18-rc5/arch/x86_64/kernel/ioport-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/kernel/ioport-xen.c	2006-07-20 15:56:48.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/kernel/ioport-xen.c linux-2.6.18-rc6-xen/arch/x86_64/kernel/ioport-xen.c
+--- linux-2.6.18-rc6/arch/x86_64/kernel/ioport-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/kernel/ioport-xen.c	2006-09-04 16:31:03.000000000 +0200
 @@ -0,0 +1,99 @@
 +/*
 + *	linux/arch/x86_64/kernel/ioport.c
@@ -35529,9 +34808,9 @@
 +
 +	return 0;
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/kernel/irqflags-xen.c linux-2.6.18-rc5-xen/arch/x86_64/kernel/irqflags-xen.c
---- linux-2.6.18-rc5/arch/x86_64/kernel/irqflags-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/kernel/irqflags-xen.c	2006-09-01 00:09:09.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/kernel/irqflags-xen.c linux-2.6.18-rc6-xen/arch/x86_64/kernel/irqflags-xen.c
+--- linux-2.6.18-rc6/arch/x86_64/kernel/irqflags-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/kernel/irqflags-xen.c	2006-09-04 16:31:03.000000000 +0200
 @@ -0,0 +1,100 @@
 +#include <linux/module.h>
 +#include <linux/smp.h>
@@ -35633,9 +34912,9 @@
 +	return disabled;
 +}
 +EXPORT_SYMBOL(raw_irqs_disabled);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/kernel/irq-xen.c linux-2.6.18-rc5-xen/arch/x86_64/kernel/irq-xen.c
---- linux-2.6.18-rc5/arch/x86_64/kernel/irq-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/kernel/irq-xen.c	2006-07-20 15:56:48.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/kernel/irq-xen.c linux-2.6.18-rc6-xen/arch/x86_64/kernel/irq-xen.c
+--- linux-2.6.18-rc6/arch/x86_64/kernel/irq-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/kernel/irq-xen.c	2006-09-04 16:31:03.000000000 +0200
 @@ -0,0 +1,198 @@
 +/*
 + *	linux/arch/x86_64/kernel/irq.c
@@ -35835,9 +35114,9 @@
 +        printk("unexpected IRQ trap at vector %02x\n", irq);
 +}
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/kernel/ldt-xen.c linux-2.6.18-rc5-xen/arch/x86_64/kernel/ldt-xen.c
---- linux-2.6.18-rc5/arch/x86_64/kernel/ldt-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/kernel/ldt-xen.c	2006-07-20 15:56:48.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/kernel/ldt-xen.c linux-2.6.18-rc6-xen/arch/x86_64/kernel/ldt-xen.c
+--- linux-2.6.18-rc6/arch/x86_64/kernel/ldt-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/kernel/ldt-xen.c	2006-09-04 16:31:03.000000000 +0200
 @@ -0,0 +1,282 @@
 +/*
 + * linux/arch/x86_64/kernel/ldt.c
@@ -36121,9 +35400,9 @@
 +	}
 +	return ret;
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/kernel/Makefile linux-2.6.18-rc5-xen/arch/x86_64/kernel/Makefile
---- linux-2.6.18-rc5/arch/x86_64/kernel/Makefile	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/x86_64/kernel/Makefile	2006-09-01 00:09:09.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/kernel/Makefile linux-2.6.18-rc6-xen/arch/x86_64/kernel/Makefile
+--- linux-2.6.18-rc6/arch/x86_64/kernel/Makefile	2006-09-05 10:53:10.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/x86_64/kernel/Makefile	2006-09-04 16:31:03.000000000 +0200
 @@ -21,11 +21,13 @@
  obj-$(CONFIG_X86_CPUID)		+= cpuid.o
  obj-$(CONFIG_SMP)		+= smp.o smpboot.o trampoline.o
@@ -36158,9 +35437,9 @@
 +obj-y := $(call cherrypickxen, $(obj-y))
 +extra-y := $(call cherrypickxen, $(extra-y))
 +endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/kernel/mpparse-xen.c linux-2.6.18-rc5-xen/arch/x86_64/kernel/mpparse-xen.c
---- linux-2.6.18-rc5/arch/x86_64/kernel/mpparse-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/kernel/mpparse-xen.c	2006-08-14 15:07:20.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/kernel/mpparse-xen.c linux-2.6.18-rc6-xen/arch/x86_64/kernel/mpparse-xen.c
+--- linux-2.6.18-rc6/arch/x86_64/kernel/mpparse-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/kernel/mpparse-xen.c	2006-09-04 16:31:03.000000000 +0200
 @@ -0,0 +1,1011 @@
 +/*
 + *	Intel Multiprocessor Specification 1.1 and 1.4
@@ -37173,9 +36452,9 @@
 +
 +#endif /*CONFIG_X86_IO_APIC*/
 +#endif /*CONFIG_ACPI*/
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/kernel/pci-swiotlb-xen.c linux-2.6.18-rc5-xen/arch/x86_64/kernel/pci-swiotlb-xen.c
---- linux-2.6.18-rc5/arch/x86_64/kernel/pci-swiotlb-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/kernel/pci-swiotlb-xen.c	2006-07-20 15:56:48.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/kernel/pci-swiotlb-xen.c linux-2.6.18-rc6-xen/arch/x86_64/kernel/pci-swiotlb-xen.c
+--- linux-2.6.18-rc6/arch/x86_64/kernel/pci-swiotlb-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/kernel/pci-swiotlb-xen.c	2006-09-04 16:31:03.000000000 +0200
 @@ -0,0 +1,54 @@
 +/* Glue code to lib/swiotlb.c */
 +
@@ -37231,9 +36510,9 @@
 +	}
 +#endif
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/kernel/process-xen.c linux-2.6.18-rc5-xen/arch/x86_64/kernel/process-xen.c
---- linux-2.6.18-rc5/arch/x86_64/kernel/process-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/kernel/process-xen.c	2006-09-01 00:09:09.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/kernel/process-xen.c linux-2.6.18-rc6-xen/arch/x86_64/kernel/process-xen.c
+--- linux-2.6.18-rc6/arch/x86_64/kernel/process-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/kernel/process-xen.c	2006-09-04 16:31:03.000000000 +0200
 @@ -0,0 +1,794 @@
 +/*
 + *  linux/arch/x86-64/kernel/process.c
@@ -38029,10 +37308,10 @@
 +{
 +}
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/kernel/setup64-xen.c linux-2.6.18-rc5-xen/arch/x86_64/kernel/setup64-xen.c
---- linux-2.6.18-rc5/arch/x86_64/kernel/setup64-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/kernel/setup64-xen.c	2006-07-20 15:56:48.000000000 +0200
-@@ -0,0 +1,360 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/kernel/setup64-xen.c linux-2.6.18-rc6-xen/arch/x86_64/kernel/setup64-xen.c
+--- linux-2.6.18-rc6/arch/x86_64/kernel/setup64-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/kernel/setup64-xen.c	2006-09-04 16:31:03.000000000 +0200
+@@ -0,0 +1,361 @@
 +/* 
 + * X86-64 specific CPU setup.
 + * Copyright (C) 1995  Linus Torvalds
@@ -38281,6 +37560,7 @@
 +	int cpu = stack_smp_processor_id();
 +#ifndef CONFIG_X86_NO_TSS
 +	struct tss_struct *t = &per_cpu(init_tss, cpu);
++	struct orig_ist *orig_ist = &per_cpu(orig_ist, cpu);
 +	unsigned long v; 
 +	char *estacks = NULL; 
 +	unsigned i;
@@ -38354,7 +37634,7 @@
 +			estacks += EXCEPTION_STKSZ;
 +			break;
 +		}
-+		t->ist[v] = (unsigned long)estacks;
++		orig_ist->ist[v] = t->ist[v] = (unsigned long)estacks;
 +	}
 +
 +	t->io_bitmap_base = offsetof(struct tss_struct, io_bitmap);
@@ -38393,10 +37673,10 @@
 +
 +	fpu_init(); 
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/kernel/setup-xen.c linux-2.6.18-rc5-xen/arch/x86_64/kernel/setup-xen.c
---- linux-2.6.18-rc5/arch/x86_64/kernel/setup-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/kernel/setup-xen.c	2006-09-01 00:09:09.000000000 +0200
-@@ -0,0 +1,1656 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/kernel/setup-xen.c linux-2.6.18-rc6-xen/arch/x86_64/kernel/setup-xen.c
+--- linux-2.6.18-rc6/arch/x86_64/kernel/setup-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/kernel/setup-xen.c	2006-09-04 16:31:03.000000000 +0200
+@@ -0,0 +1,1655 @@
 +/*
 + *  linux/arch/x86-64/kernel/setup.c
 + *
@@ -38975,7 +38255,6 @@
 +
 +void __init setup_arch(char **cmdline_p)
 +{
-+	unsigned long kernel_end;
 +	struct e820entry *machine_e820;
 +	struct xen_memory_map memmap;
 +
@@ -38984,7 +38263,6 @@
 +	atomic_notifier_chain_register(&panic_notifier_list, &xen_panic_block);
 +
 + 	ROOT_DEV = MKDEV(RAMDISK_MAJOR,0); 
-+	kernel_end = 0;		/* dummy */
 + 	screen_info = SCREEN_INFO;
 +
 +	if (is_initial_xendomain()) {
@@ -39111,12 +38389,12 @@
 +				(table_end - table_start) << PAGE_SHIFT);
 +
 +	/* reserve kernel */
-+	kernel_end = round_up(__pa_symbol(&_end),PAGE_SIZE);
-+	reserve_bootmem_generic(HIGH_MEMORY, kernel_end - HIGH_MEMORY);
++	reserve_bootmem_generic(__pa_symbol(&_text),
++				__pa_symbol(&_end) - __pa_symbol(&_text));
 +
 +#ifdef CONFIG_XEN
 +	/* reserve physmap, start info and initial page tables */
-+	reserve_bootmem(kernel_end, (table_start<<PAGE_SHIFT)-kernel_end);
++	reserve_bootmem(__pa_symbol(&_end), (table_start<<PAGE_SHIFT)-__pa_symbol(&_end));
 +#else
 +	/*
 +	 * reserve physical page 0 - it's a special BIOS page on many boxes,
@@ -39203,7 +38481,7 @@
 +
 +		if (!xen_feature(XENFEAT_auto_translated_physmap)) {
 +			/* Make sure we have a large enough P->M table. */
-+			phys_to_machine_mapping = alloc_bootmem(
++			phys_to_machine_mapping = alloc_bootmem_pages(
 +				end_pfn * sizeof(unsigned long));
 +			memset(phys_to_machine_mapping, ~0,
 +			       end_pfn * sizeof(unsigned long));
@@ -39220,7 +38498,7 @@
 +			 * list of frames that make up the p2m table. Used by
 +                         * save/restore.
 +			 */
-+			pfn_to_mfn_frame_list_list = alloc_bootmem(PAGE_SIZE);
++			pfn_to_mfn_frame_list_list = alloc_bootmem_pages(PAGE_SIZE);
 +			HYPERVISOR_shared_info->arch.pfn_to_mfn_frame_list_list =
 +				virt_to_mfn(pfn_to_mfn_frame_list_list);
 +
@@ -39230,7 +38508,7 @@
 +					k++;
 +					BUG_ON(k>=fpp);
 +					pfn_to_mfn_frame_list[k] =
-+						alloc_bootmem(PAGE_SIZE);
++						alloc_bootmem_pages(PAGE_SIZE);
 +					pfn_to_mfn_frame_list_list[k] =
 +						virt_to_mfn(pfn_to_mfn_frame_list[k]);
 +					j=0;
@@ -39310,9 +38588,10 @@
 +		BUG_ON(HYPERVISOR_memory_op(XENMEM_machine_memory_map, &memmap));
 +
 +		e820_reserve_resources(machine_e820, memmap.nr_entries);
-+	} else
-+#endif
++	}
++#else
 +	e820_reserve_resources(e820.map, e820.nr_map);
++#endif
 +
 +	request_resource(&iomem_resource, &video_ram_resource);
 +
@@ -40053,9 +39332,9 @@
 +}
 +device_initcall(add_pcspkr);
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/kernel/smp-xen.c linux-2.6.18-rc5-xen/arch/x86_64/kernel/smp-xen.c
---- linux-2.6.18-rc5/arch/x86_64/kernel/smp-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/kernel/smp-xen.c	2006-08-14 15:07:20.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/kernel/smp-xen.c linux-2.6.18-rc6-xen/arch/x86_64/kernel/smp-xen.c
+--- linux-2.6.18-rc6/arch/x86_64/kernel/smp-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/kernel/smp-xen.c	2006-09-04 16:31:03.000000000 +0200
 @@ -0,0 +1,600 @@
 +/*
 + *	Intel SMP support routines.
@@ -40657,10 +39936,10 @@
 +	return 0; /* Should not happen */
 +#endif
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/kernel/traps-xen.c linux-2.6.18-rc5-xen/arch/x86_64/kernel/traps-xen.c
---- linux-2.6.18-rc5/arch/x86_64/kernel/traps-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/kernel/traps-xen.c	2006-09-01 00:09:09.000000000 +0200
-@@ -0,0 +1,1166 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/kernel/traps-xen.c linux-2.6.18-rc6-xen/arch/x86_64/kernel/traps-xen.c
+--- linux-2.6.18-rc6/arch/x86_64/kernel/traps-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/kernel/traps-xen.c	2006-09-04 16:31:03.000000000 +0200
+@@ -0,0 +1,1173 @@
 +/*
 + *  linux/arch/x86-64/traps.c
 + *
@@ -40769,7 +40048,12 @@
 +}
 +
 +static int kstack_depth_to_print = 10;
++#ifdef CONFIG_STACK_UNWIND
 +static int call_trace = 1;
++#else
++#define call_trace (-1)
++#endif
++
 +
 +#ifdef CONFIG_KALLSYMS
 +# include <linux/kallsyms.h>
@@ -40837,7 +40121,7 @@
 +			break;
 +#endif
 +		default:
-+			end = per_cpu(init_tss, cpu).ist[k];
++			end = per_cpu(orig_tss, cpu).ist[k];
 +			break;
 +		}
 +		/*
@@ -40938,21 +40222,21 @@
 +			if (unwind_init_blocked(&info, tsk) == 0)
 +				unw_ret = show_trace_unwind(&info, NULL);
 +		}
-+		if (unw_ret > 0 && !arch_unw_user_mode(&info)) {
-+#ifdef CONFIG_STACK_UNWIND
-+			unsigned long rip = info.regs.rip;
-+			print_symbol("DWARF2 unwinder stuck at %s\n", rip);
-+			if (call_trace == 1) {
-+				printk("Leftover inexact backtrace:\n");
-+				stack = (unsigned long *)info.regs.rsp;
-+			} else if (call_trace > 1)
++		if (unw_ret > 0) {
++			if (call_trace == 1 && !arch_unw_user_mode(&info)) {
++				print_symbol("DWARF2 unwinder stuck at %s\n",
++					     UNW_PC(&info));
++				if ((long)UNW_SP(&info) < 0) {
++					printk("Leftover inexact backtrace:\n");
++					stack = (unsigned long *)UNW_SP(&info);
++				} else
++					printk("Full inexact backtrace again:\n");
++			} else if (call_trace >= 1)
 +				return;
 +			else
 +				printk("Full inexact backtrace again:\n");
-+#else
++		} else
 +			printk("Inexact backtrace:\n");
-+#endif
-+		}
 +	}
 + 	/*
 + 	 * Print function call entries within a stack. 'cond' is the
@@ -41814,6 +41098,7 @@
 +}
 +__setup("kstack=", kstack_setup);
 +
++#ifdef CONFIG_STACK_UNWIND
 +static int __init call_trace_setup(char *s)
 +{
 +	if (strcmp(s, "old") == 0)
@@ -41827,9 +41112,10 @@
 +	return 1;
 +}
 +__setup("call_trace=", call_trace_setup);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/kernel/vmlinux.lds.S linux-2.6.18-rc5-xen/arch/x86_64/kernel/vmlinux.lds.S
---- linux-2.6.18-rc5/arch/x86_64/kernel/vmlinux.lds.S	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/x86_64/kernel/vmlinux.lds.S	2006-09-01 00:09:09.000000000 +0200
++#endif
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/kernel/vmlinux.lds.S linux-2.6.18-rc6-xen/arch/x86_64/kernel/vmlinux.lds.S
+--- linux-2.6.18-rc6/arch/x86_64/kernel/vmlinux.lds.S	2006-09-05 10:53:10.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/x86_64/kernel/vmlinux.lds.S	2006-09-04 16:31:03.000000000 +0200
 @@ -13,6 +13,12 @@
  OUTPUT_ARCH(i386:x86-64)
  ENTRY(phys_startup_64)
@@ -41886,9 +41172,9 @@
 +
 +  NOTES
  }
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/kernel/vsyscall-xen.c linux-2.6.18-rc5-xen/arch/x86_64/kernel/vsyscall-xen.c
---- linux-2.6.18-rc5/arch/x86_64/kernel/vsyscall-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/kernel/vsyscall-xen.c	2006-07-20 15:56:48.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/kernel/vsyscall-xen.c linux-2.6.18-rc6-xen/arch/x86_64/kernel/vsyscall-xen.c
+--- linux-2.6.18-rc6/arch/x86_64/kernel/vsyscall-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/kernel/vsyscall-xen.c	2006-09-04 16:31:03.000000000 +0200
 @@ -0,0 +1,239 @@
 +/*
 + *  linux/arch/x86_64/kernel/vsyscall.c
@@ -42129,9 +41415,9 @@
 +}
 +
 +__initcall(vsyscall_init);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/kernel/xen_entry.S linux-2.6.18-rc5-xen/arch/x86_64/kernel/xen_entry.S
---- linux-2.6.18-rc5/arch/x86_64/kernel/xen_entry.S	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/kernel/xen_entry.S	2006-07-20 15:56:48.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/kernel/xen_entry.S linux-2.6.18-rc6-xen/arch/x86_64/kernel/xen_entry.S
+--- linux-2.6.18-rc6/arch/x86_64/kernel/xen_entry.S	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/kernel/xen_entry.S	2006-09-04 16:31:03.000000000 +0200
 @@ -0,0 +1,40 @@
 +/*
 + * Copied from arch/xen/i386/kernel/entry.S
@@ -42173,9 +41459,9 @@
 +VGCF_IN_SYSCALL = (1<<8)
 +        
 +	
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/Makefile linux-2.6.18-rc5-xen/arch/x86_64/Makefile
---- linux-2.6.18-rc5/arch/x86_64/Makefile	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/x86_64/Makefile	2006-07-20 15:56:48.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/Makefile linux-2.6.18-rc6-xen/arch/x86_64/Makefile
+--- linux-2.6.18-rc6/arch/x86_64/Makefile	2006-09-05 10:53:09.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/x86_64/Makefile	2006-09-04 16:31:02.000000000 +0200
 @@ -32,6 +32,10 @@
  cflags-$(CONFIG_MPSC) += $(call cc-option,-march=nocona)
  cflags-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=generic)
@@ -42217,9 +41503,9 @@
  
  archclean:
  	$(Q)$(MAKE) $(clean)=$(boot)
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/mm/fault-xen.c linux-2.6.18-rc5-xen/arch/x86_64/mm/fault-xen.c
---- linux-2.6.18-rc5/arch/x86_64/mm/fault-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/mm/fault-xen.c	2006-07-20 15:56:48.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/mm/fault-xen.c linux-2.6.18-rc6-xen/arch/x86_64/mm/fault-xen.c
+--- linux-2.6.18-rc6/arch/x86_64/mm/fault-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/mm/fault-xen.c	2006-09-04 16:31:03.000000000 +0200
 @@ -0,0 +1,723 @@
 +/*
 + *  linux/arch/x86-64/mm/fault.c
@@ -42944,9 +42230,9 @@
 +	return 1;
 +}
 +__setup("pagefaulttrace", enable_pagefaulttrace);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/mm/init-xen.c linux-2.6.18-rc5-xen/arch/x86_64/mm/init-xen.c
---- linux-2.6.18-rc5/arch/x86_64/mm/init-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/mm/init-xen.c	2006-09-01 00:09:09.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/mm/init-xen.c linux-2.6.18-rc6-xen/arch/x86_64/mm/init-xen.c
+--- linux-2.6.18-rc6/arch/x86_64/mm/init-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/mm/init-xen.c	2006-09-04 16:31:03.000000000 +0200
 @@ -0,0 +1,1200 @@
 +/*
 + *  linux/arch/x86_64/mm/init.c
@@ -44148,9 +43434,9 @@
 +{
 +	return (addr >= VSYSCALL_START) && (addr < VSYSCALL_END);
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/mm/Makefile linux-2.6.18-rc5-xen/arch/x86_64/mm/Makefile
---- linux-2.6.18-rc5/arch/x86_64/mm/Makefile	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/x86_64/mm/Makefile	2006-07-20 15:56:48.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/mm/Makefile linux-2.6.18-rc6-xen/arch/x86_64/mm/Makefile
+--- linux-2.6.18-rc6/arch/x86_64/mm/Makefile	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/x86_64/mm/Makefile	2006-09-04 16:31:03.000000000 +0200
 @@ -9,3 +9,13 @@
  obj-$(CONFIG_ACPI_NUMA) += srat.o
  
@@ -44165,9 +43451,9 @@
 +
 +obj-y := $(call cherrypickxen, $(obj-y))
 +endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/mm/pageattr-xen.c linux-2.6.18-rc5-xen/arch/x86_64/mm/pageattr-xen.c
---- linux-2.6.18-rc5/arch/x86_64/mm/pageattr-xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/arch/x86_64/mm/pageattr-xen.c	2006-08-14 15:07:20.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/mm/pageattr-xen.c linux-2.6.18-rc6-xen/arch/x86_64/mm/pageattr-xen.c
+--- linux-2.6.18-rc6/arch/x86_64/mm/pageattr-xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/arch/x86_64/mm/pageattr-xen.c	2006-09-04 16:31:03.000000000 +0200
 @@ -0,0 +1,396 @@
 +/* 
 + * Copyright 2002 Andi Kleen, SuSE Labs. 
@@ -44565,9 +43851,9 @@
 +
 +EXPORT_SYMBOL(change_page_attr);
 +EXPORT_SYMBOL(global_flush_tlb);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/oprofile/Makefile linux-2.6.18-rc5-xen/arch/x86_64/oprofile/Makefile
---- linux-2.6.18-rc5/arch/x86_64/oprofile/Makefile	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/x86_64/oprofile/Makefile	2006-07-20 15:56:49.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/oprofile/Makefile linux-2.6.18-rc6-xen/arch/x86_64/oprofile/Makefile
+--- linux-2.6.18-rc6/arch/x86_64/oprofile/Makefile	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/x86_64/oprofile/Makefile	2006-09-04 16:31:03.000000000 +0200
 @@ -11,9 +11,12 @@
  	oprofilefs.o oprofile_stats.o \
  	timer_int.o )
@@ -44582,9 +43868,9 @@
 -
 +endif
  oprofile-y = $(DRIVER_OBJS) $(addprefix ../../i386/oprofile/, $(OPROFILE-y))
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/arch/x86_64/pci/Makefile linux-2.6.18-rc5-xen/arch/x86_64/pci/Makefile
---- linux-2.6.18-rc5/arch/x86_64/pci/Makefile	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/arch/x86_64/pci/Makefile	2006-07-20 15:56:49.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/arch/x86_64/pci/Makefile linux-2.6.18-rc6-xen/arch/x86_64/pci/Makefile
+--- linux-2.6.18-rc6/arch/x86_64/pci/Makefile	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/arch/x86_64/pci/Makefile	2006-09-04 16:31:03.000000000 +0200
 @@ -15,11 +15,23 @@
  
  obj-$(CONFIG_NUMA)	+= k8-bus.o
@@ -44609,9 +43895,9 @@
 +
 +obj-y := $(call cherrypickxen, $(obj-y))
 +endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/acpi/Kconfig linux-2.6.18-rc5-xen/drivers/acpi/Kconfig
---- linux-2.6.18-rc5/drivers/acpi/Kconfig	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/drivers/acpi/Kconfig	2006-07-20 15:56:50.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/acpi/Kconfig linux-2.6.18-rc6-xen/drivers/acpi/Kconfig
+--- linux-2.6.18-rc6/drivers/acpi/Kconfig	2006-09-05 10:53:10.000000000 +0200
++++ linux-2.6.18-rc6-xen/drivers/acpi/Kconfig	2006-09-04 16:31:03.000000000 +0200
 @@ -45,7 +45,7 @@
  
  config ACPI_SLEEP
@@ -44629,9 +43915,9 @@
  	default y
  	help
  	  The Power Management Timer is available on all ACPI-capable,
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/char/hangcheck-timer.c linux-2.6.18-rc5-xen/drivers/char/hangcheck-timer.c
---- linux-2.6.18-rc5/drivers/char/hangcheck-timer.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/drivers/char/hangcheck-timer.c	2006-07-20 15:56:52.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/char/hangcheck-timer.c linux-2.6.18-rc6-xen/drivers/char/hangcheck-timer.c
+--- linux-2.6.18-rc6/drivers/char/hangcheck-timer.c	2006-09-05 10:53:11.000000000 +0200
++++ linux-2.6.18-rc6-xen/drivers/char/hangcheck-timer.c	2006-09-04 16:31:04.000000000 +0200
 @@ -117,7 +117,7 @@
  __setup("hcheck_dump_tasks", hangcheck_parse_dump_tasks);
  #endif /* not MODULE */
@@ -44641,9 +43927,9 @@
  # define HAVE_MONOTONIC
  # define TIMER_FREQ 1000000000ULL
  #elif defined(CONFIG_IA64)
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/char/mem.c linux-2.6.18-rc5-xen/drivers/char/mem.c
---- linux-2.6.18-rc5/drivers/char/mem.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/drivers/char/mem.c	2006-07-20 15:56:52.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/char/mem.c linux-2.6.18-rc6-xen/drivers/char/mem.c
+--- linux-2.6.18-rc6/drivers/char/mem.c	2006-09-05 10:53:11.000000000 +0200
++++ linux-2.6.18-rc6-xen/drivers/char/mem.c	2006-09-04 16:31:04.000000000 +0200
 @@ -101,6 +101,7 @@
  }
  #endif
@@ -44678,9 +43964,9 @@
  
  static const struct file_operations kmem_fops = {
  	.llseek		= memory_lseek,
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/char/tpm/Kconfig linux-2.6.18-rc5-xen/drivers/char/tpm/Kconfig
---- linux-2.6.18-rc5/drivers/char/tpm/Kconfig	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/drivers/char/tpm/Kconfig	2006-07-20 15:56:52.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/char/tpm/Kconfig linux-2.6.18-rc6-xen/drivers/char/tpm/Kconfig
+--- linux-2.6.18-rc6/drivers/char/tpm/Kconfig	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/drivers/char/tpm/Kconfig	2006-09-04 16:31:04.000000000 +0200
 @@ -31,7 +31,7 @@
  
  config TCG_NSC
@@ -44705,18 +43991,18 @@
 +	  will be called tpm_xenu.
  
 +endmenu
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/char/tpm/Makefile linux-2.6.18-rc5-xen/drivers/char/tpm/Makefile
---- linux-2.6.18-rc5/drivers/char/tpm/Makefile	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/drivers/char/tpm/Makefile	2006-07-20 15:56:52.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/char/tpm/Makefile linux-2.6.18-rc6-xen/drivers/char/tpm/Makefile
+--- linux-2.6.18-rc6/drivers/char/tpm/Makefile	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/drivers/char/tpm/Makefile	2006-09-04 16:31:04.000000000 +0200
 @@ -9,3 +9,5 @@
  obj-$(CONFIG_TCG_NSC) += tpm_nsc.o
  obj-$(CONFIG_TCG_ATMEL) += tpm_atmel.o
  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-rc5/drivers/char/tpm/tpm.c linux-2.6.18-rc5-xen/drivers/char/tpm/tpm.c
---- linux-2.6.18-rc5/drivers/char/tpm/tpm.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/drivers/char/tpm/tpm.c	2006-09-01 00:09:09.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/char/tpm/tpm.c linux-2.6.18-rc6-xen/drivers/char/tpm/tpm.c
+--- linux-2.6.18-rc6/drivers/char/tpm/tpm.c	2006-09-05 10:53:12.000000000 +0200
++++ linux-2.6.18-rc6-xen/drivers/char/tpm/tpm.c	2006-09-04 16:31:04.000000000 +0200
 @@ -30,7 +30,9 @@
  
  enum tpm_const {
@@ -44837,9 +44123,9 @@
  	return ret_size;
  }
  EXPORT_SYMBOL_GPL(tpm_read);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/char/tpm/tpm.h linux-2.6.18-rc5-xen/drivers/char/tpm/tpm.h
---- linux-2.6.18-rc5/drivers/char/tpm/tpm.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/drivers/char/tpm/tpm.h	2006-07-20 15:56:52.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/char/tpm/tpm.h linux-2.6.18-rc6-xen/drivers/char/tpm/tpm.h
+--- linux-2.6.18-rc6/drivers/char/tpm/tpm.h	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/drivers/char/tpm/tpm.h	2006-09-04 16:31:04.000000000 +0200
 @@ -61,6 +61,7 @@
  	const u8 req_complete_mask;
  	const u8 req_complete_val;
@@ -44868,9 +44154,9 @@
  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-rc5/drivers/char/tpm/tpm_vtpm.c linux-2.6.18-rc5-xen/drivers/char/tpm/tpm_vtpm.c
---- linux-2.6.18-rc5/drivers/char/tpm/tpm_vtpm.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/char/tpm/tpm_vtpm.c	2006-07-20 15:56:52.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/char/tpm/tpm_vtpm.c linux-2.6.18-rc6-xen/drivers/char/tpm/tpm_vtpm.c
+--- linux-2.6.18-rc6/drivers/char/tpm/tpm_vtpm.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/char/tpm/tpm_vtpm.c	2006-09-04 16:31:04.000000000 +0200
 @@ -0,0 +1,547 @@
 +/*
 + * Copyright (C) 2006 IBM Corporation
@@ -45419,9 +44705,9 @@
 +	tpm_remove_hardware(dev);
 +	kfree(vtpms);
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/char/tpm/tpm_vtpm.h linux-2.6.18-rc5-xen/drivers/char/tpm/tpm_vtpm.h
---- linux-2.6.18-rc5/drivers/char/tpm/tpm_vtpm.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/char/tpm/tpm_vtpm.h	2006-07-20 15:56:52.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/char/tpm/tpm_vtpm.h linux-2.6.18-rc6-xen/drivers/char/tpm/tpm_vtpm.h
+--- linux-2.6.18-rc6/drivers/char/tpm/tpm_vtpm.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/char/tpm/tpm_vtpm.h	2006-09-04 16:31:04.000000000 +0200
 @@ -0,0 +1,68 @@
 +#ifndef TPM_VTPM_H
 +#define TPM_VTPM_H
@@ -45491,9 +44777,9 @@
 +}
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/char/tpm/tpm_xen.c linux-2.6.18-rc5-xen/drivers/char/tpm/tpm_xen.c
---- linux-2.6.18-rc5/drivers/char/tpm/tpm_xen.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/char/tpm/tpm_xen.c	2006-09-01 00:09:09.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/char/tpm/tpm_xen.c linux-2.6.18-rc6-xen/drivers/char/tpm/tpm_xen.c
+--- linux-2.6.18-rc6/drivers/char/tpm/tpm_xen.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/char/tpm/tpm_xen.c	2006-09-04 16:31:04.000000000 +0200
 @@ -0,0 +1,756 @@
 +/*
 + * Copyright (c) 2005, IBM Corporation
@@ -46251,9 +45537,9 @@
 +module_init(tpmif_init);
 +
 +MODULE_LICENSE("Dual BSD/GPL");
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/char/tty_io.c linux-2.6.18-rc5-xen/drivers/char/tty_io.c
---- linux-2.6.18-rc5/drivers/char/tty_io.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/drivers/char/tty_io.c	2006-09-01 00:09:09.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/char/tty_io.c linux-2.6.18-rc6-xen/drivers/char/tty_io.c
+--- linux-2.6.18-rc6/drivers/char/tty_io.c	2006-09-05 10:53:12.000000000 +0200
++++ linux-2.6.18-rc6-xen/drivers/char/tty_io.c	2006-09-04 16:31:04.000000000 +0200
 @@ -130,6 +130,8 @@
     vt.c for deeply disgusting hack reasons */
  DEFINE_MUTEX(tty_mutex);
@@ -46289,9 +45575,9 @@
  #endif
  	return 0;
  }
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/firmware/Kconfig linux-2.6.18-rc5-xen/drivers/firmware/Kconfig
---- linux-2.6.18-rc5/drivers/firmware/Kconfig	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/drivers/firmware/Kconfig	2006-07-20 15:56:53.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/firmware/Kconfig linux-2.6.18-rc6-xen/drivers/firmware/Kconfig
+--- linux-2.6.18-rc6/drivers/firmware/Kconfig	2006-09-05 10:53:12.000000000 +0200
++++ linux-2.6.18-rc6-xen/drivers/firmware/Kconfig	2006-09-04 16:31:04.000000000 +0200
 @@ -7,7 +7,7 @@
  
  config EDD
@@ -46301,9 +45587,9 @@
  	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-rc5/drivers/ide/ide-lib.c linux-2.6.18-rc5-xen/drivers/ide/ide-lib.c
---- linux-2.6.18-rc5/drivers/ide/ide-lib.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/drivers/ide/ide-lib.c	2006-07-20 15:56:53.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/ide/ide-lib.c linux-2.6.18-rc6-xen/drivers/ide/ide-lib.c
+--- linux-2.6.18-rc6/drivers/ide/ide-lib.c	2006-09-05 10:53:12.000000000 +0200
++++ linux-2.6.18-rc6-xen/drivers/ide/ide-lib.c	2006-09-04 16:31:04.000000000 +0200
 @@ -408,10 +408,10 @@
  {
  	u64 addr = BLK_BOUNCE_HIGH;	/* dma64_addr_t */
@@ -46319,9 +45605,9 @@
  			addr = HWIF(drive)->pci_dev->dma_mask;
  	}
  
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/Makefile linux-2.6.18-rc5-xen/drivers/Makefile
---- linux-2.6.18-rc5/drivers/Makefile	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/drivers/Makefile	2006-07-20 15:56:50.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/Makefile linux-2.6.18-rc6-xen/drivers/Makefile
+--- linux-2.6.18-rc6/drivers/Makefile	2006-09-05 10:53:10.000000000 +0200
++++ linux-2.6.18-rc6-xen/drivers/Makefile	2006-09-04 16:31:03.000000000 +0200
 @@ -31,6 +31,7 @@
  obj-$(CONFIG_NUBUS)		+= nubus/
  obj-$(CONFIG_ATM)		+= atm/
@@ -46330,9 +45616,9 @@
  obj-$(CONFIG_IDE)		+= ide/
  obj-$(CONFIG_FC4)		+= fc4/
  obj-$(CONFIG_SCSI)		+= scsi/
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/oprofile/buffer_sync.c linux-2.6.18-rc5-xen/drivers/oprofile/buffer_sync.c
---- linux-2.6.18-rc5/drivers/oprofile/buffer_sync.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/drivers/oprofile/buffer_sync.c	2006-07-20 15:57:08.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/oprofile/buffer_sync.c linux-2.6.18-rc6-xen/drivers/oprofile/buffer_sync.c
+--- linux-2.6.18-rc6/drivers/oprofile/buffer_sync.c	2006-09-05 10:53:21.000000000 +0200
++++ linux-2.6.18-rc6-xen/drivers/oprofile/buffer_sync.c	2006-09-04 16:31:08.000000000 +0200
 @@ -6,6 +6,10 @@
   *
   * @author John Levon <levon at movementarian.org>
@@ -46453,9 +45739,9 @@
  				}
  			}
  		}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/oprofile/cpu_buffer.c linux-2.6.18-rc5-xen/drivers/oprofile/cpu_buffer.c
---- linux-2.6.18-rc5/drivers/oprofile/cpu_buffer.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/drivers/oprofile/cpu_buffer.c	2006-07-20 15:57:08.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/oprofile/cpu_buffer.c linux-2.6.18-rc6-xen/drivers/oprofile/cpu_buffer.c
+--- linux-2.6.18-rc6/drivers/oprofile/cpu_buffer.c	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/drivers/oprofile/cpu_buffer.c	2006-09-04 16:31:08.000000000 +0200
 @@ -6,6 +6,10 @@
   *
   * @author John Levon <levon at movementarian.org>
@@ -46565,9 +45851,9 @@
  /*
   * This serves to avoid cpu buffer overflow, and makes sure
   * the task mortuary progresses
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/oprofile/cpu_buffer.h linux-2.6.18-rc5-xen/drivers/oprofile/cpu_buffer.h
---- linux-2.6.18-rc5/drivers/oprofile/cpu_buffer.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/drivers/oprofile/cpu_buffer.h	2006-07-20 15:57:08.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/oprofile/cpu_buffer.h linux-2.6.18-rc6-xen/drivers/oprofile/cpu_buffer.h
+--- linux-2.6.18-rc6/drivers/oprofile/cpu_buffer.h	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/drivers/oprofile/cpu_buffer.h	2006-09-04 16:31:08.000000000 +0200
 @@ -36,7 +36,7 @@
  	volatile unsigned long tail_pos;
  	unsigned long buffer_size;
@@ -46590,9 +45876,9 @@
 +#define CPU_DOMAIN_SWITCH       4
  
  #endif /* OPROFILE_CPU_BUFFER_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/oprofile/event_buffer.h linux-2.6.18-rc5-xen/drivers/oprofile/event_buffer.h
---- linux-2.6.18-rc5/drivers/oprofile/event_buffer.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/drivers/oprofile/event_buffer.h	2006-07-20 15:57:08.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/oprofile/event_buffer.h linux-2.6.18-rc6-xen/drivers/oprofile/event_buffer.h
+--- linux-2.6.18-rc6/drivers/oprofile/event_buffer.h	2006-09-05 10:53:21.000000000 +0200
++++ linux-2.6.18-rc6-xen/drivers/oprofile/event_buffer.h	2006-09-04 16:31:08.000000000 +0200
 @@ -29,15 +29,20 @@
  #define CPU_SWITCH_CODE 		2
  #define COOKIE_SWITCH_CODE 		3
@@ -46615,9 +45901,9 @@
  /* add data to the event buffer */
  void add_event_entry(unsigned long data);
   
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/oprofile/oprof.c linux-2.6.18-rc5-xen/drivers/oprofile/oprof.c
---- linux-2.6.18-rc5/drivers/oprofile/oprof.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/drivers/oprofile/oprof.c	2006-08-14 15:07:20.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/oprofile/oprof.c linux-2.6.18-rc6-xen/drivers/oprofile/oprof.c
+--- linux-2.6.18-rc6/drivers/oprofile/oprof.c	2006-09-05 10:53:21.000000000 +0200
++++ linux-2.6.18-rc6-xen/drivers/oprofile/oprof.c	2006-09-04 16:31:08.000000000 +0200
 @@ -5,6 +5,10 @@
   * @remark Read the file COPYING
   *
@@ -46671,9 +45957,9 @@
  int oprofile_setup(void)
  {
  	int err;
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/oprofile/oprof.h linux-2.6.18-rc5-xen/drivers/oprofile/oprof.h
---- linux-2.6.18-rc5/drivers/oprofile/oprof.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/drivers/oprofile/oprof.h	2006-07-20 15:57:08.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/oprofile/oprof.h linux-2.6.18-rc6-xen/drivers/oprofile/oprof.h
+--- linux-2.6.18-rc6/drivers/oprofile/oprof.h	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/drivers/oprofile/oprof.h	2006-09-04 16:31:08.000000000 +0200
 @@ -35,5 +35,8 @@
  void oprofile_timer_init(struct oprofile_operations * ops);
  
@@ -46683,9 +45969,9 @@
 +int oprofile_set_passive(int passive_domains[], unsigned int pdomains);
   
  #endif /* OPROF_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/oprofile/oprofile_files.c linux-2.6.18-rc5-xen/drivers/oprofile/oprofile_files.c
---- linux-2.6.18-rc5/drivers/oprofile/oprofile_files.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/drivers/oprofile/oprofile_files.c	2006-07-20 15:57:08.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/oprofile/oprofile_files.c linux-2.6.18-rc6-xen/drivers/oprofile/oprofile_files.c
+--- linux-2.6.18-rc6/drivers/oprofile/oprofile_files.c	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/drivers/oprofile/oprofile_files.c	2006-09-04 16:31:08.000000000 +0200
 @@ -5,15 +5,21 @@
   * @remark Read the file COPYING
   *
@@ -46919,9 +46205,9 @@
  	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-rc5/drivers/pci/Kconfig linux-2.6.18-rc5-xen/drivers/pci/Kconfig
---- linux-2.6.18-rc5/drivers/pci/Kconfig	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/drivers/pci/Kconfig	2006-07-20 15:57:09.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/pci/Kconfig linux-2.6.18-rc6-xen/drivers/pci/Kconfig
+--- linux-2.6.18-rc6/drivers/pci/Kconfig	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/drivers/pci/Kconfig	2006-09-04 16:31:08.000000000 +0200
 @@ -5,6 +5,7 @@
  	bool "Message Signaled Interrupts (MSI and MSI-X)"
  	depends on PCI
@@ -46930,47 +46216,9 @@
  	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-rc5/drivers/serial/8250_pci.c linux-2.6.18-rc5-xen/drivers/serial/8250_pci.c
---- linux-2.6.18-rc5/drivers/serial/8250_pci.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/drivers/serial/8250_pci.c	2006-09-01 00:09:11.000000000 +0200
-@@ -936,6 +936,7 @@
- 	pbn_b1_8_1382400,
- 
- 	pbn_b2_1_115200,
-+	pbn_b2_2_115200,
- 	pbn_b2_8_115200,
- 
- 	pbn_b2_1_460800,
-@@ -1243,6 +1244,12 @@
- 		.base_baud	= 115200,
- 		.uart_offset	= 8,
- 	},
-+	[pbn_b2_2_115200] = {
-+		.flags		= FL_BASE2,
-+		.num_ports	= 2,
-+		.base_baud	= 115200,
-+		.uart_offset	= 8,
-+	},
- 	[pbn_b2_8_115200] = {
- 		.flags		= FL_BASE2,
- 		.num_ports	= 8,
-@@ -2340,6 +2347,13 @@
- 		pbn_b0_1_115200 },
- 
- 	/*
-+	 * IntaShield IS-200
-+	 */
-+	{	PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_IS200,
-+		PCI_ANY_ID, PCI_ANY_ID, 0, 0,	/* 135a.0811 */
-+		pbn_b2_2_115200 },
-+
-+	/*
- 	 * These entries match devices with class COMMUNICATION_SERIAL,
- 	 * COMMUNICATION_MODEM or COMMUNICATION_MULTISERIAL
- 	 */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/serial/Kconfig linux-2.6.18-rc5-xen/drivers/serial/Kconfig
---- linux-2.6.18-rc5/drivers/serial/Kconfig	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/drivers/serial/Kconfig	2006-07-20 15:57:13.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/serial/Kconfig linux-2.6.18-rc6-xen/drivers/serial/Kconfig
+--- linux-2.6.18-rc6/drivers/serial/Kconfig	2006-09-05 10:53:23.000000000 +0200
++++ linux-2.6.18-rc6-xen/drivers/serial/Kconfig	2006-09-04 16:31:10.000000000 +0200
 @@ -11,6 +11,7 @@
  config SERIAL_8250
  	tristate "8250/16550 and compatible serial support"
@@ -46979,9 +46227,9 @@
  	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-rc5/drivers/xen/balloon/balloon.c linux-2.6.18-rc5-xen/drivers/xen/balloon/balloon.c
---- linux-2.6.18-rc5/drivers/xen/balloon/balloon.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/balloon/balloon.c	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/balloon/balloon.c linux-2.6.18-rc6-xen/drivers/xen/balloon/balloon.c
+--- linux-2.6.18-rc6/drivers/xen/balloon/balloon.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/balloon/balloon.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,625 @@
 +/******************************************************************************
 + * balloon.c
@@ -47608,15 +46856,15 @@
 +EXPORT_SYMBOL_GPL(balloon_release_driver_page);
 +
 +MODULE_LICENSE("Dual BSD/GPL");
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/balloon/Makefile linux-2.6.18-rc5-xen/drivers/xen/balloon/Makefile
---- linux-2.6.18-rc5/drivers/xen/balloon/Makefile	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/balloon/Makefile	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/balloon/Makefile linux-2.6.18-rc6-xen/drivers/xen/balloon/Makefile
+--- linux-2.6.18-rc6/drivers/xen/balloon/Makefile	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/balloon/Makefile	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,2 @@
 +
 +obj-y += balloon.o
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/blkback/blkback.c linux-2.6.18-rc5-xen/drivers/xen/blkback/blkback.c
---- linux-2.6.18-rc5/drivers/xen/blkback/blkback.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/blkback/blkback.c	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/blkback/blkback.c linux-2.6.18-rc6-xen/drivers/xen/blkback/blkback.c
+--- linux-2.6.18-rc6/drivers/xen/blkback/blkback.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/blkback/blkback.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,567 @@
 +/******************************************************************************
 + * arch/xen/drivers/blkif/backend/main.c
@@ -48185,9 +47433,9 @@
 +module_init(blkif_init);
 +
 +MODULE_LICENSE("Dual BSD/GPL");
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/blkback/common.h linux-2.6.18-rc5-xen/drivers/xen/blkback/common.h
---- linux-2.6.18-rc5/drivers/xen/blkback/common.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/blkback/common.h	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/blkback/common.h linux-2.6.18-rc6-xen/drivers/xen/blkback/common.h
+--- linux-2.6.18-rc6/drivers/xen/blkback/common.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/blkback/common.h	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,133 @@
 +/* 
 + * This program is free software; you can redistribute it and/or
@@ -48322,9 +47570,9 @@
 +int blkif_schedule(void *arg);
 +
 +#endif /* __BLKIF__BACKEND__COMMON_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/blkback/interface.c linux-2.6.18-rc5-xen/drivers/xen/blkback/interface.c
---- linux-2.6.18-rc5/drivers/xen/blkback/interface.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/blkback/interface.c	2006-08-14 15:07:21.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/blkback/interface.c linux-2.6.18-rc6-xen/drivers/xen/blkback/interface.c
+--- linux-2.6.18-rc6/drivers/xen/blkback/interface.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/blkback/interface.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,171 @@
 +/******************************************************************************
 + * arch/xen/drivers/blkif/backend/interface.c
@@ -48497,16 +47745,16 @@
 +	blkif_cachep = kmem_cache_create("blkif_cache", sizeof(blkif_t), 
 +					 0, 0, NULL, NULL);
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/blkback/Makefile linux-2.6.18-rc5-xen/drivers/xen/blkback/Makefile
---- linux-2.6.18-rc5/drivers/xen/blkback/Makefile	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/blkback/Makefile	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/blkback/Makefile linux-2.6.18-rc6-xen/drivers/xen/blkback/Makefile
+--- linux-2.6.18-rc6/drivers/xen/blkback/Makefile	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/blkback/Makefile	2006-09-04 16:31:13.000000000 +0200
 @@ -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-rc5/drivers/xen/blkback/vbd.c linux-2.6.18-rc5-xen/drivers/xen/blkback/vbd.c
---- linux-2.6.18-rc5/drivers/xen/blkback/vbd.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/blkback/vbd.c	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/blkback/vbd.c linux-2.6.18-rc6-xen/drivers/xen/blkback/vbd.c
+--- linux-2.6.18-rc6/drivers/xen/blkback/vbd.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/blkback/vbd.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,119 @@
 +/******************************************************************************
 + * blkback/vbd.c
@@ -48627,9 +47875,9 @@
 + out:
 +	return rc;
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/blkback/xenbus.c linux-2.6.18-rc5-xen/drivers/xen/blkback/xenbus.c
---- linux-2.6.18-rc5/drivers/xen/blkback/xenbus.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/blkback/xenbus.c	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/blkback/xenbus.c linux-2.6.18-rc6-xen/drivers/xen/blkback/xenbus.c
+--- linux-2.6.18-rc6/drivers/xen/blkback/xenbus.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/blkback/xenbus.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,464 @@
 +/*  Xenbus code for blkif backend
 +    Copyright (C) 2005 Rusty Russell <rusty at rustcorp.com.au>
@@ -49095,9 +48343,9 @@
 +{
 +	xenbus_register_backend(&blkback);
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/blkfront/blkfront.c linux-2.6.18-rc5-xen/drivers/xen/blkfront/blkfront.c
---- linux-2.6.18-rc5/drivers/xen/blkfront/blkfront.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/blkfront/blkfront.c	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/blkfront/blkfront.c linux-2.6.18-rc6-xen/drivers/xen/blkfront/blkfront.c
+--- linux-2.6.18-rc6/drivers/xen/blkfront/blkfront.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/blkfront/blkfront.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,842 @@
 +/******************************************************************************
 + * blkfront.c
@@ -49941,9 +49189,9 @@
 +module_exit(xlblk_exit);
 +
 +MODULE_LICENSE("Dual BSD/GPL");
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/blkfront/block.h linux-2.6.18-rc5-xen/drivers/xen/blkfront/block.h
---- linux-2.6.18-rc5/drivers/xen/blkfront/block.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/blkfront/block.h	2006-08-14 15:07:21.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/blkfront/block.h linux-2.6.18-rc6-xen/drivers/xen/blkfront/block.h
+--- linux-2.6.18-rc6/drivers/xen/blkfront/block.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/blkfront/block.h	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,154 @@
 +/******************************************************************************
 + * block.h
@@ -50099,9 +49347,9 @@
 +void xlvbd_del(struct blkfront_info *info);
 +
 +#endif /* __XEN_DRIVERS_BLOCK_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/blkfront/Kconfig linux-2.6.18-rc5-xen/drivers/xen/blkfront/Kconfig
---- linux-2.6.18-rc5/drivers/xen/blkfront/Kconfig	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/blkfront/Kconfig	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/blkfront/Kconfig linux-2.6.18-rc6-xen/drivers/xen/blkfront/Kconfig
+--- linux-2.6.18-rc6/drivers/xen/blkfront/Kconfig	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/blkfront/Kconfig	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,6 @@
 +
 +config XENBLOCK
@@ -50109,18 +49357,18 @@
 +	depends on ARCH_XEN
 +	help
 +	  Block device driver for Xen
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/blkfront/Makefile linux-2.6.18-rc5-xen/drivers/xen/blkfront/Makefile
---- linux-2.6.18-rc5/drivers/xen/blkfront/Makefile	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/blkfront/Makefile	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/blkfront/Makefile linux-2.6.18-rc6-xen/drivers/xen/blkfront/Makefile
+--- linux-2.6.18-rc6/drivers/xen/blkfront/Makefile	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/blkfront/Makefile	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,5 @@
 +
 +obj-$(CONFIG_XEN_BLKDEV_FRONTEND)	:= xenblk.o
 +
 +xenblk-objs := blkfront.o vbd.o
 +
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/blkfront/vbd.c linux-2.6.18-rc5-xen/drivers/xen/blkfront/vbd.c
---- linux-2.6.18-rc5/drivers/xen/blkfront/vbd.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/blkfront/vbd.c	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/blkfront/vbd.c linux-2.6.18-rc6-xen/drivers/xen/blkfront/vbd.c
+--- linux-2.6.18-rc6/drivers/xen/blkfront/vbd.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/blkfront/vbd.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,318 @@
 +/******************************************************************************
 + * vbd.c
@@ -50440,9 +49688,9 @@
 +	blk_cleanup_queue(info->rq);
 +	info->rq = NULL;
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/blktap/blktap.c linux-2.6.18-rc5-xen/drivers/xen/blktap/blktap.c
---- linux-2.6.18-rc5/drivers/xen/blktap/blktap.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/blktap/blktap.c	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/blktap/blktap.c linux-2.6.18-rc6-xen/drivers/xen/blktap/blktap.c
+--- linux-2.6.18-rc6/drivers/xen/blktap/blktap.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/blktap/blktap.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,1444 @@
 +/******************************************************************************
 + * drivers/xen/blktap/blktap.c
@@ -50559,8 +49807,8 @@
 +} domid_translate_t ;
 +
 +
-+domid_translate_t  translate_domid[MAX_TAP_DEV];
-+tap_blkif_t *tapfds[MAX_TAP_DEV];
++static domid_translate_t  translate_domid[MAX_TAP_DEV];
++static tap_blkif_t *tapfds[MAX_TAP_DEV];
 +
 +static int __init set_blkif_reqs(char *str)
 +{
@@ -51563,7 +50811,7 @@
 +			       "ring does not exist!\n");
 +			print_dbug = 0; /*We only print this message once*/
 +		}
-+		return 1;
++		return 0;
 +	}
 +
 +	info = tapfds[blkif->dev_num];
@@ -51572,7 +50820,7 @@
 +			WPRINTK("Can't get UE info!\n");
 +			print_dbug = 0;
 +		}
-+		return 1;
++		return 0;
 +	}
 +
 +	while (rc != rp) {
@@ -51888,9 +51136,9 @@
 +module_init(blkif_init);
 +
 +MODULE_LICENSE("Dual BSD/GPL");
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/blktap/common.h linux-2.6.18-rc5-xen/drivers/xen/blktap/common.h
---- linux-2.6.18-rc5/drivers/xen/blktap/common.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/blktap/common.h	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/blktap/common.h linux-2.6.18-rc6-xen/drivers/xen/blktap/common.h
+--- linux-2.6.18-rc6/drivers/xen/blktap/common.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/blktap/common.h	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,119 @@
 +/* 
 + * This program is free software; you can redistribute it and/or
@@ -52011,9 +51259,9 @@
 +void signal_tapdisk(int idx);
 +
 +#endif /* __BLKIF__BACKEND__COMMON_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/blktap/interface.c linux-2.6.18-rc5-xen/drivers/xen/blktap/interface.c
---- linux-2.6.18-rc5/drivers/xen/blktap/interface.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/blktap/interface.c	2006-08-14 15:07:21.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/blktap/interface.c linux-2.6.18-rc6-xen/drivers/xen/blktap/interface.c
+--- linux-2.6.18-rc6/drivers/xen/blktap/interface.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/blktap/interface.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,159 @@
 +/******************************************************************************
 + * drivers/xen/blktap/interface.c
@@ -52174,16 +51422,16 @@
 +	blkif_cachep = kmem_cache_create("blktapif_cache", sizeof(blkif_t), 
 +					 0, 0, NULL, NULL);
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/blktap/Makefile linux-2.6.18-rc5-xen/drivers/xen/blktap/Makefile
---- linux-2.6.18-rc5/drivers/xen/blktap/Makefile	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/blktap/Makefile	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/blktap/Makefile linux-2.6.18-rc6-xen/drivers/xen/blktap/Makefile
+--- linux-2.6.18-rc6/drivers/xen/blktap/Makefile	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/blktap/Makefile	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,3 @@
 +LINUXINCLUDE += -I../xen/include/public/io
 +obj-y	:= xenbus.o interface.o blktap.o 
 +
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/blktap/xenbus.c linux-2.6.18-rc5-xen/drivers/xen/blktap/xenbus.c
---- linux-2.6.18-rc5/drivers/xen/blktap/xenbus.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/blktap/xenbus.c	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/blktap/xenbus.c linux-2.6.18-rc6-xen/drivers/xen/blktap/xenbus.c
+--- linux-2.6.18-rc6/drivers/xen/blktap/xenbus.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/blktap/xenbus.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,353 @@
 +/* drivers/xen/blktap/xenbus.c
 + *
@@ -52538,15 +51786,15 @@
 +{
 +	xenbus_register_backend(&blktap);
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/char/Makefile linux-2.6.18-rc5-xen/drivers/xen/char/Makefile
---- linux-2.6.18-rc5/drivers/xen/char/Makefile	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/char/Makefile	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/char/Makefile linux-2.6.18-rc6-xen/drivers/xen/char/Makefile
+--- linux-2.6.18-rc6/drivers/xen/char/Makefile	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/char/Makefile	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,2 @@
 +
 +obj-y	:= mem.o
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/char/mem.c linux-2.6.18-rc5-xen/drivers/xen/char/mem.c
---- linux-2.6.18-rc5/drivers/xen/char/mem.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/char/mem.c	2006-08-14 15:07:21.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/char/mem.c linux-2.6.18-rc6-xen/drivers/xen/char/mem.c
+--- linux-2.6.18-rc6/drivers/xen/char/mem.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/char/mem.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,180 @@
 +/*
 + *  Originally from linux/drivers/char/mem.c
@@ -52728,9 +51976,9 @@
 +	.mmap		= mmap_mem,
 +	.open		= open_mem,
 +};
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/console/console.c linux-2.6.18-rc5-xen/drivers/xen/console/console.c
---- linux-2.6.18-rc5/drivers/xen/console/console.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/console/console.c	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/console/console.c linux-2.6.18-rc6-xen/drivers/xen/console/console.c
+--- linux-2.6.18-rc6/drivers/xen/console/console.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/console/console.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,644 @@
 +/******************************************************************************
 + * console.c
@@ -53376,15 +52624,15 @@
 +module_init(xencons_init);
 +
 +MODULE_LICENSE("Dual BSD/GPL");
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/console/Makefile linux-2.6.18-rc5-xen/drivers/xen/console/Makefile
---- linux-2.6.18-rc5/drivers/xen/console/Makefile	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/console/Makefile	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/console/Makefile linux-2.6.18-rc6-xen/drivers/xen/console/Makefile
+--- linux-2.6.18-rc6/drivers/xen/console/Makefile	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/console/Makefile	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,2 @@
 +
 +obj-y	:= console.o xencons_ring.o
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/console/xencons_ring.c linux-2.6.18-rc5-xen/drivers/xen/console/xencons_ring.c
---- linux-2.6.18-rc5/drivers/xen/console/xencons_ring.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/console/xencons_ring.c	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/console/xencons_ring.c linux-2.6.18-rc6-xen/drivers/xen/console/xencons_ring.c
+--- linux-2.6.18-rc6/drivers/xen/console/xencons_ring.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/console/xencons_ring.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,141 @@
 +/* 
 + * This program is free software; you can redistribute it and/or
@@ -53527,9 +52775,9 @@
 +{
 +	(void)xencons_ring_init();
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/core/cpu_hotplug.c linux-2.6.18-rc5-xen/drivers/xen/core/cpu_hotplug.c
---- linux-2.6.18-rc5/drivers/xen/core/cpu_hotplug.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/core/cpu_hotplug.c	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/core/cpu_hotplug.c linux-2.6.18-rc6-xen/drivers/xen/core/cpu_hotplug.c
+--- linux-2.6.18-rc6/drivers/xen/core/cpu_hotplug.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/core/cpu_hotplug.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,188 @@
 +
 +#include <linux/init.h>
@@ -53719,9 +52967,9 @@
 +{
 +	xenbus_allowed_cpumask = cpu_present_map;
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/core/evtchn.c linux-2.6.18-rc5-xen/drivers/xen/core/evtchn.c
---- linux-2.6.18-rc5/drivers/xen/core/evtchn.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/core/evtchn.c	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/core/evtchn.c linux-2.6.18-rc6-xen/drivers/xen/core/evtchn.c
+--- linux-2.6.18-rc6/drivers/xen/core/evtchn.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/core/evtchn.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,868 @@
 +/******************************************************************************
 + * evtchn.c
@@ -54591,9 +53839,9 @@
 +		irq_desc[pirq_to_irq(i)].chip    = &pirq_type;
 +	}
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/core/features.c linux-2.6.18-rc5-xen/drivers/xen/core/features.c
---- linux-2.6.18-rc5/drivers/xen/core/features.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/core/features.c	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/core/features.c linux-2.6.18-rc6-xen/drivers/xen/core/features.c
+--- linux-2.6.18-rc6/drivers/xen/core/features.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/core/features.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,30 @@
 +/******************************************************************************
 + * features.c
@@ -54625,9 +53873,9 @@
 +			xen_features[i*32+j] = !!(fi.submap & 1<<j);
 +	}
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/core/gnttab.c linux-2.6.18-rc5-xen/drivers/xen/core/gnttab.c
---- linux-2.6.18-rc5/drivers/xen/core/gnttab.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/core/gnttab.c	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/core/gnttab.c linux-2.6.18-rc6-xen/drivers/xen/core/gnttab.c
+--- linux-2.6.18-rc6/drivers/xen/core/gnttab.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/core/gnttab.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,483 @@
 +/******************************************************************************
 + * gnttab.c
@@ -55112,9 +54360,9 @@
 +#ifdef CONFIG_XEN
 +core_initcall(gnttab_init);
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/core/hypervisor_sysfs.c linux-2.6.18-rc5-xen/drivers/xen/core/hypervisor_sysfs.c
---- linux-2.6.18-rc5/drivers/xen/core/hypervisor_sysfs.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/core/hypervisor_sysfs.c	2006-08-14 15:07:21.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/core/hypervisor_sysfs.c linux-2.6.18-rc6-xen/drivers/xen/core/hypervisor_sysfs.c
+--- linux-2.6.18-rc6/drivers/xen/core/hypervisor_sysfs.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/core/hypervisor_sysfs.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,59 @@
 +/*
 + *  copyright (c) 2006 IBM Corporation
@@ -55175,9 +54423,9 @@
 +
 +device_initcall(hypervisor_subsys_init);
 +EXPORT_SYMBOL_GPL(hypervisor_subsys);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/core/Makefile linux-2.6.18-rc5-xen/drivers/xen/core/Makefile
---- linux-2.6.18-rc5/drivers/xen/core/Makefile	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/core/Makefile	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/core/Makefile linux-2.6.18-rc6-xen/drivers/xen/core/Makefile
+--- linux-2.6.18-rc6/drivers/xen/core/Makefile	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/core/Makefile	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,13 @@
 +#
 +# Makefile for the linux kernel.
@@ -55192,9 +54440,9 @@
 +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-rc5/drivers/xen/core/reboot.c linux-2.6.18-rc5-xen/drivers/xen/core/reboot.c
---- linux-2.6.18-rc5/drivers/xen/core/reboot.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/core/reboot.c	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/core/reboot.c linux-2.6.18-rc6-xen/drivers/xen/core/reboot.c
+--- linux-2.6.18-rc6/drivers/xen/core/reboot.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/core/reboot.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,384 @@
 +#define __KERNEL_SYSCALLS__
 +#include <linux/version.h>
@@ -55580,9 +54828,9 @@
 +}
 +
 +subsys_initcall(setup_shutdown_event);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/core/skbuff.c linux-2.6.18-rc5-xen/drivers/xen/core/skbuff.c
---- linux-2.6.18-rc5/drivers/xen/core/skbuff.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/core/skbuff.c	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/core/skbuff.c linux-2.6.18-rc6-xen/drivers/xen/core/skbuff.c
+--- linux-2.6.18-rc6/drivers/xen/core/skbuff.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/core/skbuff.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,139 @@
 +
 +#include <linux/module.h>
@@ -55723,9 +54971,9 @@
 +core_initcall(skbuff_init);
 +
 +EXPORT_SYMBOL(__dev_alloc_skb);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/core/smpboot.c linux-2.6.18-rc5-xen/drivers/xen/core/smpboot.c
---- linux-2.6.18-rc5/drivers/xen/core/smpboot.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/core/smpboot.c	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/core/smpboot.c linux-2.6.18-rc6-xen/drivers/xen/core/smpboot.c
+--- linux-2.6.18-rc6/drivers/xen/core/smpboot.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/core/smpboot.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,429 @@
 +/*
 + *	Xen SMP booting functions
@@ -56156,9 +55404,9 @@
 +	return -EINVAL;
 +}
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/core/xen_proc.c linux-2.6.18-rc5-xen/drivers/xen/core/xen_proc.c
---- linux-2.6.18-rc5/drivers/xen/core/xen_proc.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/core/xen_proc.c	2006-08-14 15:07:21.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/core/xen_proc.c linux-2.6.18-rc6-xen/drivers/xen/core/xen_proc.c
+--- linux-2.6.18-rc6/drivers/xen/core/xen_proc.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/core/xen_proc.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,18 @@
 +
 +#include <linux/proc_fs.h>
@@ -56178,9 +55426,9 @@
 +{
 +	remove_proc_entry(name, xen_base);
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/core/xen_sysfs.c linux-2.6.18-rc5-xen/drivers/xen/core/xen_sysfs.c
---- linux-2.6.18-rc5/drivers/xen/core/xen_sysfs.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/core/xen_sysfs.c	2006-08-14 15:07:21.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/core/xen_sysfs.c linux-2.6.18-rc6-xen/drivers/xen/core/xen_sysfs.c
+--- linux-2.6.18-rc6/drivers/xen/core/xen_sysfs.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/core/xen_sysfs.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,378 @@
 +/*
 + *  copyright (c) 2006 IBM Corporation
@@ -56560,9 +55808,9 @@
 +
 +module_init(hyper_sysfs_init);
 +module_exit(hyper_sysfs_exit);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/evtchn/evtchn.c linux-2.6.18-rc5-xen/drivers/xen/evtchn/evtchn.c
---- linux-2.6.18-rc5/drivers/xen/evtchn/evtchn.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/evtchn/evtchn.c	2006-08-14 15:07:21.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/evtchn/evtchn.c linux-2.6.18-rc6-xen/drivers/xen/evtchn/evtchn.c
+--- linux-2.6.18-rc6/drivers/xen/evtchn/evtchn.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/evtchn/evtchn.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,456 @@
 +/******************************************************************************
 + * evtchn.c
@@ -57020,15 +56268,15 @@
 +module_exit(evtchn_cleanup);
 +
 +MODULE_LICENSE("Dual BSD/GPL");
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/evtchn/Makefile linux-2.6.18-rc5-xen/drivers/xen/evtchn/Makefile
---- linux-2.6.18-rc5/drivers/xen/evtchn/Makefile	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/evtchn/Makefile	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/evtchn/Makefile linux-2.6.18-rc6-xen/drivers/xen/evtchn/Makefile
+--- linux-2.6.18-rc6/drivers/xen/evtchn/Makefile	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/evtchn/Makefile	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,2 @@
 +
 +obj-y	:= evtchn.o
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/Kconfig linux-2.6.18-rc5-xen/drivers/xen/Kconfig
---- linux-2.6.18-rc5/drivers/xen/Kconfig	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/Kconfig	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/Kconfig linux-2.6.18-rc6-xen/drivers/xen/Kconfig
+--- linux-2.6.18-rc6/drivers/xen/Kconfig	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/Kconfig	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,260 @@
 +#
 +# This Kconfig describe xen options
@@ -57290,9 +56538,9 @@
 +	depends on SMP
 +
 +endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/Makefile linux-2.6.18-rc5-xen/drivers/xen/Makefile
---- linux-2.6.18-rc5/drivers/xen/Makefile	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/Makefile	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/Makefile linux-2.6.18-rc6-xen/drivers/xen/Makefile
+--- linux-2.6.18-rc6/drivers/xen/Makefile	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/Makefile	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,17 @@
 +obj-y	+= core/
 +obj-y	+= console/
@@ -57311,9 +56559,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-rc5/drivers/xen/netback/common.h linux-2.6.18-rc5-xen/drivers/xen/netback/common.h
---- linux-2.6.18-rc5/drivers/xen/netback/common.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/netback/common.h	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/netback/common.h linux-2.6.18-rc6-xen/drivers/xen/netback/common.h
+--- linux-2.6.18-rc6/drivers/xen/netback/common.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/netback/common.h	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,141 @@
 +/******************************************************************************
 + * arch/xen/drivers/netif/backend/common.h
@@ -57456,9 +56704,9 @@
 +}
 +
 +#endif /* __NETIF__BACKEND__COMMON_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/netback/interface.c linux-2.6.18-rc5-xen/drivers/xen/netback/interface.c
---- linux-2.6.18-rc5/drivers/xen/netback/interface.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/netback/interface.c	2006-08-14 15:07:21.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/netback/interface.c linux-2.6.18-rc6-xen/drivers/xen/netback/interface.c
+--- linux-2.6.18-rc6/drivers/xen/netback/interface.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/netback/interface.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,339 @@
 +/******************************************************************************
 + * arch/xen/drivers/netif/backend/interface.c
@@ -57799,9 +57047,9 @@
 +	}
 +	netif_free(netif);
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/netback/loopback.c linux-2.6.18-rc5-xen/drivers/xen/netback/loopback.c
---- linux-2.6.18-rc5/drivers/xen/netback/loopback.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/netback/loopback.c	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/netback/loopback.c linux-2.6.18-rc6-xen/drivers/xen/netback/loopback.c
+--- linux-2.6.18-rc6/drivers/xen/netback/loopback.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/netback/loopback.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,260 @@
 +/******************************************************************************
 + * netback/loopback.c
@@ -58063,18 +57311,18 @@
 +module_exit(loopback_exit);
 +
 +MODULE_LICENSE("Dual BSD/GPL");
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/netback/Makefile linux-2.6.18-rc5-xen/drivers/xen/netback/Makefile
---- linux-2.6.18-rc5/drivers/xen/netback/Makefile	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/netback/Makefile	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/netback/Makefile linux-2.6.18-rc6-xen/drivers/xen/netback/Makefile
+--- linux-2.6.18-rc6/drivers/xen/netback/Makefile	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/netback/Makefile	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,5 @@
 +obj-$(CONFIG_XEN_NETDEV_BACKEND) := netbk.o
 +obj-$(CONFIG_XEN_NETDEV_LOOPBACK) += netloop.o
 +
 +netbk-y   := netback.o xenbus.o interface.o
 +netloop-y := loopback.o
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/netback/netback.c linux-2.6.18-rc5-xen/drivers/xen/netback/netback.c
---- linux-2.6.18-rc5/drivers/xen/netback/netback.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/netback/netback.c	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/netback/netback.c linux-2.6.18-rc6-xen/drivers/xen/netback/netback.c
+--- linux-2.6.18-rc6/drivers/xen/netback/netback.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/netback/netback.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,1498 @@
 +/******************************************************************************
 + * drivers/xen/netback/netback.c
@@ -59574,9 +58822,9 @@
 +module_init(netback_init);
 +
 +MODULE_LICENSE("Dual BSD/GPL");
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/netback/xenbus.c linux-2.6.18-rc5-xen/drivers/xen/netback/xenbus.c
---- linux-2.6.18-rc5/drivers/xen/netback/xenbus.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/netback/xenbus.c	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/netback/xenbus.c linux-2.6.18-rc6-xen/drivers/xen/netback/xenbus.c
+--- linux-2.6.18-rc6/drivers/xen/netback/xenbus.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/netback/xenbus.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,461 @@
 +/*  Xenbus code for netif backend
 +    Copyright (C) 2005 Rusty Russell <rusty at rustcorp.com.au>
@@ -60039,9 +59287,9 @@
 +{
 +	xenbus_register_backend(&netback);
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/netfront/Kconfig linux-2.6.18-rc5-xen/drivers/xen/netfront/Kconfig
---- linux-2.6.18-rc5/drivers/xen/netfront/Kconfig	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/netfront/Kconfig	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/netfront/Kconfig linux-2.6.18-rc6-xen/drivers/xen/netfront/Kconfig
+--- linux-2.6.18-rc6/drivers/xen/netfront/Kconfig	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/netfront/Kconfig	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,6 @@
 +
 +config XENNET
@@ -60049,18 +59297,18 @@
 +	depends on NETDEVICES && ARCH_XEN
 +	help
 +	  Network driver for Xen
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/netfront/Makefile linux-2.6.18-rc5-xen/drivers/xen/netfront/Makefile
---- linux-2.6.18-rc5/drivers/xen/netfront/Makefile	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/netfront/Makefile	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/netfront/Makefile linux-2.6.18-rc6-xen/drivers/xen/netfront/Makefile
+--- linux-2.6.18-rc6/drivers/xen/netfront/Makefile	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/netfront/Makefile	2006-09-04 16:31:13.000000000 +0200
 @@ -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-rc5/drivers/xen/netfront/netfront.c linux-2.6.18-rc5-xen/drivers/xen/netfront/netfront.c
---- linux-2.6.18-rc5/drivers/xen/netfront/netfront.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/netfront/netfront.c	2006-09-01 00:09:11.000000000 +0200
-@@ -0,0 +1,2067 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/netfront/netfront.c linux-2.6.18-rc6-xen/drivers/xen/netfront/netfront.c
+--- linux-2.6.18-rc6/drivers/xen/netfront/netfront.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/netfront/netfront.c	2006-09-04 16:31:13.000000000 +0200
+@@ -0,0 +1,2077 @@
 +/******************************************************************************
 + * Virtual network driver for conversing with remote driver backends.
 + *
@@ -60256,6 +59504,7 @@
 +
 +static void end_access(int, void *);
 +static void netif_disconnect_backend(struct netfront_info *);
++static int open_netdev(struct netfront_info *);
 +static void close_netdev(struct netfront_info *);
 +static void netif_free(struct netfront_info *);
 +
@@ -60326,15 +59575,22 @@
 +	dev->dev.driver_data = info;
 +
 +	err = talk_to_backend(dev, info);
-+	if (err) {
-+		xennet_sysfs_delif(info->netdev);
-+		unregister_netdev(netdev);
-+		free_netdev(netdev);
-+		dev->dev.driver_data = NULL;
-+		return err;
-+	}
++	if (err)
++		goto fail_backend;
++
++	err = open_netdev(info);
++	if (err)
++		goto fail_open;
 +
 +	return 0;
++
++ fail_open:
++	xennet_sysfs_delif(info->netdev);
++	unregister_netdev(netdev);
++ fail_backend:
++	free_netdev(netdev);
++	dev->dev.driver_data = NULL;
++	return err;
 +}
 +
 +
@@ -61950,27 +61206,9 @@
 +	SET_MODULE_OWNER(netdev);
 +	SET_NETDEV_DEV(netdev, &dev->dev);
 +
-+	err = register_netdev(netdev);
-+	if (err) {
-+		printk(KERN_WARNING "%s> register_netdev err=%d\n",
-+		       __FUNCTION__, err);
-+		goto exit_free_rx;
-+	}
-+
-+	err = xennet_sysfs_addif(netdev);
-+	if (err) {
-+		/* This can be non-fatal: it only means no tuning parameters */
-+		printk(KERN_WARNING "%s> add sysfs failed err=%d\n",
-+		       __FUNCTION__, err);
-+	}
-+
 +	np->netdev = netdev;
-+
 +	return netdev;
 +
-+
-+ exit_free_rx:
-+	gnttab_free_grant_references(np->gref_rx_head);
 + exit_free_tx:
 +	gnttab_free_grant_references(np->gref_tx_head);
 + exit:
@@ -62030,6 +61268,26 @@
 +}
 +
 +
++static int open_netdev(struct netfront_info *info)
++{
++	int err;
++	
++	err = register_netdev(info->netdev);
++	if (err) {
++		printk(KERN_WARNING "%s: register_netdev err=%d\n",
++		       __FUNCTION__, err);
++		return err;
++	}
++
++	err = xennet_sysfs_addif(info->netdev);
++	if (err) {
++		/* This can be non-fatal: it only means no tuning parameters */
++		printk(KERN_WARNING "%s: add sysfs failed err=%d\n",
++		       __FUNCTION__, err);
++	}
++	return 0;
++}
++
 +static void close_netdev(struct netfront_info *info)
 +{
 +	del_timer_sync(&info->rx_refill_timer);
@@ -62128,9 +61386,9 @@
 +module_exit(netif_exit);
 +
 +MODULE_LICENSE("Dual BSD/GPL");
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/pciback/conf_space.c linux-2.6.18-rc5-xen/drivers/xen/pciback/conf_space.c
---- linux-2.6.18-rc5/drivers/xen/pciback/conf_space.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/pciback/conf_space.c	2006-08-06 23:45:53.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/pciback/conf_space.c linux-2.6.18-rc6-xen/drivers/xen/pciback/conf_space.c
+--- linux-2.6.18-rc6/drivers/xen/pciback/conf_space.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/pciback/conf_space.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,425 @@
 +/*
 + * PCI Backend - Functions for creating a virtual configuration space for
@@ -62557,9 +61815,9 @@
 +{
 +	return pciback_config_capability_init();
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/pciback/conf_space_capability.c linux-2.6.18-rc5-xen/drivers/xen/pciback/conf_space_capability.c
---- linux-2.6.18-rc5/drivers/xen/pciback/conf_space_capability.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/pciback/conf_space_capability.c	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/pciback/conf_space_capability.c linux-2.6.18-rc6-xen/drivers/xen/pciback/conf_space_capability.c
+--- linux-2.6.18-rc6/drivers/xen/pciback/conf_space_capability.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/pciback/conf_space_capability.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,71 @@
 +/*
 + * PCI Backend - Handles the virtual fields found on the capability lists
@@ -62632,9 +61890,9 @@
 +
 +	return 0;
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/pciback/conf_space_capability.h linux-2.6.18-rc5-xen/drivers/xen/pciback/conf_space_capability.h
---- linux-2.6.18-rc5/drivers/xen/pciback/conf_space_capability.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/pciback/conf_space_capability.h	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/pciback/conf_space_capability.h linux-2.6.18-rc6-xen/drivers/xen/pciback/conf_space_capability.h
+--- linux-2.6.18-rc6/drivers/xen/pciback/conf_space_capability.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/pciback/conf_space_capability.h	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,23 @@
 +/*
 + * PCI Backend - Data structures for special overlays for structures on
@@ -62659,9 +61917,9 @@
 +};
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/pciback/conf_space_capability_pm.c linux-2.6.18-rc5-xen/drivers/xen/pciback/conf_space_capability_pm.c
---- linux-2.6.18-rc5/drivers/xen/pciback/conf_space_capability_pm.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/pciback/conf_space_capability_pm.c	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/pciback/conf_space_capability_pm.c linux-2.6.18-rc6-xen/drivers/xen/pciback/conf_space_capability_pm.c
+--- linux-2.6.18-rc6/drivers/xen/pciback/conf_space_capability_pm.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/pciback/conf_space_capability_pm.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,113 @@
 +/*
 + * PCI Backend - Configuration space overlay for power management
@@ -62776,9 +62034,9 @@
 +	.capability = PCI_CAP_ID_PM,
 +	.fields = caplist_pm,
 +};
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/pciback/conf_space_capability_vpd.c linux-2.6.18-rc5-xen/drivers/xen/pciback/conf_space_capability_vpd.c
---- linux-2.6.18-rc5/drivers/xen/pciback/conf_space_capability_vpd.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/pciback/conf_space_capability_vpd.c	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/pciback/conf_space_capability_vpd.c linux-2.6.18-rc6-xen/drivers/xen/pciback/conf_space_capability_vpd.c
+--- linux-2.6.18-rc6/drivers/xen/pciback/conf_space_capability_vpd.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/pciback/conf_space_capability_vpd.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,42 @@
 +/*
 + * PCI Backend - Configuration space overlay for Vital Product Data
@@ -62822,9 +62080,9 @@
 +	.capability = PCI_CAP_ID_VPD,
 +	.fields = caplist_vpd,
 +};
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/pciback/conf_space.h linux-2.6.18-rc5-xen/drivers/xen/pciback/conf_space.h
---- linux-2.6.18-rc5/drivers/xen/pciback/conf_space.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/pciback/conf_space.h	2006-08-06 23:45:53.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/pciback/conf_space.h linux-2.6.18-rc6-xen/drivers/xen/pciback/conf_space.h
+--- linux-2.6.18-rc6/drivers/xen/pciback/conf_space.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/pciback/conf_space.h	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,126 @@
 +/*
 + * PCI Backend - Common data structures for overriding the configuration space
@@ -62952,9 +62210,9 @@
 +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-rc5/drivers/xen/pciback/conf_space_header.c linux-2.6.18-rc5-xen/drivers/xen/pciback/conf_space_header.c
---- linux-2.6.18-rc5/drivers/xen/pciback/conf_space_header.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/pciback/conf_space_header.c	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/pciback/conf_space_header.c linux-2.6.18-rc6-xen/drivers/xen/pciback/conf_space_header.c
+--- linux-2.6.18-rc6/drivers/xen/pciback/conf_space_header.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/pciback/conf_space_header.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,299 @@
 +/*
 + * PCI Backend - Handles the virtual fields in the configuration space headers.
@@ -63255,9 +62513,9 @@
 +      out:
 +	return err;
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/pciback/conf_space_quirks.c linux-2.6.18-rc5-xen/drivers/xen/pciback/conf_space_quirks.c
---- linux-2.6.18-rc5/drivers/xen/pciback/conf_space_quirks.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/pciback/conf_space_quirks.c	2006-08-06 23:45:53.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/pciback/conf_space_quirks.c linux-2.6.18-rc6-xen/drivers/xen/pciback/conf_space_quirks.c
+--- linux-2.6.18-rc6/drivers/xen/pciback/conf_space_quirks.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/pciback/conf_space_quirks.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,128 @@
 +/*
 + * PCI Backend - Handle special overlays for broken devices.
@@ -63387,9 +62645,9 @@
 +      out:
 +	return ret;
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/pciback/conf_space_quirks.h linux-2.6.18-rc5-xen/drivers/xen/pciback/conf_space_quirks.h
---- linux-2.6.18-rc5/drivers/xen/pciback/conf_space_quirks.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/pciback/conf_space_quirks.h	2006-08-06 23:45:53.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/pciback/conf_space_quirks.h linux-2.6.18-rc6-xen/drivers/xen/pciback/conf_space_quirks.h
+--- linux-2.6.18-rc6/drivers/xen/pciback/conf_space_quirks.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/pciback/conf_space_quirks.h	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,35 @@
 +/*
 + * PCI Backend - Data structures for special overlays for broken devices.
@@ -63426,9 +62684,9 @@
 +int pciback_field_is_dup(struct pci_dev *dev, int reg);
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/pciback/Makefile linux-2.6.18-rc5-xen/drivers/xen/pciback/Makefile
---- linux-2.6.18-rc5/drivers/xen/pciback/Makefile	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/pciback/Makefile	2006-08-14 15:07:21.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/pciback/Makefile linux-2.6.18-rc6-xen/drivers/xen/pciback/Makefile
+--- linux-2.6.18-rc6/drivers/xen/pciback/Makefile	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/pciback/Makefile	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,15 @@
 +obj-$(CONFIG_XEN_PCIDEV_BACKEND) += pciback.o
 +
@@ -63445,9 +62703,9 @@
 +ifeq ($(CONFIG_XEN_PCIDEV_BE_DEBUG),y)
 +EXTRA_CFLAGS += -DDEBUG
 +endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/pciback/passthrough.c linux-2.6.18-rc5-xen/drivers/xen/pciback/passthrough.c
---- linux-2.6.18-rc5/drivers/xen/pciback/passthrough.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/pciback/passthrough.c	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/pciback/passthrough.c linux-2.6.18-rc6-xen/drivers/xen/pciback/passthrough.c
+--- linux-2.6.18-rc6/drivers/xen/pciback/passthrough.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/pciback/passthrough.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,157 @@
 +/*
 + * PCI Backend - Provides restricted access to the real PCI bus topology
@@ -63606,9 +62864,9 @@
 +	kfree(dev_data);
 +	pdev->pci_dev_data = NULL;
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/pciback/pciback.h linux-2.6.18-rc5-xen/drivers/xen/pciback/pciback.h
---- linux-2.6.18-rc5/drivers/xen/pciback/pciback.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/pciback/pciback.h	2006-08-06 23:45:53.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/pciback/pciback.h linux-2.6.18-rc6-xen/drivers/xen/pciback/pciback.h
+--- linux-2.6.18-rc6/drivers/xen/pciback/pciback.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/pciback/pciback.h	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,93 @@
 +/*
 + * PCI Backend Common Data Structures & Function Declarations
@@ -63703,9 +62961,9 @@
 +
 +extern int verbose_request;
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/pciback/pciback_ops.c linux-2.6.18-rc5-xen/drivers/xen/pciback/pciback_ops.c
---- linux-2.6.18-rc5/drivers/xen/pciback/pciback_ops.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/pciback/pciback_ops.c	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/pciback/pciback_ops.c linux-2.6.18-rc6-xen/drivers/xen/pciback/pciback_ops.c
+--- linux-2.6.18-rc6/drivers/xen/pciback/pciback_ops.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/pciback/pciback_ops.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,95 @@
 +/*
 + * PCI Backend Operations - respond to PCI requests from Frontend
@@ -63802,9 +63060,9 @@
 +
 +	return IRQ_HANDLED;
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/pciback/pci_stub.c linux-2.6.18-rc5-xen/drivers/xen/pciback/pci_stub.c
---- linux-2.6.18-rc5/drivers/xen/pciback/pci_stub.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/pciback/pci_stub.c	2006-08-14 15:07:21.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/pciback/pci_stub.c linux-2.6.18-rc6-xen/drivers/xen/pciback/pci_stub.c
+--- linux-2.6.18-rc6/drivers/xen/pciback/pci_stub.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/pciback/pci_stub.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,916 @@
 +/*
 + * PCI Stub Driver - Grabs devices in backend to be exported later
@@ -64722,9 +63980,9 @@
 +module_exit(pciback_cleanup);
 +
 +MODULE_LICENSE("Dual BSD/GPL");
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/pciback/slot.c linux-2.6.18-rc5-xen/drivers/xen/pciback/slot.c
---- linux-2.6.18-rc5/drivers/xen/pciback/slot.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/pciback/slot.c	2006-08-14 15:07:21.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/pciback/slot.c linux-2.6.18-rc6-xen/drivers/xen/pciback/slot.c
+--- linux-2.6.18-rc6/drivers/xen/pciback/slot.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/pciback/slot.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,151 @@
 +/*
 + * PCI Backend - Provides a Virtual PCI bus (with real devices)
@@ -64877,9 +64135,9 @@
 +	kfree(slot_dev);
 +	pdev->pci_dev_data = NULL;
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/pciback/vpci.c linux-2.6.18-rc5-xen/drivers/xen/pciback/vpci.c
---- linux-2.6.18-rc5/drivers/xen/pciback/vpci.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/pciback/vpci.c	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/pciback/vpci.c linux-2.6.18-rc6-xen/drivers/xen/pciback/vpci.c
+--- linux-2.6.18-rc6/drivers/xen/pciback/vpci.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/pciback/vpci.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,204 @@
 +/*
 + * PCI Backend - Provides a Virtual PCI bus (with real devices)
@@ -65085,9 +64343,9 @@
 +	kfree(vpci_dev);
 +	pdev->pci_dev_data = NULL;
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/pciback/xenbus.c linux-2.6.18-rc5-xen/drivers/xen/pciback/xenbus.c
---- linux-2.6.18-rc5/drivers/xen/pciback/xenbus.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/pciback/xenbus.c	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/pciback/xenbus.c linux-2.6.18-rc6-xen/drivers/xen/pciback/xenbus.c
+--- linux-2.6.18-rc6/drivers/xen/pciback/xenbus.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/pciback/xenbus.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,458 @@
 +/*
 + * PCI Backend Xenbus Setup - handles setup with frontend and xend
@@ -65547,9 +64805,9 @@
 +{
 +	xenbus_unregister_driver(&xenbus_pciback_driver);
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/pcifront/Makefile linux-2.6.18-rc5-xen/drivers/xen/pcifront/Makefile
---- linux-2.6.18-rc5/drivers/xen/pcifront/Makefile	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/pcifront/Makefile	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/pcifront/Makefile linux-2.6.18-rc6-xen/drivers/xen/pcifront/Makefile
+--- linux-2.6.18-rc6/drivers/xen/pcifront/Makefile	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/pcifront/Makefile	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,7 @@
 +obj-y += pcifront.o
 +
@@ -65558,9 +64816,9 @@
 +ifeq ($(CONFIG_XEN_PCIDEV_FE_DEBUG),y)
 +EXTRA_CFLAGS += -DDEBUG
 +endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/pcifront/pci.c linux-2.6.18-rc5-xen/drivers/xen/pcifront/pci.c
---- linux-2.6.18-rc5/drivers/xen/pcifront/pci.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/pcifront/pci.c	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/pcifront/pci.c linux-2.6.18-rc6-xen/drivers/xen/pcifront/pci.c
+--- linux-2.6.18-rc6/drivers/xen/pcifront/pci.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/pcifront/pci.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,46 @@
 +/*
 + * PCI Frontend Operations - ensure only one PCI frontend runs at a time
@@ -65608,9 +64866,9 @@
 +
 +	spin_unlock(&pcifront_dev_lock);
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/pcifront/pcifront.h linux-2.6.18-rc5-xen/drivers/xen/pcifront/pcifront.h
---- linux-2.6.18-rc5/drivers/xen/pcifront/pcifront.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/pcifront/pcifront.h	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/pcifront/pcifront.h linux-2.6.18-rc6-xen/drivers/xen/pcifront/pcifront.h
+--- linux-2.6.18-rc6/drivers/xen/pcifront/pcifront.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/pcifront/pcifront.h	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,40 @@
 +/*
 + * PCI Frontend - Common data structures & function declarations
@@ -65652,9 +64910,9 @@
 +void pcifront_free_roots(struct pcifront_device *pdev);
 +
 +#endif	/* __XEN_PCIFRONT_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/pcifront/pci_op.c linux-2.6.18-rc5-xen/drivers/xen/pcifront/pci_op.c
---- linux-2.6.18-rc5/drivers/xen/pcifront/pci_op.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/pcifront/pci_op.c	2006-08-06 23:45:53.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/pcifront/pci_op.c linux-2.6.18-rc6-xen/drivers/xen/pcifront/pci_op.c
+--- linux-2.6.18-rc6/drivers/xen/pcifront/pci_op.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/pcifront/pci_op.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,273 @@
 +/*
 + * PCI Frontend Operations - Communicates with frontend
@@ -65929,9 +65187,9 @@
 +		kfree(bus_entry);
 +	}
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/pcifront/xenbus.c linux-2.6.18-rc5-xen/drivers/xen/pcifront/xenbus.c
---- linux-2.6.18-rc5/drivers/xen/pcifront/xenbus.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/pcifront/xenbus.c	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/pcifront/xenbus.c linux-2.6.18-rc6-xen/drivers/xen/pcifront/xenbus.c
+--- linux-2.6.18-rc6/drivers/xen/pcifront/xenbus.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/pcifront/xenbus.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,295 @@
 +/*
 + * PCI Frontend Xenbus Setup - handles setup with backend (imports page/evtchn)
@@ -66228,15 +65486,15 @@
 +
 +/* Initialize after the Xen PCI Frontend Stub is initialized */
 +subsys_initcall(pcifront_init);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/privcmd/Makefile linux-2.6.18-rc5-xen/drivers/xen/privcmd/Makefile
---- linux-2.6.18-rc5/drivers/xen/privcmd/Makefile	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/privcmd/Makefile	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/privcmd/Makefile linux-2.6.18-rc6-xen/drivers/xen/privcmd/Makefile
+--- linux-2.6.18-rc6/drivers/xen/privcmd/Makefile	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/privcmd/Makefile	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,2 @@
 +
 +obj-$(CONFIG_XEN_PRIVCMD)	:= privcmd.o
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/privcmd/privcmd.c linux-2.6.18-rc5-xen/drivers/xen/privcmd/privcmd.c
---- linux-2.6.18-rc5/drivers/xen/privcmd/privcmd.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/privcmd/privcmd.c	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/privcmd/privcmd.c linux-2.6.18-rc6-xen/drivers/xen/privcmd/privcmd.c
+--- linux-2.6.18-rc6/drivers/xen/privcmd/privcmd.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/privcmd/privcmd.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,266 @@
 +/******************************************************************************
 + * privcmd.c
@@ -66504,9 +65762,9 @@
 +}
 +
 +__initcall(privcmd_init);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/tpmback/common.h linux-2.6.18-rc5-xen/drivers/xen/tpmback/common.h
---- linux-2.6.18-rc5/drivers/xen/tpmback/common.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/tpmback/common.h	2006-08-14 15:07:21.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/tpmback/common.h linux-2.6.18-rc6-xen/drivers/xen/tpmback/common.h
+--- linux-2.6.18-rc6/drivers/xen/tpmback/common.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/tpmback/common.h	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,84 @@
 +/******************************************************************************
 + * drivers/xen/tpmback/common.h
@@ -66592,9 +65850,9 @@
 +#define MMAP_VADDR(t,_req) ((t)->mmap_vstart + ((_req) * PAGE_SIZE))
 +
 +#endif /* __TPMIF__BACKEND__COMMON_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/tpmback/interface.c linux-2.6.18-rc5-xen/drivers/xen/tpmback/interface.c
---- linux-2.6.18-rc5/drivers/xen/tpmback/interface.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/tpmback/interface.c	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/tpmback/interface.c linux-2.6.18-rc6-xen/drivers/xen/tpmback/interface.c
+--- linux-2.6.18-rc6/drivers/xen/tpmback/interface.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/tpmback/interface.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,177 @@
 + /*****************************************************************************
 + * drivers/xen/tpmback/interface.c
@@ -66773,17 +66031,17 @@
 +{
 +	kmem_cache_destroy(tpmif_cachep);
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/tpmback/Makefile linux-2.6.18-rc5-xen/drivers/xen/tpmback/Makefile
---- linux-2.6.18-rc5/drivers/xen/tpmback/Makefile	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/tpmback/Makefile	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/tpmback/Makefile linux-2.6.18-rc6-xen/drivers/xen/tpmback/Makefile
+--- linux-2.6.18-rc6/drivers/xen/tpmback/Makefile	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/tpmback/Makefile	2006-09-04 16:31:13.000000000 +0200
 @@ -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-rc5/drivers/xen/tpmback/tpmback.c linux-2.6.18-rc5-xen/drivers/xen/tpmback/tpmback.c
---- linux-2.6.18-rc5/drivers/xen/tpmback/tpmback.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/tpmback/tpmback.c	2006-08-06 23:45:53.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/tpmback/tpmback.c linux-2.6.18-rc6-xen/drivers/xen/tpmback/tpmback.c
+--- linux-2.6.18-rc6/drivers/xen/tpmback/tpmback.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/tpmback/tpmback.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,944 @@
 +/******************************************************************************
 + * drivers/xen/tpmback/tpmback.c
@@ -67729,9 +66987,9 @@
 +}
 +
 +MODULE_LICENSE("Dual BSD/GPL");
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/tpmback/xenbus.c linux-2.6.18-rc5-xen/drivers/xen/tpmback/xenbus.c
---- linux-2.6.18-rc5/drivers/xen/tpmback/xenbus.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/tpmback/xenbus.c	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/tpmback/xenbus.c linux-2.6.18-rc6-xen/drivers/xen/tpmback/xenbus.c
+--- linux-2.6.18-rc6/drivers/xen/tpmback/xenbus.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/tpmback/xenbus.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,287 @@
 +/*  Xenbus code for tpmif backend
 +    Copyright (C) 2005 IBM Corporation
@@ -68020,9 +67278,9 @@
 +{
 +	xenbus_unregister_driver(&tpmback);
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/util.c linux-2.6.18-rc5-xen/drivers/xen/util.c
---- linux-2.6.18-rc5/drivers/xen/util.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/util.c	2006-08-14 15:07:21.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/util.c linux-2.6.18-rc6-xen/drivers/xen/util.c
+--- linux-2.6.18-rc6/drivers/xen/util.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/util.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,70 @@
 +
 +#include <linux/mm.h>
@@ -68094,9 +67352,9 @@
 +	preempt_enable();
 +}
 +EXPORT_SYMBOL_GPL(unlock_vm_area);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/xenbus/Makefile linux-2.6.18-rc5-xen/drivers/xen/xenbus/Makefile
---- linux-2.6.18-rc5/drivers/xen/xenbus/Makefile	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/xenbus/Makefile	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/xenbus/Makefile linux-2.6.18-rc6-xen/drivers/xen/xenbus/Makefile
+--- linux-2.6.18-rc6/drivers/xen/xenbus/Makefile	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/xenbus/Makefile	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,12 @@
 +obj-y	+= xenbus.o
 +obj-$(CONFIG_XEN_BACKEND) += xenbus_be.o
@@ -68110,9 +67368,9 @@
 +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-rc5/drivers/xen/xenbus/xenbus_backend_client.c linux-2.6.18-rc5-xen/drivers/xen/xenbus/xenbus_backend_client.c
---- linux-2.6.18-rc5/drivers/xen/xenbus/xenbus_backend_client.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/xenbus/xenbus_backend_client.c	2006-07-20 15:57:17.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/xenbus/xenbus_backend_client.c linux-2.6.18-rc6-xen/drivers/xen/xenbus/xenbus_backend_client.c
+--- linux-2.6.18-rc6/drivers/xen/xenbus/xenbus_backend_client.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/xenbus/xenbus_backend_client.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,135 @@
 +/******************************************************************************
 + * Backend-client-facing interface for the Xenbus driver.  In other words, the
@@ -68249,9 +67507,9 @@
 +EXPORT_SYMBOL_GPL(xenbus_unmap_ring);
 +
 +MODULE_LICENSE("Dual BSD/GPL");
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/xenbus/xenbus_client.c linux-2.6.18-rc5-xen/drivers/xen/xenbus/xenbus_client.c
---- linux-2.6.18-rc5/drivers/xen/xenbus/xenbus_client.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/xenbus/xenbus_client.c	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/xenbus/xenbus_client.c linux-2.6.18-rc6-xen/drivers/xen/xenbus/xenbus_client.c
+--- linux-2.6.18-rc6/drivers/xen/xenbus/xenbus_client.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/xenbus/xenbus_client.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,278 @@
 +/******************************************************************************
 + * Client-facing interface for the Xenbus driver.  In other words, the
@@ -68531,9 +67789,9 @@
 +	return result;
 +}
 +EXPORT_SYMBOL_GPL(xenbus_read_driver_state);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/xenbus/xenbus_comms.c linux-2.6.18-rc5-xen/drivers/xen/xenbus/xenbus_comms.c
---- linux-2.6.18-rc5/drivers/xen/xenbus/xenbus_comms.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/xenbus/xenbus_comms.c	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/xenbus/xenbus_comms.c linux-2.6.18-rc6-xen/drivers/xen/xenbus/xenbus_comms.c
+--- linux-2.6.18-rc6/drivers/xen/xenbus/xenbus_comms.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/xenbus/xenbus_comms.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,203 @@
 +/******************************************************************************
 + * xenbus_comms.c
@@ -68738,9 +67996,9 @@
 +
 +	return 0;
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/xenbus/xenbus_comms.h linux-2.6.18-rc5-xen/drivers/xen/xenbus/xenbus_comms.h
---- linux-2.6.18-rc5/drivers/xen/xenbus/xenbus_comms.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/xenbus/xenbus_comms.h	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/xenbus/xenbus_comms.h linux-2.6.18-rc6-xen/drivers/xen/xenbus/xenbus_comms.h
+--- linux-2.6.18-rc6/drivers/xen/xenbus/xenbus_comms.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/xenbus/xenbus_comms.h	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,45 @@
 +/*
 + * Private include for xenbus communications.
@@ -68787,9 +68045,9 @@
 +extern int xen_store_evtchn;
 +
 +#endif /* _XENBUS_COMMS_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/xenbus/xenbus_dev.c linux-2.6.18-rc5-xen/drivers/xen/xenbus/xenbus_dev.c
---- linux-2.6.18-rc5/drivers/xen/xenbus/xenbus_dev.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/xenbus/xenbus_dev.c	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/xenbus/xenbus_dev.c linux-2.6.18-rc6-xen/drivers/xen/xenbus/xenbus_dev.c
+--- linux-2.6.18-rc6/drivers/xen/xenbus/xenbus_dev.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/xenbus/xenbus_dev.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,356 @@
 +/*
 + * xenbus_dev.c
@@ -69147,10 +68405,10 @@
 +
 +	return 0;
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/xenbus/xenbus_probe.c linux-2.6.18-rc5-xen/drivers/xen/xenbus/xenbus_probe.c
---- linux-2.6.18-rc5/drivers/xen/xenbus/xenbus_probe.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/xenbus/xenbus_probe.c	2006-09-01 00:09:11.000000000 +0200
-@@ -0,0 +1,1149 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/xenbus/xenbus_probe.c linux-2.6.18-rc6-xen/drivers/xen/xenbus/xenbus_probe.c
+--- linux-2.6.18-rc6/drivers/xen/xenbus/xenbus_probe.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/xenbus/xenbus_probe.c	2006-09-04 16:31:13.000000000 +0200
+@@ -0,0 +1,1150 @@
 +/******************************************************************************
 + * Talks to Xen Store to figure out what devices we have.
 + *
@@ -69201,6 +68459,7 @@
 +#include <asm/maddr.h>
 +#include <asm/pgtable.h>
 +#include <asm/hypervisor.h>
++#include <asm/hypercall.h>
 +#include <xen/xenbus.h>
 +#include <xen/xen_proc.h>
 +#include <xen/evtchn.h>
@@ -70300,9 +69559,9 @@
 +
 +late_initcall(boot_wait_for_devices);
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/drivers/xen/xenbus/xenbus_xs.c linux-2.6.18-rc5-xen/drivers/xen/xenbus/xenbus_xs.c
---- linux-2.6.18-rc5/drivers/xen/xenbus/xenbus_xs.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/drivers/xen/xenbus/xenbus_xs.c	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/drivers/xen/xenbus/xenbus_xs.c linux-2.6.18-rc6-xen/drivers/xen/xenbus/xenbus_xs.c
+--- linux-2.6.18-rc6/drivers/xen/xenbus/xenbus_xs.c	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/drivers/xen/xenbus/xenbus_xs.c	2006-09-04 16:31:13.000000000 +0200
 @@ -0,0 +1,853 @@
 +/******************************************************************************
 + * xenbus_xs.c
@@ -71157,1546 +70416,147 @@
 +
 +	return 0;
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/fs/cifs/CHANGES linux-2.6.18-rc5-xen/fs/cifs/CHANGES
---- linux-2.6.18-rc5/fs/cifs/CHANGES	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/fs/cifs/CHANGES	2006-09-01 00:09:11.000000000 +0200
-@@ -1,3 +1,13 @@
-+Version 1.45
-+------------
-+Do not time out lockw calls when using posix extensions. Do not
-+time out requests if server still responding reasonably fast
-+on requests on other threads.  Improve POSIX locking emulation,
-+(lock cancel now works, and unlock of merged range works even
-+to Windows servers now).  Fix oops on mount to lanman servers
-+(win9x, os/2 etc.) when null password.  Do not send listxattr
-+(SMB to query all EAs) if nouser_xattr specified.
-+
- Version 1.44
- ------------
- Rewritten sessionsetup support, including support for legacy SMB
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/fs/cifs/cifsencrypt.c linux-2.6.18-rc5-xen/fs/cifs/cifsencrypt.c
---- linux-2.6.18-rc5/fs/cifs/cifsencrypt.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/fs/cifs/cifsencrypt.c	2006-09-01 00:09:11.000000000 +0200
-@@ -277,7 +277,8 @@
- 		return;
- 
- 	memset(password_with_pad, 0, CIFS_ENCPWD_SIZE);
--	strncpy(password_with_pad, ses->password, CIFS_ENCPWD_SIZE);
-+	if(ses->password)
-+		strncpy(password_with_pad, ses->password, CIFS_ENCPWD_SIZE);
- 
- 	if((ses->server->secMode & SECMODE_PW_ENCRYPT) == 0)
- 		if(extended_security & CIFSSEC_MAY_PLNTXT) {
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/fs/cifs/cifsfs.c linux-2.6.18-rc5-xen/fs/cifs/cifsfs.c
---- linux-2.6.18-rc5/fs/cifs/cifsfs.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/fs/cifs/cifsfs.c	2006-09-01 00:09:11.000000000 +0200
-@@ -402,7 +402,6 @@
- };
- #endif
- 
--#ifdef CONFIG_CIFS_EXPERIMENTAL
- static void cifs_umount_begin(struct vfsmount * vfsmnt, int flags)
- {
- 	struct cifs_sb_info *cifs_sb;
-@@ -422,7 +421,7 @@
- 		tcon->tidStatus = CifsExiting;
- 	up(&tcon->tconSem);
- 
--	/* cancel_brl_requests(tcon); */
-+	/* cancel_brl_requests(tcon); */ /* BB mark all brl mids as exiting */
- 	/* cancel_notify_requests(tcon); */
- 	if(tcon->ses && tcon->ses->server)
- 	{
-@@ -438,7 +437,6 @@
- 
- 	return;
- }
--#endif	
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/fs/Kconfig linux-2.6.18-rc6-xen/fs/Kconfig
+--- linux-2.6.18-rc6/fs/Kconfig	2006-09-05 10:53:24.000000000 +0200
++++ linux-2.6.18-rc6-xen/fs/Kconfig	2006-09-04 16:31:13.000000000 +0200
+@@ -865,6 +865,7 @@
+ config HUGETLBFS
+ 	bool "HugeTLB file system support"
+ 	depends X86 || IA64 || PPC64 || SPARC64 || SUPERH || BROKEN
++	depends !XEN
+ 	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-rc6/include/asm-generic/vmlinux.lds.h linux-2.6.18-rc6-xen/include/asm-generic/vmlinux.lds.h
+--- linux-2.6.18-rc6/include/asm-generic/vmlinux.lds.h	2006-09-05 10:53:25.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/asm-generic/vmlinux.lds.h	2006-09-04 16:31:16.000000000 +0200
+@@ -194,3 +194,6 @@
+ 		.stab.index 0 : { *(.stab.index) }			\
+ 		.stab.indexstr 0 : { *(.stab.indexstr) }		\
+ 		.comment 0 : { *(.comment) }
++
++#define NOTES								\
++		.notes : { *(.note.*) } :note
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/apic.h linux-2.6.18-rc6-xen/include/asm-i386/apic.h
+--- linux-2.6.18-rc6/include/asm-i386/apic.h	2006-09-05 10:53:25.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/asm-i386/apic.h	2006-09-04 16:31:16.000000000 +0200
+@@ -119,10 +119,12 @@
  
- static int cifs_remount(struct super_block *sb, int *flags, char *data)
- {
-@@ -457,9 +455,7 @@
-    unless later we add lazy close of inodes or unless the kernel forgets to call
-    us with the same number of releases (closes) as opens */
- 	.show_options = cifs_show_options,
--#ifdef CONFIG_CIFS_EXPERIMENTAL
- 	.umount_begin   = cifs_umount_begin,
--#endif
- 	.remount_fs = cifs_remount,
- };
+ extern int disable_timer_pin_1;
  
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/fs/cifs/cifsfs.h linux-2.6.18-rc5-xen/fs/cifs/cifsfs.h
---- linux-2.6.18-rc5/fs/cifs/cifsfs.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/fs/cifs/cifsfs.h	2006-09-01 00:09:11.000000000 +0200
-@@ -100,5 +100,5 @@
- extern ssize_t	cifs_listxattr(struct dentry *, char *, size_t);
- extern int cifs_ioctl (struct inode * inode, struct file * filep,
- 		       unsigned int command, unsigned long arg);
--#define CIFS_VERSION   "1.44"
-+#define CIFS_VERSION   "1.45"
- #endif				/* _CIFSFS_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/fs/cifs/cifsglob.h linux-2.6.18-rc5-xen/fs/cifs/cifsglob.h
---- linux-2.6.18-rc5/fs/cifs/cifsglob.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/fs/cifs/cifsglob.h	2006-09-01 00:09:11.000000000 +0200
-@@ -3,6 +3,7 @@
-  *
-  *   Copyright (C) International Business Machines  Corp., 2002,2006
-  *   Author(s): Steve French (sfrench at us.ibm.com)
-+ *              Jeremy Allison (jra at samba.org)
-  *
-  *   This library is free software; you can redistribute it and/or modify
-  *   it under the terms of the GNU Lesser General Public License as published
-@@ -158,7 +159,8 @@
- 	/* 16th byte of RFC1001 workstation name is always null */
- 	char workstation_RFC1001_name[SERVER_NAME_LEN_WITH_NULL];
- 	__u32 sequence_number; /* needed for CIFS PDU signature */
--	char mac_signing_key[CIFS_SESS_KEY_SIZE + 16]; 
-+	char mac_signing_key[CIFS_SESS_KEY_SIZE + 16];
-+	unsigned long lstrp; /* when we got last response from this server */
- };
++#ifndef CONFIG_XEN
+ void smp_send_timer_broadcast_ipi(struct pt_regs *regs);
+ void switch_APIC_timer_to_ipi(void *cpumask);
+ void switch_ipi_to_APIC_timer(void *cpumask);
+ #define ARCH_APICTIMER_STOPS_ON_C3	1
++#endif
  
- /*
-@@ -266,14 +268,14 @@
- };
+ extern int timer_over_8254;
  
- /*
-- * This info hangs off the cifsFileInfo structure.  This is used to track
-- * byte stream locks on the file
-+ * This info hangs off the cifsFileInfo structure, pointed to by llist.
-+ * This is used to track byte stream locks on the file
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/fixmap.h linux-2.6.18-rc6-xen/include/asm-i386/fixmap.h
+--- linux-2.6.18-rc6/include/asm-i386/fixmap.h	2006-09-05 10:53:25.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/asm-i386/fixmap.h	2006-09-04 16:31:16.000000000 +0200
+@@ -19,7 +19,7 @@
+  * Leave one empty page between vmalloc'ed areas and
+  * the start of the fixmap.
   */
- struct cifsLockInfo {
--	struct cifsLockInfo *next;
--	int start;
--	int length;
--	int type;
-+	struct list_head llist;	/* pointer to next cifsLockInfo */
-+	__u64 offset;
-+	__u64 length;
-+	__u8 type;
- };
- 
- /*
-@@ -304,6 +306,8 @@
- 	/* lock scope id (0 if none) */
- 	struct file * pfile; /* needed for writepage */
- 	struct inode * pInode; /* needed for oplock break */
-+	struct semaphore lock_sem;
-+	struct list_head llist; /* list of byte range locks we have. */
- 	unsigned closePend:1;	/* file is marked to close */
- 	unsigned invalidHandle:1;  /* file closed via session abend */
- 	atomic_t wrtPending;   /* handle in use - defer close */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/fs/cifs/cifsproto.h linux-2.6.18-rc5-xen/fs/cifs/cifsproto.h
---- linux-2.6.18-rc5/fs/cifs/cifsproto.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/fs/cifs/cifsproto.h	2006-09-01 00:09:11.000000000 +0200
-@@ -50,6 +50,10 @@
- extern int SendReceive2(const unsigned int /* xid */ , struct cifsSesInfo *,
- 			struct kvec *, int /* nvec to send */, 
- 			int * /* type of buf returned */ , const int long_op);
-+extern int SendReceiveBlockingLock(const unsigned int /* xid */ , struct cifsTconInfo *,
-+				struct smb_hdr * /* input */ ,
-+				struct smb_hdr * /* out */ ,
-+				int * /* bytes returned */);
- extern int checkSMBhdr(struct smb_hdr *smb, __u16 mid);
- extern int checkSMB(struct smb_hdr *smb, __u16 mid, int length);
- extern int is_valid_oplock_break(struct smb_hdr *smb, struct TCP_Server_Info *);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/fs/cifs/cifssmb.c linux-2.6.18-rc5-xen/fs/cifs/cifssmb.c
---- linux-2.6.18-rc5/fs/cifs/cifssmb.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/fs/cifs/cifssmb.c	2006-09-01 00:09:11.000000000 +0200
-@@ -477,7 +477,7 @@
- 		/* BB get server time for time conversions and add
- 		code to use it and timezone since this is not UTC */	
- 
--		if (rsp->EncryptionKeyLength == CIFS_CRYPTO_KEY_SIZE) {
-+		if (rsp->EncryptionKeyLength == cpu_to_le16(CIFS_CRYPTO_KEY_SIZE)) {
- 			memcpy(server->cryptKey, rsp->EncryptionKey,
- 				CIFS_CRYPTO_KEY_SIZE);
- 		} else if (server->secMode & SECMODE_PW_ENCRYPT) {
-@@ -1460,8 +1460,13 @@
- 	pSMB->hdr.smb_buf_length += count;
- 	pSMB->ByteCount = cpu_to_le16(count);
- 
--	rc = SendReceive(xid, tcon->ses, (struct smb_hdr *) pSMB,
-+	if (waitFlag) {
-+		rc = SendReceiveBlockingLock(xid, tcon, (struct smb_hdr *) pSMB,
-+			(struct smb_hdr *) pSMBr, &bytes_returned);
-+	} else {
-+		rc = SendReceive(xid, tcon->ses, (struct smb_hdr *) pSMB,
- 			 (struct smb_hdr *) pSMBr, &bytes_returned, timeout);
-+	}
- 	cifs_stats_inc(&tcon->num_locks);
- 	if (rc) {
- 		cFYI(1, ("Send error in Lock = %d", rc));
-@@ -1484,6 +1489,7 @@
- 	char *data_offset;
- 	struct cifs_posix_lock *parm_data;
- 	int rc = 0;
-+	int timeout = 0;
- 	int bytes_returned = 0;
- 	__u16 params, param_offset, offset, byte_count, count;
- 
-@@ -1503,7 +1509,6 @@
- 	pSMB->MaxSetupCount = 0;
- 	pSMB->Reserved = 0;
- 	pSMB->Flags = 0;
--	pSMB->Timeout = 0;
- 	pSMB->Reserved2 = 0;
- 	param_offset = offsetof(struct smb_com_transaction2_sfi_req, Fid) - 4;
- 	offset = param_offset + params;
-@@ -1529,8 +1534,13 @@
- 			(((char *) &pSMB->hdr.Protocol) + offset);
- 
- 	parm_data->lock_type = cpu_to_le16(lock_type);
--	if(waitFlag)
-+	if(waitFlag) {
-+		timeout = 3;  /* blocking operation, no timeout */
- 		parm_data->lock_flags = cpu_to_le16(1);
-+		pSMB->Timeout = cpu_to_le32(-1);
-+	} else
-+		pSMB->Timeout = 0;
-+
- 	parm_data->pid = cpu_to_le32(current->tgid);
- 	parm_data->start = cpu_to_le64(pLockData->fl_start);
- 	parm_data->length = cpu_to_le64(len);  /* normalize negative numbers */
-@@ -1541,8 +1551,14 @@
- 	pSMB->Reserved4 = 0;
- 	pSMB->hdr.smb_buf_length += byte_count;
- 	pSMB->ByteCount = cpu_to_le16(byte_count);
--	rc = SendReceive(xid, tcon->ses, (struct smb_hdr *) pSMB,
--			(struct smb_hdr *) pSMBr, &bytes_returned, 0);
-+	if (waitFlag) {
-+		rc = SendReceiveBlockingLock(xid, tcon, (struct smb_hdr *) pSMB,
-+			(struct smb_hdr *) pSMBr, &bytes_returned);
-+	} else {
-+		rc = SendReceive(xid, tcon->ses, (struct smb_hdr *) pSMB,
-+			(struct smb_hdr *) pSMBr, &bytes_returned, timeout);
-+	}
-+
- 	if (rc) {
- 		cFYI(1, ("Send error in Posix Lock = %d", rc));
- 	} else if (get_flag) {
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/fs/cifs/connect.c linux-2.6.18-rc5-xen/fs/cifs/connect.c
---- linux-2.6.18-rc5/fs/cifs/connect.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/fs/cifs/connect.c	2006-09-01 00:09:11.000000000 +0200
-@@ -182,6 +182,7 @@
+-#define __FIXADDR_TOP	0xfffff000
++extern unsigned long __FIXADDR_TOP;
  
- 	while ((server->tcpStatus != CifsExiting) && (server->tcpStatus != CifsGood))
- 	{
-+		try_to_freeze();
- 		if(server->protocolType == IPV6) {
- 			rc = ipv6_connect(&server->addr.sockAddr6,&server->ssocket);
- 		} else {
-@@ -612,6 +613,10 @@
- #ifdef CONFIG_CIFS_STATS2
- 				mid_entry->when_received = jiffies;
- #endif
-+				/* so we do not time out requests to  server
-+				which is still responding (since server could
-+				be busy but not dead) */
-+				server->lstrp = jiffies;
- 				break;
- 			}
- 		}
-@@ -1266,33 +1271,35 @@
+ #ifndef __ASSEMBLY__
+ #include <linux/kernel.h>
+@@ -94,6 +94,8 @@
+ extern void __set_fixmap (enum fixed_addresses idx,
+ 					unsigned long phys, pgprot_t flags);
  
- 	read_lock(&GlobalSMBSeslock);
- 	list_for_each(tmp, &GlobalTreeConnectionList) {
--		cFYI(1, ("Next tcon - "));
-+		cFYI(1, ("Next tcon"));
- 		tcon = list_entry(tmp, struct cifsTconInfo, cifsConnectionList);
- 		if (tcon->ses) {
- 			if (tcon->ses->server) {
- 				cFYI(1,
--				     (" old ip addr: %x == new ip %x ?",
-+				     ("old ip addr: %x == new ip %x ?",
- 				      tcon->ses->server->addr.sockAddr.sin_addr.
- 				      s_addr, new_target_ip_addr));
- 				if (tcon->ses->server->addr.sockAddr.sin_addr.
- 				    s_addr == new_target_ip_addr) {
--	/* BB lock tcon and server and tcp session and increment use count here? */
-+	/* BB lock tcon, server and tcp session and increment use count here? */
- 					/* found a match on the TCP session */
- 					/* BB check if reconnection needed */
--					cFYI(1,("Matched ip, old UNC: %s == new: %s ?",
-+					cFYI(1,("IP match, old UNC: %s new: %s",
- 					      tcon->treeName, uncName));
- 					if (strncmp
- 					    (tcon->treeName, uncName,
- 					     MAX_TREE_SIZE) == 0) {
- 						cFYI(1,
--						     ("Matched UNC, old user: %s == new: %s ?",
-+						     ("and old usr: %s new: %s",
- 						      tcon->treeName, uncName));
- 						if (strncmp
- 						    (tcon->ses->userName,
- 						     userName,
- 						     MAX_USERNAME_SIZE) == 0) {
- 							read_unlock(&GlobalSMBSeslock);
--							return tcon;/* also matched user (smb session)*/
-+							/* matched smb session
-+							(user name */
-+							return tcon;
- 						}
- 					}
- 				}
-@@ -1969,7 +1976,18 @@
- 				}
- 					
- 				cFYI(1,("Negotiate caps 0x%x",(int)cap));
--
-+#ifdef CONFIG_CIFS_DEBUG2
-+				if(cap & CIFS_UNIX_FCNTL_CAP)
-+					cFYI(1,("FCNTL cap"));
-+				if(cap & CIFS_UNIX_EXTATTR_CAP)
-+					cFYI(1,("EXTATTR cap"));
-+				if(cap & CIFS_UNIX_POSIX_PATHNAMES_CAP)
-+					cFYI(1,("POSIX path cap"));
-+				if(cap & CIFS_UNIX_XATTR_CAP)
-+					cFYI(1,("XATTR cap"));
-+				if(cap & CIFS_UNIX_POSIX_ACL_CAP)
-+					cFYI(1,("POSIX ACL cap"));
-+#endif /* CIFS_DEBUG2 */
- 				if (CIFSSMBSetFSUnixInfo(xid, tcon, cap)) {
- 					cFYI(1,("setting capabilities failed"));
- 				}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/fs/cifs/dir.c linux-2.6.18-rc5-xen/fs/cifs/dir.c
---- linux-2.6.18-rc5/fs/cifs/dir.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/fs/cifs/dir.c	2006-09-01 00:09:11.000000000 +0200
-@@ -267,6 +267,10 @@
- 			pCifsFile->invalidHandle = FALSE;
- 			pCifsFile->closePend     = FALSE;
- 			init_MUTEX(&pCifsFile->fh_sem);
-+			init_MUTEX(&pCifsFile->lock_sem);
-+			INIT_LIST_HEAD(&pCifsFile->llist);
-+			atomic_set(&pCifsFile->wrtPending,0);
-+
- 			/* set the following in open now 
- 				pCifsFile->pfile = file; */
- 			write_lock(&GlobalSMBSeslock);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/fs/cifs/file.c linux-2.6.18-rc5-xen/fs/cifs/file.c
---- linux-2.6.18-rc5/fs/cifs/file.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/fs/cifs/file.c	2006-09-01 00:09:11.000000000 +0200
-@@ -5,6 +5,7 @@
-  * 
-  *   Copyright (C) International Business Machines  Corp., 2002,2003
-  *   Author(s): Steve French (sfrench at us.ibm.com)
-+ *              Jeremy Allison (jra at samba.org)
-  *
-  *   This library is free software; you can redistribute it and/or modify
-  *   it under the terms of the GNU Lesser General Public License as published
-@@ -47,6 +48,8 @@
- 	private_data->netfid = netfid;
- 	private_data->pid = current->tgid;	
- 	init_MUTEX(&private_data->fh_sem);
-+	init_MUTEX(&private_data->lock_sem);
-+	INIT_LIST_HEAD(&private_data->llist);
- 	private_data->pfile = file; /* needed for writepage */
- 	private_data->pInode = inode;
- 	private_data->invalidHandle = FALSE;
-@@ -473,6 +476,8 @@
- 	cifs_sb = CIFS_SB(inode->i_sb);
- 	pTcon = cifs_sb->tcon;
- 	if (pSMBFile) {
-+		struct cifsLockInfo *li, *tmp;
-+
- 		pSMBFile->closePend = TRUE;
- 		if (pTcon) {
- 			/* no sense reconnecting to close a file that is
-@@ -496,6 +501,16 @@
- 						  pSMBFile->netfid);
- 			}
- 		}
++extern void set_fixaddr_top(unsigned long top);
 +
-+		/* Delete any outstanding lock records.
-+		   We'll lose them when the file is closed anyway. */
-+		down(&pSMBFile->lock_sem);
-+		list_for_each_entry_safe(li, tmp, &pSMBFile->llist, llist) {
-+			list_del(&li->llist);
-+			kfree(li);
-+		}
-+		up(&pSMBFile->lock_sem);
-+
- 		write_lock(&GlobalSMBSeslock);
- 		list_del(&pSMBFile->flist);
- 		list_del(&pSMBFile->tlist);
-@@ -570,6 +585,21 @@
- 	return rc;
+ #define set_fixmap(idx, phys) \
+ 		__set_fixmap(idx, phys, PAGE_KERNEL)
+ /*
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-default/mach_traps.h linux-2.6.18-rc6-xen/include/asm-i386/mach-default/mach_traps.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-default/mach_traps.h	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-default/mach_traps.h	2006-09-04 16:31:16.000000000 +0200
+@@ -15,6 +15,18 @@
+ 	outb(reason, 0x61);
  }
  
-+static int store_file_lock(struct cifsFileInfo *fid, __u64 len,
-+				__u64 offset, __u8 lockType)
++static inline void clear_io_check_error(unsigned char reason)
 +{
-+	struct cifsLockInfo *li = kmalloc(sizeof(struct cifsLockInfo), GFP_KERNEL);
-+	if (li == NULL)
-+		return -ENOMEM;
-+	li->offset = offset;
-+	li->length = len;
-+	li->type = lockType;
-+	down(&fid->lock_sem);
-+	list_add(&li->llist, &fid->llist);
-+	up(&fid->lock_sem);
-+	return 0;
++	unsigned long i;
++
++	reason = (reason & 0xf) | 8;
++	outb(reason, 0x61);
++	i = 2000;
++	while (--i) udelay(1000);
++	reason &= ~8;
++	outb(reason, 0x61);
 +}
 +
- int cifs_lock(struct file *file, int cmd, struct file_lock *pfLock)
+ static inline unsigned char get_nmi_reason(void)
  {
- 	int rc, xid;
-@@ -581,6 +611,7 @@
- 	struct cifsTconInfo *pTcon;
- 	__u16 netfid;
- 	__u8 lockType = LOCKING_ANDX_LARGE_FILES;
-+	int posix_locking;
- 
- 	length = 1 + pfLock->fl_end - pfLock->fl_start;
- 	rc = -EACCES;
-@@ -639,15 +670,14 @@
- 	}
- 	netfid = ((struct cifsFileInfo *)file->private_data)->netfid;
- 
-+	posix_locking = (cifs_sb->tcon->ses->capabilities & CAP_UNIX) &&
-+			(CIFS_UNIX_FCNTL_CAP & le64_to_cpu(cifs_sb->tcon->fsUnixInfo.Capability));
- 
- 	/* BB add code here to normalize offset and length to
- 	account for negative length which we can not accept over the
- 	wire */
- 	if (IS_GETLK(cmd)) {
--		if(experimEnabled && 
--		   (cifs_sb->tcon->ses->capabilities & CAP_UNIX) &&
--		   (CIFS_UNIX_FCNTL_CAP & 
--			le64_to_cpu(cifs_sb->tcon->fsUnixInfo.Capability))) {
-+		if(posix_locking) {
- 			int posix_lock_type;
- 			if(lockType & LOCKING_ANDX_SHARED_LOCK)
- 				posix_lock_type = CIFS_RDLCK;
-@@ -683,10 +713,15 @@
- 		FreeXid(xid);
- 		return rc;
- 	}
--	if (experimEnabled &&
--		(cifs_sb->tcon->ses->capabilities & CAP_UNIX) &&
--		(CIFS_UNIX_FCNTL_CAP &
--			 le64_to_cpu(cifs_sb->tcon->fsUnixInfo.Capability))) {
-+
-+	if (!numLock && !numUnlock) {
-+		/* if no lock or unlock then nothing
-+		to do since we do not know what it is */
-+		FreeXid(xid);
-+		return -EOPNOTSUPP;
-+	}
+ 	return inb(0x61);
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/agp.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/agp.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/agp.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/agp.h	2006-09-04 16:31:16.000000000 +0200
+@@ -0,0 +1,37 @@
++#ifndef AGP_H
++#define AGP_H 1
 +
-+	if (posix_locking) {
- 		int posix_lock_type;
- 		if(lockType & LOCKING_ANDX_SHARED_LOCK)
- 			posix_lock_type = CIFS_RDLCK;
-@@ -695,18 +730,46 @@
- 		
- 		if(numUnlock == 1)
- 			posix_lock_type = CIFS_UNLCK;
--		else if(numLock == 0) {
--			/* if no lock or unlock then nothing
--			to do since we do not know what it is */
--			FreeXid(xid);
--			return -EOPNOTSUPP;
--		}
-+
- 		rc = CIFSSMBPosixLock(xid, pTcon, netfid, 0 /* set */,
- 				      length, pfLock,
- 				      posix_lock_type, wait_flag);
--	} else
--		rc = CIFSSMBLock(xid, pTcon, netfid, length, pfLock->fl_start,
--				numUnlock, numLock, lockType, wait_flag);
-+	} else {
-+		struct cifsFileInfo *fid = (struct cifsFileInfo *)file->private_data;
++#include <asm/pgtable.h>
++#include <asm/cacheflush.h>
++#include <asm/system.h>
 +
-+		if (numLock) {
-+			rc = CIFSSMBLock(xid, pTcon, netfid, length, pfLock->fl_start,
-+					0, numLock, lockType, wait_flag);
-+
-+			if (rc == 0) {
-+				/* For Windows locks we must store them. */
-+				rc = store_file_lock(fid, length,
-+						pfLock->fl_start, lockType);
-+			}
-+		} else if (numUnlock) {
-+			/* For each stored lock that this unlock overlaps
-+			   completely, unlock it. */
-+			int stored_rc = 0;
-+			struct cifsLockInfo *li, *tmp;
-+
-+			down(&fid->lock_sem);
-+			list_for_each_entry_safe(li, tmp, &fid->llist, llist) {
-+				if (pfLock->fl_start <= li->offset &&
-+						length >= li->length) {
-+					stored_rc = CIFSSMBLock(xid, pTcon, netfid,
-+							li->length, li->offset,
-+							1, 0, li->type, FALSE);
-+					if (stored_rc)
-+						rc = stored_rc;
++/* 
++ * Functions to keep the agpgart mappings coherent with the MMU.
++ * The GART gives the CPU a physical alias of pages in memory. The alias region is
++ * mapped uncacheable. Make sure there are no conflicting mappings
++ * with different cachability attributes for the same page. This avoids
++ * data corruption on some CPUs.
++ */
 +
-+					list_del(&li->llist);
-+					kfree(li);
-+				}
-+			}
-+		up(&fid->lock_sem);
-+		}
-+	}
++int map_page_into_agp(struct page *page);
++int unmap_page_from_agp(struct page *page);
++#define flush_agp_mappings() global_flush_tlb()
 +
- 	if (pfLock->fl_flags & FL_POSIX)
- 		posix_lock_file_wait(file, pfLock);
- 	FreeXid(xid);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/fs/cifs/netmisc.c linux-2.6.18-rc5-xen/fs/cifs/netmisc.c
---- linux-2.6.18-rc5/fs/cifs/netmisc.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/fs/cifs/netmisc.c	2006-09-01 00:09:11.000000000 +0200
-@@ -72,6 +72,7 @@
- 	{ERRinvlevel,-EOPNOTSUPP},
- 	{ERRdirnotempty, -ENOTEMPTY},
- 	{ERRnotlocked, -ENOLCK},
-+	{ERRcancelviolation, -ENOLCK},
- 	{ERRalreadyexists, -EEXIST},
- 	{ERRmoredata, -EOVERFLOW},
- 	{ERReasnotsupported,-EOPNOTSUPP},
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/fs/cifs/readdir.c linux-2.6.18-rc5-xen/fs/cifs/readdir.c
---- linux-2.6.18-rc5/fs/cifs/readdir.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/fs/cifs/readdir.c	2006-09-01 00:09:11.000000000 +0200
-@@ -556,7 +556,7 @@
- 		FIND_FILE_STANDARD_INFO * pFindData =
- 			(FIND_FILE_STANDARD_INFO *)current_entry;
- 		filename = &pFindData->FileName[0];
--		len = le32_to_cpu(pFindData->FileNameLength);
-+		len = pFindData->FileNameLength;
- 	} else {
- 		cFYI(1,("Unknown findfirst level %d",cfile->srch_inf.info_level));
- 	}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/fs/cifs/README linux-2.6.18-rc5-xen/fs/cifs/README
---- linux-2.6.18-rc5/fs/cifs/README	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/fs/cifs/README	2006-09-01 00:09:11.000000000 +0200
-@@ -408,7 +408,7 @@
-   user_xattr    Allow getting and setting user xattrs as OS/2 EAs (extended
- 		attributes) to the server (default) e.g. via setfattr 
- 		and getfattr utilities. 
--  nouser_xattr  Do not allow getfattr/setfattr to get/set xattrs 
-+  nouser_xattr  Do not allow getfattr/setfattr to get/set/list xattrs 
-   mapchars      Translate six of the seven reserved characters (not backslash)
- 			*?<>|:
- 		to the remap range (above 0xF000), which also
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/fs/cifs/sess.c linux-2.6.18-rc5-xen/fs/cifs/sess.c
---- linux-2.6.18-rc5/fs/cifs/sess.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/fs/cifs/sess.c	2006-09-01 00:09:11.000000000 +0200
-@@ -372,7 +372,7 @@
- 
- 		/* no capabilities flags in old lanman negotiation */
- 
--		pSMB->old_req.PasswordLength = CIFS_SESS_KEY_SIZE; 
-+		pSMB->old_req.PasswordLength = cpu_to_le16(CIFS_SESS_KEY_SIZE); 
- 		/* BB calculate hash with password */
- 		/* and copy into bcc */
- 
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/fs/cifs/smberr.h linux-2.6.18-rc5-xen/fs/cifs/smberr.h
---- linux-2.6.18-rc5/fs/cifs/smberr.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/fs/cifs/smberr.h	2006-09-01 00:09:11.000000000 +0200
-@@ -95,6 +95,7 @@
- #define ERRinvlevel		124
- #define ERRdirnotempty		145
- #define ERRnotlocked		158
-+#define ERRcancelviolation	173
- #define ERRalreadyexists	183
- #define ERRbadpipe		230
- #define ERRpipebusy		231
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/fs/cifs/transport.c linux-2.6.18-rc5-xen/fs/cifs/transport.c
---- linux-2.6.18-rc5/fs/cifs/transport.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/fs/cifs/transport.c	2006-09-01 00:09:11.000000000 +0200
-@@ -3,7 +3,8 @@
-  *
-  *   Copyright (C) International Business Machines  Corp., 2002,2005
-  *   Author(s): Steve French (sfrench at us.ibm.com)
-- *
-+ *   Jeremy Allison (jra at samba.org) 2006.
-+ *    
-  *   This library is free software; you can redistribute it and/or modify
-  *   it under the terms of the GNU Lesser General Public License as published
-  *   by the Free Software Foundation; either version 2.1 of the License, or
-@@ -36,7 +37,7 @@
- extern kmem_cache_t *cifs_oplock_cachep;
- 
- static struct mid_q_entry *
--AllocMidQEntry(struct smb_hdr *smb_buffer, struct cifsSesInfo *ses)
-+AllocMidQEntry(const struct smb_hdr *smb_buffer, struct cifsSesInfo *ses)
- {
- 	struct mid_q_entry *temp;
- 
-@@ -203,6 +204,10 @@
- 		rc = 0;
- 	}
- 
-+	/* Don't want to modify the buffer as a
-+	   side effect of this call. */
-+	smb_buffer->smb_buf_length = smb_buf_length;
++/* Could use CLFLUSH here if the cpu supports it. But then it would
++   need to be called for each cacheline of the whole page so it may not be 
++   worth it. Would need a page for it. */
++#define flush_agp_cache() wbinvd()
 +
- 	return rc;
- }
- 
-@@ -217,6 +222,7 @@
- 	unsigned int len = iov[0].iov_len;
- 	unsigned int total_len;
- 	int first_vec = 0;
-+	unsigned int smb_buf_length = smb_buffer->smb_buf_length;
- 	
- 	if(ssocket == NULL)
- 		return -ENOTSOCK; /* BB eventually add reconnect code here */
-@@ -293,36 +299,15 @@
- 	} else
- 		rc = 0;
- 
-+	/* Don't want to modify the buffer as a
-+	   side effect of this call. */
-+	smb_buffer->smb_buf_length = smb_buf_length;
++/* Convert a physical address to an address suitable for the GART. */
++#define phys_to_gart(x) phys_to_machine(x)
++#define gart_to_phys(x) machine_to_phys(x)
 +
- 	return rc;
- }
- 
--int
--SendReceive2(const unsigned int xid, struct cifsSesInfo *ses, 
--	     struct kvec *iov, int n_vec, int * pRespBufType /* ret */, 
--	     const int long_op)
-+static int wait_for_free_request(struct cifsSesInfo *ses, const int long_op)
- {
--	int rc = 0;
--	unsigned int receive_len;
--	unsigned long timeout;
--	struct mid_q_entry *midQ;
--	struct smb_hdr *in_buf = iov[0].iov_base;
--	
--	*pRespBufType = CIFS_NO_BUFFER;  /* no response buf yet */
--
--	if ((ses == NULL) || (ses->server == NULL)) {
--		cifs_small_buf_release(in_buf);
--		cERROR(1,("Null session"));
--		return -EIO;
--	}
--
--	if(ses->server->tcpStatus == CifsExiting) {
--		cifs_small_buf_release(in_buf);
--		return -ENOENT;
--	}
--
--	/* Ensure that we do not send more than 50 overlapping requests 
--	   to the same server. We may make this configurable later or
--	   use ses->maxReq */
- 	if(long_op == -1) {
- 		/* oplock breaks must not be held up */
- 		atomic_inc(&ses->server->inFlight);
-@@ -345,53 +330,140 @@
- 			} else {
- 				if(ses->server->tcpStatus == CifsExiting) {
- 					spin_unlock(&GlobalMid_Lock);
--					cifs_small_buf_release(in_buf);
- 					return -ENOENT;
- 				}
- 
--			/* can not count locking commands against total since
--			   they are allowed to block on server */
-+				/* can not count locking commands against total since
-+				   they are allowed to block on server */
- 					
--				if(long_op < 3) {
- 				/* update # of requests on the wire to server */
-+				if (long_op < 3)
- 					atomic_inc(&ses->server->inFlight);
--				}
- 				spin_unlock(&GlobalMid_Lock);
- 				break;
- 			}
- 		}
- 	}
--	/* make sure that we sign in the same order that we send on this socket 
--	   and avoid races inside tcp sendmsg code that could cause corruption
--	   of smb data */
--
--	down(&ses->server->tcpSem); 
-+	return 0;
-+}
- 
-+static int allocate_mid(struct cifsSesInfo *ses, struct smb_hdr *in_buf,
-+			struct mid_q_entry **ppmidQ)
-+{
- 	if (ses->server->tcpStatus == CifsExiting) {
--		rc = -ENOENT;
--		goto out_unlock2;
-+		return -ENOENT;
- 	} else if (ses->server->tcpStatus == CifsNeedReconnect) {
- 		cFYI(1,("tcp session dead - return to caller to retry"));
--		rc = -EAGAIN;
--		goto out_unlock2;
-+		return -EAGAIN;
- 	} else if (ses->status != CifsGood) {
- 		/* check if SMB session is bad because we are setting it up */
- 		if((in_buf->Command != SMB_COM_SESSION_SETUP_ANDX) && 
- 			(in_buf->Command != SMB_COM_NEGOTIATE)) {
--			rc = -EAGAIN;
--			goto out_unlock2;
-+			return -EAGAIN;
- 		} /* else ok - we are setting up session */
- 	}
--	midQ = AllocMidQEntry(in_buf, ses);
--	if (midQ == NULL) {
-+	*ppmidQ = AllocMidQEntry(in_buf, ses);
-+	if (*ppmidQ == NULL) {
-+		return -ENOMEM;
-+	}
-+	return 0;
-+}
++/* GATT allocation. Returns/accepts GATT kernel virtual address. */
++#define alloc_gatt_pages(order)	({                                          \
++	char *_t; dma_addr_t _d;                                            \
++	_t = dma_alloc_coherent(NULL,PAGE_SIZE<<(order),&_d,GFP_KERNEL);    \
++	_t; })
++#define free_gatt_pages(table, order)	\
++	dma_free_coherent(NULL,PAGE_SIZE<<(order),(table),virt_to_bus(table))
 +
-+static int wait_for_response(struct cifsSesInfo *ses, 
-+			struct mid_q_entry *midQ,
-+			unsigned long timeout,
-+			unsigned long time_to_wait)
-+{
-+	unsigned long curr_timeout;
++#endif
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/desc.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/desc.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/desc.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/desc.h	2006-09-04 16:31:16.000000000 +0200
+@@ -0,0 +1,164 @@
++#ifndef __ARCH_DESC_H
++#define __ARCH_DESC_H
 +
-+	for (;;) {
-+		curr_timeout = timeout + jiffies;
-+		wait_event(ses->server->response_q,
-+			(!(midQ->midState == MID_REQUEST_SUBMITTED)) || 
-+			time_after(jiffies, curr_timeout) || 
-+			((ses->server->tcpStatus != CifsGood) &&
-+			 (ses->server->tcpStatus != CifsNew)));
-+
-+		if (time_after(jiffies, curr_timeout) &&
-+			(midQ->midState == MID_REQUEST_SUBMITTED) &&
-+			((ses->server->tcpStatus == CifsGood) ||
-+			 (ses->server->tcpStatus == CifsNew))) {
-+
-+			unsigned long lrt;
-+
-+			/* We timed out. Is the server still
-+			   sending replies ? */
-+			spin_lock(&GlobalMid_Lock);
-+			lrt = ses->server->lstrp;
-+			spin_unlock(&GlobalMid_Lock);
-+
-+			/* Calculate time_to_wait past last receive time.
-+			 Although we prefer not to time out if the 
-+			 server is still responding - we will time
-+			 out if the server takes more than 15 (or 45 
-+			 or 180) seconds to respond to this request
-+			 and has not responded to any request from 
-+			 other threads on the client within 10 seconds */
-+			lrt += time_to_wait;
-+			if (time_after(jiffies, lrt)) {
-+				/* No replies for time_to_wait. */
-+				cERROR(1,("server not responding"));
-+				return -1;
-+			}
-+		} else {
-+			return 0;
-+		}
-+	}
-+}
++#include <asm/ldt.h>
++#include <asm/segment.h>
 +
-+int
-+SendReceive2(const unsigned int xid, struct cifsSesInfo *ses, 
-+	     struct kvec *iov, int n_vec, int * pRespBufType /* ret */, 
-+	     const int long_op)
-+{
-+	int rc = 0;
-+	unsigned int receive_len;
-+	unsigned long timeout;
-+	struct mid_q_entry *midQ;
-+	struct smb_hdr *in_buf = iov[0].iov_base;
-+	
-+	*pRespBufType = CIFS_NO_BUFFER;  /* no response buf yet */
++#define CPU_16BIT_STACK_SIZE 1024
 +
-+	if ((ses == NULL) || (ses->server == NULL)) {
-+		cifs_small_buf_release(in_buf);
-+		cERROR(1,("Null session"));
-+		return -EIO;
-+	}
++#ifndef __ASSEMBLY__
 +
-+	if(ses->server->tcpStatus == CifsExiting) {
-+		cifs_small_buf_release(in_buf);
-+		return -ENOENT;
-+	}
++#include <linux/preempt.h>
++#include <linux/smp.h>
 +
-+	/* Ensure that we do not send more than 50 overlapping requests 
-+	   to the same server. We may make this configurable later or
-+	   use ses->maxReq */
-+
-+	rc = wait_for_free_request(ses, long_op);
-+	if (rc) {
-+		cifs_small_buf_release(in_buf);
-+		return rc;
-+	}
++#include <asm/mmu.h>
 +
-+	/* make sure that we sign in the same order that we send on this socket 
-+	   and avoid races inside tcp sendmsg code that could cause corruption
-+	   of smb data */
-+
-+	down(&ses->server->tcpSem); 
-+
-+	rc = allocate_mid(ses, in_buf, &midQ);
-+	if (rc) {
- 		up(&ses->server->tcpSem);
- 		cifs_small_buf_release(in_buf);
--		/* If not lock req, update # of requests on wire to server */
--		if(long_op < 3) {
--			atomic_dec(&ses->server->inFlight); 
--			wake_up(&ses->server->request_q);
--		}
--		return -ENOMEM;
-+		/* Update # of requests on wire to server */
-+		atomic_dec(&ses->server->inFlight); 
-+		wake_up(&ses->server->request_q);
-+		return rc;
- 	}
- 
-  	rc = cifs_sign_smb2(iov, n_vec, ses->server, &midQ->sequence_number);
-@@ -406,32 +478,23 @@
- 	atomic_dec(&ses->server->inSend);
- 	midQ->when_sent = jiffies;
- #endif
--	if(rc < 0) {
--		DeleteMidQEntry(midQ);
--		up(&ses->server->tcpSem);
--		cifs_small_buf_release(in_buf);
--		/* If not lock req, update # of requests on wire to server */
--		if(long_op < 3) {
--			atomic_dec(&ses->server->inFlight); 
--			wake_up(&ses->server->request_q);
--		}
--		return rc;
--	} else {
--		up(&ses->server->tcpSem);
--		cifs_small_buf_release(in_buf);
--	}
-+
-+	up(&ses->server->tcpSem);
-+	cifs_small_buf_release(in_buf);
-+
-+	if(rc < 0)
-+		goto out;
- 
- 	if (long_op == -1)
--		goto cifs_no_response_exit2;
-+		goto out;
- 	else if (long_op == 2) /* writes past end of file can take loong time */
- 		timeout = 180 * HZ;
- 	else if (long_op == 1)
- 		timeout = 45 * HZ; /* should be greater than 
- 			servers oplock break timeout (about 43 seconds) */
--	else if (long_op > 2) {
--		timeout = MAX_SCHEDULE_TIMEOUT;
--	} else
-+	else
- 		timeout = 15 * HZ;
-+
- 	/* wait for 15 seconds or until woken up due to response arriving or 
- 	   due to last connection to this server being unmounted */
- 	if (signal_pending(current)) {
-@@ -441,19 +504,7 @@
- 	}   
- 
- 	/* No user interrupts in wait - wreaks havoc with performance */
--	if(timeout != MAX_SCHEDULE_TIMEOUT) {
--		timeout += jiffies;
--		wait_event(ses->server->response_q,
--			(!(midQ->midState & MID_REQUEST_SUBMITTED)) || 
--			time_after(jiffies, timeout) || 
--			((ses->server->tcpStatus != CifsGood) &&
--			 (ses->server->tcpStatus != CifsNew)));
--	} else {
--		wait_event(ses->server->response_q,
--			(!(midQ->midState & MID_REQUEST_SUBMITTED)) || 
--			((ses->server->tcpStatus != CifsGood) &&
--			 (ses->server->tcpStatus != CifsNew)));
--	}
-+	wait_for_response(ses, midQ, timeout, 10 * HZ);
- 
- 	spin_lock(&GlobalMid_Lock);
- 	if (midQ->resp_buf) {
-@@ -481,11 +532,9 @@
- 		}
- 		spin_unlock(&GlobalMid_Lock);
- 		DeleteMidQEntry(midQ);
--		/* If not lock req, update # of requests on wire to server */
--		if(long_op < 3) {
--			atomic_dec(&ses->server->inFlight); 
--			wake_up(&ses->server->request_q);
--		}
-+		/* Update # of requests on wire to server */
-+		atomic_dec(&ses->server->inFlight); 
-+		wake_up(&ses->server->request_q);
- 		return rc;
- 	}
-   
-@@ -536,24 +585,12 @@
- 			cFYI(1,("Bad MID state?"));
- 		}
- 	}
--cifs_no_response_exit2:
--	DeleteMidQEntry(midQ);
--
--	if(long_op < 3) {
--		atomic_dec(&ses->server->inFlight); 
--		wake_up(&ses->server->request_q);
--	}
- 
--	return rc;
-+out:
- 
--out_unlock2:
--	up(&ses->server->tcpSem);
--	cifs_small_buf_release(in_buf);
--	/* If not lock req, update # of requests on wire to server */
--	if(long_op < 3) {
--		atomic_dec(&ses->server->inFlight); 
--		wake_up(&ses->server->request_q);
--	}
-+	DeleteMidQEntry(midQ);
-+	atomic_dec(&ses->server->inFlight); 
-+	wake_up(&ses->server->request_q);
- 
- 	return rc;
- }
-@@ -583,85 +620,34 @@
- 	/* Ensure that we do not send more than 50 overlapping requests 
- 	   to the same server. We may make this configurable later or
- 	   use ses->maxReq */
--	if(long_op == -1) {
--		/* oplock breaks must not be held up */
--		atomic_inc(&ses->server->inFlight);
--	} else {
--		spin_lock(&GlobalMid_Lock); 
--		while(1) {        
--			if(atomic_read(&ses->server->inFlight) >= 
--					cifs_max_pending){
--				spin_unlock(&GlobalMid_Lock);
--#ifdef CONFIG_CIFS_STATS2
--				atomic_inc(&ses->server->num_waiters);
--#endif
--				wait_event(ses->server->request_q,
--					atomic_read(&ses->server->inFlight)
--					 < cifs_max_pending);
--#ifdef CONFIG_CIFS_STATS2
--				atomic_dec(&ses->server->num_waiters);
--#endif
--				spin_lock(&GlobalMid_Lock);
--			} else {
--				if(ses->server->tcpStatus == CifsExiting) {
--					spin_unlock(&GlobalMid_Lock);
--					return -ENOENT;
--				}
- 
--			/* can not count locking commands against total since
--			   they are allowed to block on server */
--					
--				if(long_op < 3) {
--				/* update # of requests on the wire to server */
--					atomic_inc(&ses->server->inFlight);
--				}
--				spin_unlock(&GlobalMid_Lock);
--				break;
--			}
--		}
--	}
-+	rc = wait_for_free_request(ses, long_op);
-+	if (rc)
-+		return rc;
-+
- 	/* make sure that we sign in the same order that we send on this socket 
- 	   and avoid races inside tcp sendmsg code that could cause corruption
- 	   of smb data */
- 
- 	down(&ses->server->tcpSem); 
- 
--	if (ses->server->tcpStatus == CifsExiting) {
--		rc = -ENOENT;
--		goto out_unlock;
--	} else if (ses->server->tcpStatus == CifsNeedReconnect) {
--		cFYI(1,("tcp session dead - return to caller to retry"));
--		rc = -EAGAIN;
--		goto out_unlock;
--	} else if (ses->status != CifsGood) {
--		/* check if SMB session is bad because we are setting it up */
--		if((in_buf->Command != SMB_COM_SESSION_SETUP_ANDX) && 
--			(in_buf->Command != SMB_COM_NEGOTIATE)) {
--			rc = -EAGAIN;
--			goto out_unlock;
--		} /* else ok - we are setting up session */
--	}
--	midQ = AllocMidQEntry(in_buf, ses);
--	if (midQ == NULL) {
-+	rc = allocate_mid(ses, in_buf, &midQ);
-+	if (rc) {
- 		up(&ses->server->tcpSem);
--		/* If not lock req, update # of requests on wire to server */
--		if(long_op < 3) {
--			atomic_dec(&ses->server->inFlight); 
--			wake_up(&ses->server->request_q);
--		}
--		return -ENOMEM;
-+		/* Update # of requests on wire to server */
-+		atomic_dec(&ses->server->inFlight); 
-+		wake_up(&ses->server->request_q);
-+		return rc;
- 	}
- 
- 	if (in_buf->smb_buf_length > CIFSMaxBufSize + MAX_CIFS_HDR_SIZE - 4) {
--		up(&ses->server->tcpSem);
- 		cERROR(1, ("Illegal length, greater than maximum frame, %d",
- 			in_buf->smb_buf_length));
- 		DeleteMidQEntry(midQ);
--		/* If not lock req, update # of requests on wire to server */
--		if(long_op < 3) {
--			atomic_dec(&ses->server->inFlight); 
--			wake_up(&ses->server->request_q);
--		}
-+		up(&ses->server->tcpSem);
-+		/* Update # of requests on wire to server */
-+		atomic_dec(&ses->server->inFlight); 
-+		wake_up(&ses->server->request_q);
- 		return -EIO;
- 	}
- 
-@@ -677,27 +663,19 @@
- 	atomic_dec(&ses->server->inSend);
- 	midQ->when_sent = jiffies;
- #endif
--	if(rc < 0) {
--		DeleteMidQEntry(midQ);
--		up(&ses->server->tcpSem);
--		/* If not lock req, update # of requests on wire to server */
--		if(long_op < 3) {
--			atomic_dec(&ses->server->inFlight); 
--			wake_up(&ses->server->request_q);
--		}
--		return rc;
--	} else
--		up(&ses->server->tcpSem);
-+	up(&ses->server->tcpSem);
-+
-+	if(rc < 0)
-+		goto out;
-+
- 	if (long_op == -1)
--		goto cifs_no_response_exit;
-+		goto out;
- 	else if (long_op == 2) /* writes past end of file can take loong time */
- 		timeout = 180 * HZ;
- 	else if (long_op == 1)
- 		timeout = 45 * HZ; /* should be greater than 
- 			servers oplock break timeout (about 43 seconds) */
--	else if (long_op > 2) {
--		timeout = MAX_SCHEDULE_TIMEOUT;
--	} else
-+	else
- 		timeout = 15 * HZ;
- 	/* wait for 15 seconds or until woken up due to response arriving or 
- 	   due to last connection to this server being unmounted */
-@@ -708,19 +686,7 @@
- 	}   
- 
- 	/* No user interrupts in wait - wreaks havoc with performance */
--	if(timeout != MAX_SCHEDULE_TIMEOUT) {
--		timeout += jiffies;
--		wait_event(ses->server->response_q,
--			(!(midQ->midState & MID_REQUEST_SUBMITTED)) || 
--			time_after(jiffies, timeout) || 
--			((ses->server->tcpStatus != CifsGood) &&
--			 (ses->server->tcpStatus != CifsNew)));
--	} else {
--		wait_event(ses->server->response_q,
--			(!(midQ->midState & MID_REQUEST_SUBMITTED)) || 
--			((ses->server->tcpStatus != CifsGood) &&
--			 (ses->server->tcpStatus != CifsNew)));
--	}
-+	wait_for_response(ses, midQ, timeout, 10 * HZ);
- 
- 	spin_lock(&GlobalMid_Lock);
- 	if (midQ->resp_buf) {
-@@ -748,11 +714,9 @@
- 		}
- 		spin_unlock(&GlobalMid_Lock);
- 		DeleteMidQEntry(midQ);
--		/* If not lock req, update # of requests on wire to server */
--		if(long_op < 3) {
--			atomic_dec(&ses->server->inFlight); 
--			wake_up(&ses->server->request_q);
--		}
-+		/* Update # of requests on wire to server */
-+		atomic_dec(&ses->server->inFlight); 
-+		wake_up(&ses->server->request_q);
- 		return rc;
- 	}
-   
-@@ -799,23 +763,253 @@
- 			cERROR(1,("Bad MID state?"));
- 		}
- 	}
--cifs_no_response_exit:
-+
-+out:
-+
- 	DeleteMidQEntry(midQ);
-+	atomic_dec(&ses->server->inFlight); 
-+	wake_up(&ses->server->request_q);
- 
--	if(long_op < 3) {
--		atomic_dec(&ses->server->inFlight); 
--		wake_up(&ses->server->request_q);
--	}
-+	return rc;
-+}
-+
-+/* Send an NT_CANCEL SMB to cause the POSIX blocking lock to return. */
- 
-+static int
-+send_nt_cancel(struct cifsTconInfo *tcon, struct smb_hdr *in_buf,
-+		struct mid_q_entry *midQ)
-+{
-+	int rc = 0;
-+	struct cifsSesInfo *ses = tcon->ses;
-+	__u16 mid = in_buf->Mid;
-+
-+	header_assemble(in_buf, SMB_COM_NT_CANCEL, tcon, 0);
-+	in_buf->Mid = mid;
-+	down(&ses->server->tcpSem); 
-+	rc = cifs_sign_smb(in_buf, ses->server, &midQ->sequence_number);
-+	if (rc) {
-+		up(&ses->server->tcpSem);
-+		return rc;
-+	}
-+	rc = smb_send(ses->server->ssocket, in_buf, in_buf->smb_buf_length,
-+	      (struct sockaddr *) &(ses->server->addr.sockAddr));
-+	up(&ses->server->tcpSem);
- 	return rc;
-+}
-+
-+/* We send a LOCKINGX_CANCEL_LOCK to cause the Windows
-+   blocking lock to return. */
-+
-+static int
-+send_lock_cancel(const unsigned int xid, struct cifsTconInfo *tcon,
-+			struct smb_hdr *in_buf,
-+			struct smb_hdr *out_buf)
-+{
-+	int bytes_returned;
-+	struct cifsSesInfo *ses = tcon->ses;
-+	LOCK_REQ *pSMB = (LOCK_REQ *)in_buf;
-+
-+	/* We just modify the current in_buf to change
-+	   the type of lock from LOCKING_ANDX_SHARED_LOCK
-+	   or LOCKING_ANDX_EXCLUSIVE_LOCK to
-+	   LOCKING_ANDX_CANCEL_LOCK. */
-+
-+	pSMB->LockType = LOCKING_ANDX_CANCEL_LOCK|LOCKING_ANDX_LARGE_FILES;
-+	pSMB->Timeout = 0;
-+	pSMB->hdr.Mid = GetNextMid(ses->server);
-+
-+	return SendReceive(xid, ses, in_buf, out_buf,
-+			&bytes_returned, 0);
-+}
- 
--out_unlock:
-+int
-+SendReceiveBlockingLock(const unsigned int xid, struct cifsTconInfo *tcon,
-+	    struct smb_hdr *in_buf, struct smb_hdr *out_buf,
-+	    int *pbytes_returned)
-+{
-+	int rc = 0;
-+	int rstart = 0;
-+	unsigned int receive_len;
-+	struct mid_q_entry *midQ;
-+	struct cifsSesInfo *ses;
-+
-+	if (tcon == NULL || tcon->ses == NULL) {
-+		cERROR(1,("Null smb session"));
-+		return -EIO;
-+	}
-+	ses = tcon->ses;
-+
-+	if(ses->server == NULL) {
-+		cERROR(1,("Null tcp session"));
-+		return -EIO;
-+	}
-+
-+	if(ses->server->tcpStatus == CifsExiting)
-+		return -ENOENT;
-+
-+	/* Ensure that we do not send more than 50 overlapping requests 
-+	   to the same server. We may make this configurable later or
-+	   use ses->maxReq */
-+
-+	rc = wait_for_free_request(ses, 3);
-+	if (rc)
-+		return rc;
-+
-+	/* make sure that we sign in the same order that we send on this socket 
-+	   and avoid races inside tcp sendmsg code that could cause corruption
-+	   of smb data */
-+
-+	down(&ses->server->tcpSem); 
-+
-+	rc = allocate_mid(ses, in_buf, &midQ);
-+	if (rc) {
-+		up(&ses->server->tcpSem);
-+		return rc;
-+	}
-+
-+	if (in_buf->smb_buf_length > CIFSMaxBufSize + MAX_CIFS_HDR_SIZE - 4) {
-+		up(&ses->server->tcpSem);
-+		cERROR(1, ("Illegal length, greater than maximum frame, %d",
-+			in_buf->smb_buf_length));
-+		DeleteMidQEntry(midQ);
-+		return -EIO;
-+	}
-+
-+	rc = cifs_sign_smb(in_buf, ses->server, &midQ->sequence_number);
-+
-+	midQ->midState = MID_REQUEST_SUBMITTED;
-+#ifdef CONFIG_CIFS_STATS2
-+	atomic_inc(&ses->server->inSend);
-+#endif
-+	rc = smb_send(ses->server->ssocket, in_buf, in_buf->smb_buf_length,
-+		      (struct sockaddr *) &(ses->server->addr.sockAddr));
-+#ifdef CONFIG_CIFS_STATS2
-+	atomic_dec(&ses->server->inSend);
-+	midQ->when_sent = jiffies;
-+#endif
- 	up(&ses->server->tcpSem);
--	/* If not lock req, update # of requests on wire to server */
--	if(long_op < 3) {
--		atomic_dec(&ses->server->inFlight); 
--		wake_up(&ses->server->request_q);
-+
-+	if(rc < 0) {
-+		DeleteMidQEntry(midQ);
-+		return rc;
-+	}
-+
-+	/* Wait for a reply - allow signals to interrupt. */
-+	rc = wait_event_interruptible(ses->server->response_q,
-+		(!(midQ->midState == MID_REQUEST_SUBMITTED)) || 
-+		((ses->server->tcpStatus != CifsGood) &&
-+		 (ses->server->tcpStatus != CifsNew)));
-+
-+	/* Were we interrupted by a signal ? */
-+	if ((rc == -ERESTARTSYS) &&
-+		(midQ->midState == MID_REQUEST_SUBMITTED) &&
-+		((ses->server->tcpStatus == CifsGood) ||
-+		 (ses->server->tcpStatus == CifsNew))) {
-+
-+		if (in_buf->Command == SMB_COM_TRANSACTION2) {
-+			/* POSIX lock. We send a NT_CANCEL SMB to cause the
-+			   blocking lock to return. */
-+
-+			rc = send_nt_cancel(tcon, in_buf, midQ);
-+			if (rc) {
-+				DeleteMidQEntry(midQ);
-+				return rc;
-+			}
-+		} else {
-+			/* Windows lock. We send a LOCKINGX_CANCEL_LOCK
-+			   to cause the blocking lock to return. */
-+
-+			rc = send_lock_cancel(xid, tcon, in_buf, out_buf);
-+
-+			/* If we get -ENOLCK back the lock may have
-+			   already been removed. Don't exit in this case. */
-+			if (rc && rc != -ENOLCK) {
-+				DeleteMidQEntry(midQ);
-+				return rc;
-+			}
-+		}
-+
-+		/* Wait 5 seconds for the response. */
-+		if (wait_for_response(ses, midQ, 5 * HZ, 5 * HZ)==0) {
-+			/* We got the response - restart system call. */
-+			rstart = 1;
-+		}
-+	}
-+
-+	spin_lock(&GlobalMid_Lock);
-+	if (midQ->resp_buf) {
-+		spin_unlock(&GlobalMid_Lock);
-+		receive_len = midQ->resp_buf->smb_buf_length;
-+	} else {
-+		cERROR(1,("No response for cmd %d mid %d",
-+			  midQ->command, midQ->mid));
-+		if(midQ->midState == MID_REQUEST_SUBMITTED) {
-+			if(ses->server->tcpStatus == CifsExiting)
-+				rc = -EHOSTDOWN;
-+			else {
-+				ses->server->tcpStatus = CifsNeedReconnect;
-+				midQ->midState = MID_RETRY_NEEDED;
-+			}
-+		}
-+
-+		if (rc != -EHOSTDOWN) {
-+			if(midQ->midState == MID_RETRY_NEEDED) {
-+				rc = -EAGAIN;
-+				cFYI(1,("marking request for retry"));
-+			} else {
-+				rc = -EIO;
-+			}
-+		}
-+		spin_unlock(&GlobalMid_Lock);
-+		DeleteMidQEntry(midQ);
-+		return rc;
- 	}
-+  
-+	if (receive_len > CIFSMaxBufSize + MAX_CIFS_HDR_SIZE) {
-+		cERROR(1, ("Frame too large received.  Length: %d  Xid: %d",
-+			receive_len, xid));
-+		rc = -EIO;
-+	} else {		/* rcvd frame is ok */
-+
-+		if (midQ->resp_buf && out_buf
-+		    && (midQ->midState == MID_RESPONSE_RECEIVED)) {
-+			out_buf->smb_buf_length = receive_len;
-+			memcpy((char *)out_buf + 4,
-+			       (char *)midQ->resp_buf + 4,
-+			       receive_len);
-+
-+			dump_smb(out_buf, 92);
-+			/* convert the length into a more usable form */
-+			if((receive_len > 24) &&
-+			   (ses->server->secMode & (SECMODE_SIGN_REQUIRED |
-+					SECMODE_SIGN_ENABLED))) {
-+				rc = cifs_verify_signature(out_buf,
-+						ses->server->mac_signing_key,
-+						midQ->sequence_number+1);
-+				if(rc) {
-+					cERROR(1,("Unexpected SMB signature"));
-+					/* BB FIXME add code to kill session */
-+				}
-+			}
-+
-+			*pbytes_returned = out_buf->smb_buf_length;
-+
-+			/* BB special case reconnect tid and uid here? */
-+			rc = map_smb_to_linux_error(out_buf);
- 
-+			/* convert ByteCount if necessary */
-+			if (receive_len >=
-+			    sizeof (struct smb_hdr) -
-+			    4 /* do not count RFC1001 header */  +
-+			    (2 * out_buf->WordCount) + 2 /* bcc */ )
-+				BCC(out_buf) = le16_to_cpu(BCC_LE(out_buf));
-+		} else {
-+			rc = -EIO;
-+			cERROR(1,("Bad MID state?"));
-+		}
-+	}
-+	DeleteMidQEntry(midQ);
-+	if (rstart && rc == -EACCES)
-+		return -ERESTARTSYS;
- 	return rc;
- }
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/fs/cifs/xattr.c linux-2.6.18-rc5-xen/fs/cifs/xattr.c
---- linux-2.6.18-rc5/fs/cifs/xattr.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/fs/cifs/xattr.c	2006-09-01 00:09:11.000000000 +0200
-@@ -330,11 +330,15 @@
- 	sb = direntry->d_inode->i_sb;
- 	if(sb == NULL)
- 		return -EIO;
--	xid = GetXid();
- 
- 	cifs_sb = CIFS_SB(sb);
- 	pTcon = cifs_sb->tcon;
- 
-+	if(cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_XATTR)
-+		return -EOPNOTSUPP;
-+
-+	xid = GetXid();
-+
- 	full_path = build_path_from_dentry(direntry);
- 	if(full_path == NULL) {
- 		FreeXid(xid);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/fs/Kconfig linux-2.6.18-rc5-xen/fs/Kconfig
---- linux-2.6.18-rc5/fs/Kconfig	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/fs/Kconfig	2006-09-01 00:09:11.000000000 +0200
-@@ -865,6 +865,7 @@
- config HUGETLBFS
- 	bool "HugeTLB file system support"
- 	depends X86 || IA64 || PPC64 || SPARC64 || SUPERH || BROKEN
-+	depends !XEN
- 	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-rc5/include/asm-arm/arch-pxa/ssp.h linux-2.6.18-rc5-xen/include/asm-arm/arch-pxa/ssp.h
---- linux-2.6.18-rc5/include/asm-arm/arch-pxa/ssp.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/asm-arm/arch-pxa/ssp.h	2006-09-01 00:09:11.000000000 +0200
-@@ -40,8 +40,8 @@
- };
- 
- int ssp_write_word(struct ssp_dev *dev, u32 data);
--int ssp_read_word(struct ssp_dev *dev);
--void ssp_flush(struct ssp_dev *dev);
-+int ssp_read_word(struct ssp_dev *dev, u32 *data);
-+int ssp_flush(struct ssp_dev *dev);
- void ssp_enable(struct ssp_dev *dev);
- void ssp_disable(struct ssp_dev *dev);
- void ssp_save_state(struct ssp_dev *dev, struct ssp_state *ssp);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-arm/hardware/ssp.h linux-2.6.18-rc5-xen/include/asm-arm/hardware/ssp.h
---- linux-2.6.18-rc5/include/asm-arm/hardware/ssp.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/asm-arm/hardware/ssp.h	2006-09-01 00:09:11.000000000 +0200
-@@ -16,8 +16,8 @@
- };
- 
- int ssp_write_word(u16 data);
--int ssp_read_word(void);
--void ssp_flush(void);
-+int ssp_read_word(u16 *data);
-+int ssp_flush(void);
- void ssp_enable(void);
- void ssp_disable(void);
- void ssp_save_state(struct ssp_state *ssp);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-arm/io.h linux-2.6.18-rc5-xen/include/asm-arm/io.h
---- linux-2.6.18-rc5/include/asm-arm/io.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/asm-arm/io.h	2006-09-01 00:09:11.000000000 +0200
-@@ -291,5 +291,12 @@
-  */
- #define xlate_dev_kmem_ptr(p)	p
- 
-+/*
-+ * Register ISA memory and port locations for glibc iopl/inb/outb
-+ * emulation.
-+ */
-+extern void register_isa_ports(unsigned int mmio, unsigned int io,
-+			       unsigned int io_shift);
-+
- #endif	/* __KERNEL__ */
- #endif	/* __ASM_ARM_IO_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-generic/vmlinux.lds.h linux-2.6.18-rc5-xen/include/asm-generic/vmlinux.lds.h
---- linux-2.6.18-rc5/include/asm-generic/vmlinux.lds.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/asm-generic/vmlinux.lds.h	2006-09-01 00:09:11.000000000 +0200
-@@ -194,3 +194,6 @@
- 		.stab.index 0 : { *(.stab.index) }			\
- 		.stab.indexstr 0 : { *(.stab.indexstr) }		\
- 		.comment 0 : { *(.comment) }
-+
-+#define NOTES								\
-+		.notes : { *(.note.*) } :note
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/apic.h linux-2.6.18-rc5-xen/include/asm-i386/apic.h
---- linux-2.6.18-rc5/include/asm-i386/apic.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/asm-i386/apic.h	2006-07-20 15:57:26.000000000 +0200
-@@ -119,10 +119,12 @@
- 
- extern int disable_timer_pin_1;
- 
-+#ifndef CONFIG_XEN
- void smp_send_timer_broadcast_ipi(struct pt_regs *regs);
- void switch_APIC_timer_to_ipi(void *cpumask);
- void switch_ipi_to_APIC_timer(void *cpumask);
- #define ARCH_APICTIMER_STOPS_ON_C3	1
-+#endif
- 
- extern int timer_over_8254;
- 
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/fixmap.h linux-2.6.18-rc5-xen/include/asm-i386/fixmap.h
---- linux-2.6.18-rc5/include/asm-i386/fixmap.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/asm-i386/fixmap.h	2006-07-31 23:43:29.000000000 +0200
-@@ -19,7 +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;
- 
- #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-rc5/include/asm-i386/mach-default/mach_traps.h linux-2.6.18-rc5-xen/include/asm-i386/mach-default/mach_traps.h
---- linux-2.6.18-rc5/include/asm-i386/mach-default/mach_traps.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-default/mach_traps.h	2006-07-20 15:57:26.000000000 +0200
-@@ -15,6 +15,18 @@
- 	outb(reason, 0x61);
- }
- 
-+static inline void clear_io_check_error(unsigned char reason)
-+{
-+	unsigned long i;
-+
-+	reason = (reason & 0xf) | 8;
-+	outb(reason, 0x61);
-+	i = 2000;
-+	while (--i) udelay(1000);
-+	reason &= ~8;
-+	outb(reason, 0x61);
-+}
-+
- static inline unsigned char get_nmi_reason(void)
- {
- 	return inb(0x61);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/agp.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/agp.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/agp.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/agp.h	2006-07-20 15:57:27.000000000 +0200
-@@ -0,0 +1,37 @@
-+#ifndef AGP_H
-+#define AGP_H 1
-+
-+#include <asm/pgtable.h>
-+#include <asm/cacheflush.h>
-+#include <asm/system.h>
-+
-+/* 
-+ * Functions to keep the agpgart mappings coherent with the MMU.
-+ * The GART gives the CPU a physical alias of pages in memory. The alias region is
-+ * mapped uncacheable. Make sure there are no conflicting mappings
-+ * with different cachability attributes for the same page. This avoids
-+ * data corruption on some CPUs.
-+ */
-+
-+int map_page_into_agp(struct page *page);
-+int unmap_page_from_agp(struct page *page);
-+#define flush_agp_mappings() global_flush_tlb()
-+
-+/* Could use CLFLUSH here if the cpu supports it. But then it would
-+   need to be called for each cacheline of the whole page so it may not be 
-+   worth it. Would need a page for it. */
-+#define flush_agp_cache() wbinvd()
-+
-+/* Convert a physical address to an address suitable for the GART. */
-+#define phys_to_gart(x) phys_to_machine(x)
-+#define gart_to_phys(x) machine_to_phys(x)
-+
-+/* GATT allocation. Returns/accepts GATT kernel virtual address. */
-+#define alloc_gatt_pages(order)	({                                          \
-+	char *_t; dma_addr_t _d;                                            \
-+	_t = dma_alloc_coherent(NULL,PAGE_SIZE<<(order),&_d,GFP_KERNEL);    \
-+	_t; })
-+#define free_gatt_pages(table, order)	\
-+	dma_free_coherent(NULL,PAGE_SIZE<<(order),(table),virt_to_bus(table))
-+
-+#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/desc.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/desc.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/desc.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/desc.h	2006-07-20 15:57:27.000000000 +0200
-@@ -0,0 +1,164 @@
-+#ifndef __ARCH_DESC_H
-+#define __ARCH_DESC_H
-+
-+#include <asm/ldt.h>
-+#include <asm/segment.h>
-+
-+#define CPU_16BIT_STACK_SIZE 1024
-+
-+#ifndef __ASSEMBLY__
-+
-+#include <linux/preempt.h>
-+#include <linux/smp.h>
-+
-+#include <asm/mmu.h>
-+
-+extern struct desc_struct cpu_gdt_table[GDT_ENTRIES];
++extern struct desc_struct cpu_gdt_table[GDT_ENTRIES];
 +
 +DECLARE_PER_CPU(unsigned char, cpu_16bit_stack[CPU_16BIT_STACK_SIZE]);
 +
@@ -72845,9 +70705,9 @@
 +#endif /* !__ASSEMBLY__ */
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/dma-mapping.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/dma-mapping.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/dma-mapping.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/dma-mapping.h	2006-08-14 15:07:21.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/dma-mapping.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/dma-mapping.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/dma-mapping.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/dma-mapping.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,151 @@
 +#ifndef _ASM_I386_DMA_MAPPING_H
 +#define _ASM_I386_DMA_MAPPING_H
@@ -73000,9 +70860,9 @@
 +				  dma_addr_t device_addr, size_t size);
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/fixmap.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/fixmap.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/fixmap.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/fixmap.h	2006-07-31 23:43:29.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/fixmap.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/fixmap.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/fixmap.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/fixmap.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,156 @@
 +/*
 + * fixmap.h: compile-time virtual memory allocation
@@ -73160,9 +71020,9 @@
 +
 +#endif /* !__ASSEMBLY__ */
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/floppy.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/floppy.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/floppy.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/floppy.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/floppy.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/floppy.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/floppy.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/floppy.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,147 @@
 +/*
 + * Architecture specific parts of the Floppy driver
@@ -73311,9 +71171,9 @@
 +#define EXTRA_FLOPPY_PARAMS
 +
 +#endif /* __ASM_XEN_I386_FLOPPY_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/highmem.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/highmem.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/highmem.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/highmem.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/highmem.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/highmem.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/highmem.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/highmem.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,80 @@
 +/*
 + * highmem.h: virtual kernel memory mappings for high memory
@@ -73395,9 +71255,9 @@
 +#endif /* __KERNEL__ */
 +
 +#endif /* _ASM_HIGHMEM_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/hw_irq.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/hw_irq.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/hw_irq.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/hw_irq.h	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/hw_irq.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/hw_irq.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/hw_irq.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/hw_irq.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,72 @@
 +#ifndef _ASM_HW_IRQ_H
 +#define _ASM_HW_IRQ_H
@@ -73471,9 +71331,9 @@
 +#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-rc5/include/asm-i386/mach-xen/asm/hypercall.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/hypercall.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/hypercall.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/hypercall.h	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/hypercall.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/hypercall.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/hypercall.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/hypercall.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,389 @@
 +/******************************************************************************
 + * hypercall.h
@@ -73864,9 +71724,9 @@
 +
 +
 +#endif /* __HYPERCALL_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/hypervisor.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/hypervisor.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/hypervisor.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/hypervisor.h	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/hypervisor.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/hypervisor.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/hypervisor.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/hypervisor.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,234 @@
 +/******************************************************************************
 + * hypervisor.h
@@ -74102,9 +71962,9 @@
 +}
 +
 +#endif /* __HYPERVISOR_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/io.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/io.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/io.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/io.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/io.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/io.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/io.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/io.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,389 @@
 +#ifndef _ASM_IO_H
 +#define _ASM_IO_H
@@ -74495,9 +72355,9 @@
 +#define ARCH_HAS_DEV_MEM
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/irqflags.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/irqflags.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/irqflags.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/irqflags.h	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/irqflags.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/irqflags.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/irqflags.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/irqflags.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,80 @@
 +/*
 + * include/asm-i386/irqflags.h
@@ -74579,9 +72439,9 @@
 +#endif
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/kmap_types.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/kmap_types.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/kmap_types.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/kmap_types.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/kmap_types.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/kmap_types.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/kmap_types.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/kmap_types.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,31 @@
 +#ifndef _ASM_KMAP_TYPES_H
 +#define _ASM_KMAP_TYPES_H
@@ -74614,9 +72474,9 @@
 +#undef D
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/maddr.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/maddr.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/maddr.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/maddr.h	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/maddr.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/maddr.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/maddr.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/maddr.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,160 @@
 +#ifndef _I386_MADDR_H
 +#define _I386_MADDR_H
@@ -74778,9 +72638,9 @@
 +#define __pte_ma(x)	((pte_t) { (x) } )
 +
 +#endif /* _I386_MADDR_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/mmu_context.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/mmu_context.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/mmu_context.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/mmu_context.h	2006-08-14 15:07:21.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/mmu_context.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/mmu_context.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/mmu_context.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/mmu_context.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,108 @@
 +#ifndef __I386_SCHED_H
 +#define __I386_SCHED_H
@@ -74890,9 +72750,9 @@
 +}
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/mmu.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/mmu.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/mmu.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/mmu.h	2006-08-14 15:07:21.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/mmu.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/mmu.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/mmu.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/mmu.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,29 @@
 +#ifndef __i386_MMU_H
 +#define __i386_MMU_H
@@ -74923,9 +72783,9 @@
 +#define arch_dup_mmap(mm, oldmm) ((void)(oldmm), _arch_dup_mmap(mm))
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/page.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/page.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/page.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/page.h	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/page.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/page.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/page.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/page.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,220 @@
 +#ifndef _I386_PAGE_H
 +#define _I386_PAGE_H
@@ -75147,9 +73007,9 @@
 +#endif /* __KERNEL__ */
 +
 +#endif /* _I386_PAGE_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/param.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/param.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/param.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/param.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/param.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/param.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/param.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/param.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,23 @@
 +#ifndef _ASMi386_PARAM_H
 +#define _ASMi386_PARAM_H
@@ -75174,9 +73034,9 @@
 +#define COMMAND_LINE_SIZE 256
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/pci.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/pci.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/pci.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/pci.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/pci.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/pci.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/pci.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/pci.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,153 @@
 +#ifndef __i386_PCI_H
 +#define __i386_PCI_H
@@ -75331,9 +73191,9 @@
 +#define pcibios_scan_all_fns(a, b)	1
 +
 +#endif /* __i386_PCI_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/pgalloc.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/pgalloc.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/pgalloc.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/pgalloc.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/pgalloc.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/pgalloc.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/pgalloc.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/pgalloc.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,63 @@
 +#ifndef _I386_PGALLOC_H
 +#define _I386_PGALLOC_H
@@ -75398,9 +73258,9 @@
 +#define check_pgt_cache()	do { } while (0)
 +
 +#endif /* _I386_PGALLOC_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/pgtable-2level-defs.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/pgtable-2level-defs.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/pgtable-2level-defs.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/pgtable-2level-defs.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/pgtable-2level-defs.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/pgtable-2level-defs.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/pgtable-2level-defs.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/pgtable-2level-defs.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,21 @@
 +#ifndef _I386_PGTABLE_2LEVEL_DEFS_H
 +#define _I386_PGTABLE_2LEVEL_DEFS_H
@@ -75423,9 +73283,9 @@
 +#define PTRS_PER_PTE	1024
 +
 +#endif /* _I386_PGTABLE_2LEVEL_DEFS_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/pgtable-2level.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/pgtable-2level.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/pgtable-2level.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/pgtable-2level.h	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/pgtable-2level.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/pgtable-2level.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/pgtable-2level.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/pgtable-2level.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,87 @@
 +#ifndef _I386_PGTABLE_2LEVEL_H
 +#define _I386_PGTABLE_2LEVEL_H
@@ -75514,9 +73374,9 @@
 +void vmalloc_sync_all(void);
 +
 +#endif /* _I386_PGTABLE_2LEVEL_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/pgtable-3level-defs.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/pgtable-3level-defs.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/pgtable-3level-defs.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/pgtable-3level-defs.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/pgtable-3level-defs.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/pgtable-3level-defs.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/pgtable-3level-defs.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/pgtable-3level-defs.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,25 @@
 +#ifndef _I386_PGTABLE_3LEVEL_DEFS_H
 +#define _I386_PGTABLE_3LEVEL_DEFS_H
@@ -75543,9 +73403,9 @@
 +#define PTRS_PER_PTE	512
 +
 +#endif /* _I386_PGTABLE_3LEVEL_DEFS_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/pgtable-3level.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/pgtable-3level.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/pgtable-3level.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/pgtable-3level.h	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/pgtable-3level.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/pgtable-3level.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/pgtable-3level.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/pgtable-3level.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,185 @@
 +#ifndef _I386_PGTABLE_3LEVEL_H
 +#define _I386_PGTABLE_3LEVEL_H
@@ -75732,9 +73592,9 @@
 +#define vmalloc_sync_all() ((void)0)
 +
 +#endif /* _I386_PGTABLE_3LEVEL_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/pgtable.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/pgtable.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/pgtable.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/pgtable.h	2006-08-14 15:07:21.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/pgtable.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/pgtable.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/pgtable.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/pgtable.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,508 @@
 +#ifndef _I386_PGTABLE_H
 +#define _I386_PGTABLE_H
@@ -76244,9 +74104,9 @@
 +#include <asm-generic/pgtable.h>
 +
 +#endif /* _I386_PGTABLE_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/processor.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/processor.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/processor.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/processor.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/processor.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/processor.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/processor.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/processor.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,741 @@
 +/*
 + * include/asm-i386/processor.h
@@ -76989,9 +74849,9 @@
 +extern int sysenter_setup(void);
 +
 +#endif /* __ASM_I386_PROCESSOR_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/ptrace.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/ptrace.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/ptrace.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/ptrace.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/ptrace.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/ptrace.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/ptrace.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/ptrace.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,90 @@
 +#ifndef _I386_PTRACE_H
 +#define _I386_PTRACE_H
@@ -77083,9 +74943,9 @@
 +#endif /* __KERNEL__ */
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/scatterlist.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/scatterlist.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/scatterlist.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/scatterlist.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/scatterlist.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/scatterlist.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/scatterlist.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/scatterlist.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,22 @@
 +#ifndef _I386_SCATTERLIST_H
 +#define _I386_SCATTERLIST_H
@@ -77109,9 +74969,9 @@
 +#define ISA_DMA_THRESHOLD (0x00ffffff)
 +
 +#endif /* !(_I386_SCATTERLIST_H) */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/segment.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/segment.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/segment.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/segment.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/segment.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/segment.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/segment.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/segment.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,117 @@
 +#ifndef _ASM_SEGMENT_H
 +#define _ASM_SEGMENT_H
@@ -77230,9 +75090,9 @@
 +#define IDT_ENTRIES 256
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/setup.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/setup.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/setup.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/setup.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/setup.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/setup.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/setup.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/setup.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,79 @@
 +/*
 + *	Just a place holder. We don't want to have to test x86 before
@@ -77313,9 +75173,9 @@
 +#endif /* __ASSEMBLY__ */
 +
 +#endif /* _i386_SETUP_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/smp.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/smp.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/smp.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/smp.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/smp.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/smp.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/smp.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/smp.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,103 @@
 +#ifndef __ASM_SMP_H
 +#define __ASM_SMP_H
@@ -77420,10 +75280,10 @@
 +
 +#endif
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/spinlock.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/spinlock.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/spinlock.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/spinlock.h	2006-07-20 15:57:27.000000000 +0200
-@@ -0,0 +1,199 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/spinlock.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/spinlock.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/spinlock.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/spinlock.h	2006-09-04 16:31:16.000000000 +0200
+@@ -0,0 +1,202 @@
 +#ifndef __ASM_SPINLOCK_H
 +#define __ASM_SPINLOCK_H
 +
@@ -77448,7 +75308,7 @@
 +
 +#define __raw_spin_lock_string \
 +	"\n1:\t" \
-+	"lock ; decb %0\n\t" \
++	LOCK_PREFIX " ; decb %0\n\t" \
 +	"jns 3f\n" \
 +	"2:\t" \
 +	"rep;nop\n\t" \
@@ -77457,9 +75317,14 @@
 +	"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 ; decb %0\n\t" \
++	LOCK_PREFIX " ; decb %0\n\t" \
 +	"jns 5f\n" \
 +	"2:\t" \
 +	"testl $0x200, %1\n\t" \
@@ -77478,31 +75343,29 @@
 +	"jmp 4b\n" \
 +	"5:\n\t"
 +
-+#define __raw_spin_lock_string_up \
-+	"\n\tdecb %0"
-+
 +static inline void __raw_spin_lock(raw_spinlock_t *lock)
 +{
-+	alternative_smp(
-+		__raw_spin_lock_string,
-+		__raw_spin_lock_string_up,
-+		"=m" (lock->slock) : : "memory");
++	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)
 +{
-+	alternative_smp(
-+		__raw_spin_lock_string_flags,
-+		__raw_spin_lock_string_up,
-+		"=m" (lock->slock) : "r" (flags) : "memory");
++	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;
 +}
@@ -77518,7 +75381,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)
@@ -77532,7 +75395,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)
@@ -77613,19 +75476,19 @@
 +
 +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-rc5/include/asm-i386/mach-xen/asm/swiotlb.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/swiotlb.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/swiotlb.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/swiotlb.h	2006-08-14 15:07:21.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/swiotlb.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/swiotlb.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/swiotlb.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/swiotlb.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,41 @@
 +#ifndef _ASM_SWIOTLB_H
 +#define _ASM_SWIOTLB_H 1
@@ -77668,9 +75531,9 @@
 +#endif
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/synch_bitops.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/synch_bitops.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/synch_bitops.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/synch_bitops.h	2006-08-14 15:07:21.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/synch_bitops.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/synch_bitops.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/synch_bitops.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/synch_bitops.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,141 @@
 +#ifndef __XEN_SYNCH_BITOPS_H__
 +#define __XEN_SYNCH_BITOPS_H__
@@ -77813,9 +75676,9 @@
 +#define synch_cmpxchg_subword synch_cmpxchg
 +
 +#endif /* __XEN_SYNCH_BITOPS_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/system.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/system.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/system.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/system.h	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/system.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/system.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/system.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/system.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,489 @@
 +#ifndef __ASM_SYSTEM_H
 +#define __ASM_SYSTEM_H
@@ -78306,9 +76169,9 @@
 +void default_idle(void);
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/timer.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/timer.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/timer.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/timer.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/timer.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/timer.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/timer.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/timer.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,70 @@
 +#ifndef _ASMi386_TIMER_H
 +#define _ASMi386_TIMER_H
@@ -78380,9 +76243,9 @@
 +extern struct init_timer_opts timer_pmtmr_init;
 +#endif
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/tlbflush.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/tlbflush.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/tlbflush.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/tlbflush.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/tlbflush.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/tlbflush.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/tlbflush.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/tlbflush.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,101 @@
 +#ifndef _I386_TLBFLUSH_H
 +#define _I386_TLBFLUSH_H
@@ -78485,9 +76348,9 @@
 +}
 +
 +#endif /* _I386_TLBFLUSH_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/vga.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/vga.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/asm/vga.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/asm/vga.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/vga.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/vga.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/asm/vga.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/asm/vga.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,20 @@
 +/*
 + *	Access to VGA videoram
@@ -78509,9 +76372,9 @@
 +#define vga_writeb(x,y) (*(y) = (x))
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/irq_vectors.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/irq_vectors.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/irq_vectors.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/irq_vectors.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/irq_vectors.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/irq_vectors.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/irq_vectors.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/irq_vectors.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,125 @@
 +/*
 + * This file should contain #defines for all of the interrupt vector
@@ -78638,9 +76501,9 @@
 +#define irq_to_dynirq(_x)	((_x) - DYNIRQ_BASE)
 +
 +#endif /* _ASM_IRQ_VECTORS_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/mach_traps.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/mach_traps.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/mach_traps.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/mach_traps.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/mach_traps.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/mach_traps.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/mach_traps.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/mach_traps.h	2006-09-04 16:31:16.000000000 +0200
 @@ -0,0 +1,33 @@
 +/*
 + *  include/asm-xen/asm-i386/mach-xen/mach_traps.h
@@ -78675,18 +76538,18 @@
 +static inline void reassert_nmi(void) {}
 +
 +#endif /* !_MACH_TRAPS_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/mach-xen/setup_arch.h linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/setup_arch.h
---- linux-2.6.18-rc5/include/asm-i386/mach-xen/setup_arch.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-i386/mach-xen/setup_arch.h	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/mach-xen/setup_arch.h linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/setup_arch.h
+--- linux-2.6.18-rc6/include/asm-i386/mach-xen/setup_arch.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-i386/mach-xen/setup_arch.h	2006-09-04 16:31:16.000000000 +0200
 @@ -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-rc5/include/asm-i386/page.h linux-2.6.18-rc5-xen/include/asm-i386/page.h
---- linux-2.6.18-rc5/include/asm-i386/page.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/asm-i386/page.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/page.h linux-2.6.18-rc6-xen/include/asm-i386/page.h
+--- linux-2.6.18-rc6/include/asm-i386/page.h	2006-09-05 10:53:25.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/asm-i386/page.h	2006-09-04 16:31:16.000000000 +0200
 @@ -122,7 +122,7 @@
  
  #define PAGE_OFFSET		((unsigned long)__PAGE_OFFSET)
@@ -78696,9 +76559,9 @@
  #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-rc5/include/asm-i386/pgtable-2level-defs.h linux-2.6.18-rc5-xen/include/asm-i386/pgtable-2level-defs.h
---- linux-2.6.18-rc5/include/asm-i386/pgtable-2level-defs.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/asm-i386/pgtable-2level-defs.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/pgtable-2level-defs.h linux-2.6.18-rc6-xen/include/asm-i386/pgtable-2level-defs.h
+--- linux-2.6.18-rc6/include/asm-i386/pgtable-2level-defs.h	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/asm-i386/pgtable-2level-defs.h	2006-09-04 16:31:16.000000000 +0200
 @@ -1,6 +1,8 @@
  #ifndef _I386_PGTABLE_2LEVEL_DEFS_H
  #define _I386_PGTABLE_2LEVEL_DEFS_H
@@ -78708,9 +76571,9 @@
  /*
   * traditional i386 two-level paging structure:
   */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-i386/pgtable-3level-defs.h linux-2.6.18-rc5-xen/include/asm-i386/pgtable-3level-defs.h
---- linux-2.6.18-rc5/include/asm-i386/pgtable-3level-defs.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/asm-i386/pgtable-3level-defs.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-i386/pgtable-3level-defs.h linux-2.6.18-rc6-xen/include/asm-i386/pgtable-3level-defs.h
+--- linux-2.6.18-rc6/include/asm-i386/pgtable-3level-defs.h	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/asm-i386/pgtable-3level-defs.h	2006-09-04 16:31:16.000000000 +0200
 @@ -1,6 +1,8 @@
  #ifndef _I386_PGTABLE_3LEVEL_DEFS_H
  #define _I386_PGTABLE_3LEVEL_DEFS_H
@@ -78720,18 +76583,27 @@
  /*
   * PGDIR_SHIFT determines what a top-level page table entry can map
   */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-ia64/agp.h linux-2.6.18-rc5-xen/include/asm-ia64/agp.h
---- linux-2.6.18-rc5/include/asm-ia64/agp.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/asm-ia64/agp.h	2006-08-14 15:07:21.000000000 +0200
-@@ -19,13 +19,44 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-ia64/agp.h linux-2.6.18-rc6-xen/include/asm-ia64/agp.h
+--- linux-2.6.18-rc6/include/asm-ia64/agp.h	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/asm-ia64/agp.h	2006-09-04 16:31:16.000000000 +0200
+@@ -19,13 +19,49 @@
  #define flush_agp_cache()		mb()
  
  /* Convert a physical address to an address suitable for the GART. */
-+#ifdef CONFIG_XEN
++#ifndef CONFIG_XEN
+ #define phys_to_gart(x) (x)
+ #define gart_to_phys(x) (x)
++#else
 +#define phys_to_gart(x) phys_to_machine_for_dma(x)
 +#define gart_to_phys(x) machine_to_phys_for_dma(x)
-+
-+/* GATT allocation. Returns/accepts GATT kernel virtual address. */
++#endif
+ 
+ /* GATT allocation. Returns/accepts GATT kernel virtual address. */
+-#define alloc_gatt_pages(order)		\
+-	((char *)__get_free_pages(GFP_KERNEL, (order)))
+-#define free_gatt_pages(table, order)	\
+-	free_pages((unsigned long)(table), (order))
++#ifdef CONFIG_XEN
 +#include <asm/hypervisor.h>
 +static inline char*
 +alloc_gatt_pages(unsigned int order)
@@ -78757,14 +76629,10 @@
 +}
 +#else	/* CONFIG_XEN */
 +/* Convert a physical address to an address suitable for the GART. */
- #define phys_to_gart(x) (x)
- #define gart_to_phys(x) (x)
- 
- /* GATT allocation. Returns/accepts GATT kernel virtual address. */
--#define alloc_gatt_pages(order)		\
--	((char *)__get_free_pages(GFP_KERNEL, (order)))
--#define free_gatt_pages(table, order)	\
--	free_pages((unsigned long)(table), (order))
++#define phys_to_gart(x) (x)
++#define gart_to_phys(x) (x)
++
++/* GATT allocation. Returns/accepts GATT kernel virtual address. */
 +#define alloc_gatt_pages(order)         \
 +        ((char *)__get_free_pages(GFP_KERNEL, (order)))
 +#define free_gatt_pages(table, order)   \
@@ -78772,9 +76640,9 @@
 +#endif	/* CONFIG_XEN */
  
  #endif /* _ASM_IA64_AGP_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-ia64/dma-mapping.h linux-2.6.18-rc5-xen/include/asm-ia64/dma-mapping.h
---- linux-2.6.18-rc5/include/asm-ia64/dma-mapping.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/asm-ia64/dma-mapping.h	2006-08-14 15:07:21.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-ia64/dma-mapping.h linux-2.6.18-rc6-xen/include/asm-ia64/dma-mapping.h
+--- linux-2.6.18-rc6/include/asm-ia64/dma-mapping.h	2006-09-05 10:53:25.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/asm-ia64/dma-mapping.h	2006-09-04 16:31:16.000000000 +0200
 @@ -7,19 +7,68 @@
   */
  #include <asm/machvec.h>
@@ -78886,15 +76754,15 @@
 +}
 +
  #endif /* _ASM_IA64_DMA_MAPPING_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-ia64/fixmap.h linux-2.6.18-rc5-xen/include/asm-ia64/fixmap.h
---- linux-2.6.18-rc5/include/asm-ia64/fixmap.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-ia64/fixmap.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-ia64/fixmap.h linux-2.6.18-rc6-xen/include/asm-ia64/fixmap.h
+--- linux-2.6.18-rc6/include/asm-ia64/fixmap.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-ia64/fixmap.h	2006-09-04 16:31:16.000000000 +0200
 @@ -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-rc5/include/asm-ia64/gcc_intrin.h linux-2.6.18-rc5-xen/include/asm-ia64/gcc_intrin.h
---- linux-2.6.18-rc5/include/asm-ia64/gcc_intrin.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/asm-ia64/gcc_intrin.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-ia64/gcc_intrin.h linux-2.6.18-rc6-xen/include/asm-ia64/gcc_intrin.h
+--- linux-2.6.18-rc6/include/asm-ia64/gcc_intrin.h	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/asm-ia64/gcc_intrin.h	2006-09-04 16:31:16.000000000 +0200
 @@ -26,7 +26,7 @@
  
  register unsigned long ia64_r13 asm ("r13") __attribute_used__;
@@ -79084,9 +76952,9 @@
 +#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-rc5/include/asm-ia64/hw_irq.h linux-2.6.18-rc5-xen/include/asm-ia64/hw_irq.h
---- linux-2.6.18-rc5/include/asm-ia64/hw_irq.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/asm-ia64/hw_irq.h	2006-07-31 23:43:29.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-ia64/hw_irq.h linux-2.6.18-rc6-xen/include/asm-ia64/hw_irq.h
+--- linux-2.6.18-rc6/include/asm-ia64/hw_irq.h	2006-09-05 10:53:25.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/asm-ia64/hw_irq.h	2006-09-04 16:31:16.000000000 +0200
 @@ -15,7 +15,11 @@
  #include <asm/ptrace.h>
  #include <asm/smp.h>
@@ -79112,10 +76980,10 @@
  	platform_send_ipi(smp_processor_id(), vector, IA64_IPI_DM_INT, 0);
  }
  
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-ia64/hypercall.h linux-2.6.18-rc5-xen/include/asm-ia64/hypercall.h
---- linux-2.6.18-rc5/include/asm-ia64/hypercall.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-ia64/hypercall.h	2006-08-14 15:07:21.000000000 +0200
-@@ -0,0 +1,496 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-ia64/hypercall.h linux-2.6.18-rc6-xen/include/asm-ia64/hypercall.h
+--- linux-2.6.18-rc6/include/asm-ia64/hypercall.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-ia64/hypercall.h	2006-09-05 10:45:47.000000000 +0200
+@@ -0,0 +1,419 @@
 +/******************************************************************************
 + * hypercall.h
 + * 
@@ -79169,7 +77037,7 @@
 +			      "break 0x1000 ;;\n"		\
 +			      "mov %0=r8 ;;\n"			\
 +			      : "=r" (__res)			\
-+			      : "i" (__HYPERVISOR_##name)	\
++			      : "J" (__HYPERVISOR_##name)	\
 +			      : "r2","r8",			\
 +			        "memory" );			\
 +	(type)__res;						\
@@ -79184,8 +77052,8 @@
 +			      "break 0x1000 ;;\n"		\
 +			      "mov %0=r8 ;;\n"			\
 +			      : "=r" (__res)			\
-+			      : "i" (__HYPERVISOR_##name),	\
-+				"r" ((unsigned long)(a1))	\
++			      : "J" (__HYPERVISOR_##name),	\
++				"rI" ((unsigned long)(a1))	\
 +			      : "r14","r2","r8",		\
 +				"memory" );			\
 +	(type)__res;						\
@@ -79201,9 +77069,9 @@
 +			      "break 0x1000 ;;\n"		\
 +			      "mov %0=r8 ;;\n"			\
 +			      : "=r" (__res)			\
-+			      : "i" (__HYPERVISOR_##name),	\
-+				"r" ((unsigned long)(a1)),	\
-+				"r" ((unsigned long)(a2))	\
++			      : "J" (__HYPERVISOR_##name),	\
++				"rI" ((unsigned long)(a1)),	\
++				"rI" ((unsigned long)(a2))	\
 +			      : "r14","r15","r2","r8",		\
 +				"memory" );			\
 +	(type)__res;						\
@@ -79220,10 +77088,10 @@
 +			      "break 0x1000 ;;\n"               \
 +			      "mov %0=r8 ;;\n"                  \
 +			      : "=r" (__res)                    \
-+			      : "i" (__HYPERVISOR_##name),      \
-+				"r" ((unsigned long)(a1)),	\
-+				"r" ((unsigned long)(a2)),	\
-+				"r" ((unsigned long)(a3))	\
++			      : "J" (__HYPERVISOR_##name),      \
++				"rI" ((unsigned long)(a1)),     \
++				"rI" ((unsigned long)(a2)),     \
++				"rI" ((unsigned long)(a3))      \
 +			      : "r14","r15","r16","r2","r8",	\
 +			        "memory" );                     \
 +	(type)__res;                                            \
@@ -79241,11 +77109,11 @@
 +			      "break 0x1000 ;;\n"               \
 +			      "mov %0=r8 ;;\n"                  \
 +			      : "=r" (__res)                    \
-+			      : "i" (__HYPERVISOR_##name),      \
-+				"r" ((unsigned long)(a1)),	\
-+				"r" ((unsigned long)(a2)),	\
-+				"r" ((unsigned long)(a3)),	\
-+				"r" ((unsigned long)(a4))       \
++			      : "J" (__HYPERVISOR_##name),      \
++				"rI" ((unsigned long)(a1)),     \
++				"rI" ((unsigned long)(a2)),     \
++				"rI" ((unsigned long)(a3)),     \
++				"rI" ((unsigned long)(a4))      \
 +			      : "r14","r15","r16","r2","r8",	\
 +			        "r17","memory" );               \
 +	(type)__res;                                            \
@@ -79264,12 +77132,12 @@
 +			      "break 0x1000 ;;\n"               \
 +			      "mov %0=r8 ;;\n"                  \
 +			      : "=r" (__res)                    \
-+			      : "i" (__HYPERVISOR_##name),      \
-+				"r" ((unsigned long)(a1)),	\
-+				"r" ((unsigned long)(a2)),	\
-+				"r" ((unsigned long)(a3)),	\
-+				"r" ((unsigned long)(a4)),	\
-+				"r" ((unsigned long)(a5))       \
++			      : "J" (__HYPERVISOR_##name),      \
++				"rI" ((unsigned long)(a1)),     \
++				"rI" ((unsigned long)(a2)),     \
++				"rI" ((unsigned long)(a3)),     \
++				"rI" ((unsigned long)(a4)),     \
++				"rI" ((unsigned long)(a5))      \
 +			      : "r14","r15","r16","r2","r8",	\
 +			        "r17","r18","memory" );         \
 +	(type)__res;                                            \
@@ -79393,9 +77261,10 @@
 +//XXX __HYPERVISOR_grant_table_op is used for this hypercall constant.
 +static inline int
 +____HYPERVISOR_grant_table_op(
-+    unsigned int cmd, void *uop, unsigned int count)
++    unsigned int cmd, void *uop, unsigned int count,
++    unsigned long pa1, unsigned long pa2)
 +{
-+    return _hypercall3(int, grant_table_op, cmd, uop, count);
++    return _hypercall5(int, grant_table_op, cmd, uop, count, pa1, pa2);
 +}
 +
 +int HYPERVISOR_grant_table_op(unsigned int cmd, void *uop, unsigned int count);
@@ -79409,6 +77278,13 @@
 +
 +extern int HYPERVISOR_suspend(unsigned long srec);
 +
++static inline unsigned long
++HYPERVISOR_hvm_op(
++	int cmd, void *arg)
++{
++	return _hypercall2(unsigned long, hvm_op, cmd, arg);
++}
++
 +static inline int
 +HYPERVISOR_callback_op(
 +	int cmd, void *arg)
@@ -79425,99 +77301,15 @@
 +})
 +
 +#include <linux/err.h>
++#ifdef CONFIG_XEN
 +#include <asm/xen/privop.h>
-+
-+#define _hypercall_imm1(type, name, imm, a1)			\
-+({								\
-+	long __res;						\
-+	__asm__ __volatile__ (";;\n"				\
-+			      "mov r14=%2\n"			\
-+			      "mov r15=%3\n"			\
-+			      "mov r2=%1\n"			\
-+			      "break 0x1000 ;;\n"		\
-+			      "mov %0=r8 ;;\n"			\
-+			      : "=r" (__res)			\
-+			      : "i" (__HYPERVISOR_##name),	\
-+				"i" (imm),			\
-+				"r" ((unsigned long)(a1))	\
-+			      : "r14","r15","r2","r8",		\
-+				"memory" );			\
-+	(type)__res;						\
-+})
-+
-+#define _hypercall_imm2(type, name, imm, a1, a2)		\
-+({								\
-+	long __res;						\
-+	__asm__ __volatile__ (";;\n"				\
-+			      "mov r14=%2\n"			\
-+			      "mov r15=%3\n"			\
-+			      "mov r16=%4\n"			\
-+			      "mov r2=%1\n"			\
-+			      "break 0x1000 ;;\n"		\
-+			      "mov %0=r8 ;;\n"			\
-+			      : "=r" (__res)			\
-+			      : "i" (__HYPERVISOR_##name),	\
-+				"i" (imm),			\
-+				"r" ((unsigned long)(a1)),	\
-+				"r" ((unsigned long)(a2))	\
-+			      : "r14","r15","r16","r2","r8",	\
-+				"memory" );			\
-+	(type)__res;						\
-+})
-+
-+#define _hypercall_imm3(type, name, imm, a1, a2, a3)		\
-+({								\
-+	long __res;						\
-+	__asm__ __volatile__ (";;\n"				\
-+			      "mov r14=%2\n"			\
-+			      "mov r15=%3\n"			\
-+			      "mov r16=%4\n"			\
-+			      "mov r17=%5\n"			\
-+			      "mov r2=%1\n"			\
-+			      "break 0x1000 ;;\n"		\
-+			      "mov %0=r8 ;;\n"			\
-+			      : "=r" (__res)			\
-+			      : "i" (__HYPERVISOR_##name),	\
-+				"i" (imm),			\
-+				"r" ((unsigned long)(a1)),	\
-+				"r" ((unsigned long)(a2)),	\
-+				"r" ((unsigned long)(a3))	\
-+			      : "r14","r15","r16","r17",	\
-+				"r2","r8",			\
-+				"memory" );			\
-+	(type)__res;						\
-+})
-+
-+#define _hypercall_imm4(type, name, imm, a1, a2, a3, a4)	\
-+({								\
-+	long __res;						\
-+	__asm__ __volatile__ (";;\n"				\
-+			      "mov r14=%2\n"			\
-+			      "mov r15=%3\n"			\
-+			      "mov r16=%4\n"			\
-+			      "mov r17=%5\n"			\
-+			      "mov r18=%6\n"			\
-+			      "mov r2=%1\n"			\
-+			      "break 0x1000 ;;\n"		\
-+			      "mov %0=r8 ;;\n"			\
-+			      : "=r" (__res)			\
-+			      : "i" (__HYPERVISOR_##name),	\
-+				"i" (imm),			\
-+				"r" ((unsigned long)(a1)),	\
-+				"r" ((unsigned long)(a2)),	\
-+				"r" ((unsigned long)(a3)),	\
-+				"r" ((unsigned long)(a4))	\
-+			      : "r14","r15","r16","r17","r18",	\
-+				"r2","r8",			\
-+				"memory" );			\
-+	(type)__res;						\
-+})
++#endif /* CONFIG_XEN */
 +
 +static inline unsigned long
 +__HYPERVISOR_ioremap(unsigned long ioaddr, unsigned long size)
 +{
-+	return _hypercall_imm2(unsigned long, ia64_dom0vp_op,
-+			       IA64_DOM0VP_ioremap, ioaddr, size);
++	return _hypercall3(unsigned long, ia64_dom0vp_op,
++	                   IA64_DOM0VP_ioremap, ioaddr, size);
 +}
 +
 +static inline unsigned long
@@ -79539,8 +77331,8 @@
 +static inline unsigned long
 +__HYPERVISOR_phystomach(unsigned long gpfn)
 +{
-+	return _hypercall_imm1(unsigned long, ia64_dom0vp_op,
-+			       IA64_DOM0VP_phystomach, gpfn);
++	return _hypercall2(unsigned long, ia64_dom0vp_op,
++	                   IA64_DOM0VP_phystomach, gpfn);
 +}
 +
 +static inline unsigned long
@@ -79556,8 +77348,8 @@
 +static inline unsigned long
 +__HYPERVISOR_machtophys(unsigned long mfn)
 +{
-+	return _hypercall_imm1(unsigned long, ia64_dom0vp_op,
-+			       IA64_DOM0VP_machtophys, mfn);
++	return _hypercall2(unsigned long, ia64_dom0vp_op,
++	                   IA64_DOM0VP_machtophys, mfn);
 +}
 +
 +static inline unsigned long
@@ -79573,8 +77365,8 @@
 +static inline unsigned long
 +__HYPERVISOR_zap_physmap(unsigned long gpfn, unsigned int extent_order)
 +{
-+	return _hypercall_imm2(unsigned long, ia64_dom0vp_op,
-+			       IA64_DOM0VP_zap_physmap, gpfn, extent_order);
++	return _hypercall3(unsigned long, ia64_dom0vp_op,
++	                   IA64_DOM0VP_zap_physmap, gpfn, extent_order);
 +}
 +
 +static inline unsigned long
@@ -79591,9 +77383,8 @@
 +__HYPERVISOR_add_physmap(unsigned long gpfn, unsigned long mfn,
 +			 unsigned long flags, domid_t domid)
 +{
-+	return _hypercall_imm4(unsigned long, ia64_dom0vp_op,
-+			       IA64_DOM0VP_add_physmap, gpfn, mfn, flags,
-+			       domid);
++	return _hypercall5(unsigned long, ia64_dom0vp_op,
++	                   IA64_DOM0VP_add_physmap, gpfn, mfn, flags, domid);
 +}
 +
 +static inline unsigned long
@@ -79612,10 +77403,10 @@
 +#define HYPERVISOR_update_va_mapping(va, new_val, flags) (0)
 +
 +#endif /* __HYPERCALL_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-ia64/hypervisor.h linux-2.6.18-rc5-xen/include/asm-ia64/hypervisor.h
---- linux-2.6.18-rc5/include/asm-ia64/hypervisor.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-ia64/hypervisor.h	2006-09-01 00:09:11.000000000 +0200
-@@ -0,0 +1,192 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-ia64/hypervisor.h linux-2.6.18-rc6-xen/include/asm-ia64/hypervisor.h
+--- linux-2.6.18-rc6/include/asm-ia64/hypervisor.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-ia64/hypervisor.h	2006-09-04 16:31:16.000000000 +0200
+@@ -0,0 +1,214 @@
 +/******************************************************************************
 + * hypervisor.h
 + * 
@@ -79651,7 +77442,7 @@
 +#ifndef __HYPERVISOR_H__
 +#define __HYPERVISOR_H__
 +
-+#ifndef CONFIG_XEN
++#if !defined(CONFIG_XEN) && !defined(CONFIG_VMX_GUEST)
 +#define is_running_on_xen()			(0)
 +#define HYPERVISOR_ioremap(offset, size)	(offset)
 +#else
@@ -79659,7 +77450,7 @@
 +#define is_running_on_xen()			(running_on_xen)
 +#endif
 +
-+#ifdef CONFIG_XEN
++#if defined(CONFIG_XEN) || defined(CONFIG_VMX_GUEST)
 +#include <linux/types.h>
 +#include <linux/kernel.h>
 +#include <linux/version.h>
@@ -79676,10 +77467,9 @@
 +extern shared_info_t *HYPERVISOR_shared_info;
 +extern start_info_t *xen_start_info;
 +
-+#define is_initial_xendomain() (xen_start_info->flags & SIF_INITDOMAIN)
-+
 +void force_evtchn_callback(void);
 +
++#ifndef CONFIG_VMX_GUEST
 +/* Turn jiffies into Xen system time. XXX Implement me. */
 +#define jiffies_to_st(j)	0
 +
@@ -79764,10 +77554,14 @@
 +#define scrub_pages(_p,_n) ((void)0)
 +#endif
 +#define	pte_mfn(_x)	pte_pfn(_x)
-+#define __pte_ma(_x)	((pte_t) {(_x)})
 +#define phys_to_machine_mapping_valid(_x)	(1)
-+#define pfn_pte_ma(_x,_y)	__pte_ma(0)
 +
++#endif /* !CONFIG_VMX_GUEST */
++
++#define __pte_ma(_x)	((pte_t) {(_x)})        /* unmodified use */
++#define pfn_pte_ma(_x,_y)	__pte_ma(0)     /* unmodified use */
++
++#ifndef CONFIG_VMX_GUEST
 +int __xen_create_contiguous_region(unsigned long vstart, unsigned int order, unsigned int address_bits);
 +static inline int
 +xen_create_contiguous_region(unsigned long vstart,
@@ -79789,6 +77583,8 @@
 +		__xen_destroy_contiguous_region(vstart, order);
 +}
 +
++#endif /* !CONFIG_VMX_GUEST */
++
 +// for netfront.c, netback.c
 +#define MULTI_UVMFLAGS_INDEX 0 //XXX any value
 +
@@ -79801,16 +77597,33 @@
 +	mcl->result = 0;
 +}
 +
++static inline void
++MULTI_grant_table_op(multicall_entry_t *mcl, unsigned int cmd,
++	void *uop, unsigned int count)
++{
++	mcl->op = __HYPERVISOR_grant_table_op;
++	mcl->args[0] = cmd;
++	mcl->args[1] = (unsigned long)uop;
++	mcl->args[2] = count;
++}
++
 +// for debug
 +asmlinkage int xprintk(const char *fmt, ...);
 +#define xprintd(fmt, ...)	xprintk("%s:%d " fmt, __func__, __LINE__, \
 +					##__VA_ARGS__)
-+#endif /* CONFIG_XEN */
++
++#endif /* CONFIG_XEN || CONFIG_VMX_GUEST */
++
++#ifdef CONFIG_XEN_PRIVILEGED_GUEST
++#define is_initial_xendomain() (xen_start_info->flags & SIF_INITDOMAIN)
++#else
++#define is_initial_xendomain() 0
++#endif
 +
 +#endif /* __HYPERVISOR_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-ia64/intel_intrin.h linux-2.6.18-rc5-xen/include/asm-ia64/intel_intrin.h
---- linux-2.6.18-rc5/include/asm-ia64/intel_intrin.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/asm-ia64/intel_intrin.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-ia64/intel_intrin.h linux-2.6.18-rc6-xen/include/asm-ia64/intel_intrin.h
+--- linux-2.6.18-rc6/include/asm-ia64/intel_intrin.h	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/asm-ia64/intel_intrin.h	2006-09-04 16:31:16.000000000 +0200
 @@ -16,8 +16,10 @@
  		 	 * intrinsic
  		 	 */
@@ -79934,9 +77747,9 @@
  #define __builtin_trap()	__break(0);
  
  #endif /* _ASM_IA64_INTEL_INTRIN_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-ia64/io.h linux-2.6.18-rc5-xen/include/asm-ia64/io.h
---- linux-2.6.18-rc5/include/asm-ia64/io.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/asm-ia64/io.h	2006-08-14 15:07:21.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-ia64/io.h linux-2.6.18-rc6-xen/include/asm-ia64/io.h
+--- linux-2.6.18-rc6/include/asm-ia64/io.h	2006-09-05 10:53:25.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/asm-ia64/io.h	2006-09-04 16:31:16.000000000 +0200
 @@ -66,9 +66,11 @@
  #define PIO_RESERVED		__IA64_UNCACHED_OFFSET
  #define HAVE_ARCH_PIO_SIZE
@@ -79991,9 +77804,9 @@
  
  # endif /* KERNEL */
  
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-ia64/iosapic.h linux-2.6.18-rc5-xen/include/asm-ia64/iosapic.h
---- linux-2.6.18-rc5/include/asm-ia64/iosapic.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/asm-ia64/iosapic.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-ia64/iosapic.h linux-2.6.18-rc6-xen/include/asm-ia64/iosapic.h
+--- linux-2.6.18-rc6/include/asm-ia64/iosapic.h	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/asm-ia64/iosapic.h	2006-09-04 16:31:16.000000000 +0200
 @@ -53,6 +53,7 @@
  
  #define NR_IOSAPICS			256
@@ -80010,9 +77823,9 @@
  
  static inline void iosapic_eoi(char __iomem *iosapic, u32 vector)
  {
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-ia64/irq.h linux-2.6.18-rc5-xen/include/asm-ia64/irq.h
---- linux-2.6.18-rc5/include/asm-ia64/irq.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/asm-ia64/irq.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-ia64/irq.h linux-2.6.18-rc6-xen/include/asm-ia64/irq.h
+--- linux-2.6.18-rc6/include/asm-ia64/irq.h	2006-09-05 10:53:25.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/asm-ia64/irq.h	2006-09-04 16:31:16.000000000 +0200
 @@ -11,8 +11,39 @@
   * 02/29/00     D.Mosberger	moved most things into hw_irq.h
   */
@@ -80053,10 +77866,10 @@
  
  static __inline__ int
  irq_canonicalize (int irq)
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-ia64/machvec.h linux-2.6.18-rc5-xen/include/asm-ia64/machvec.h
---- linux-2.6.18-rc5/include/asm-ia64/machvec.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/asm-ia64/machvec.h	2006-08-14 15:07:21.000000000 +0200
-@@ -260,6 +260,21 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-ia64/machvec.h linux-2.6.18-rc6-xen/include/asm-ia64/machvec.h
+--- linux-2.6.18-rc6/include/asm-ia64/machvec.h	2006-09-05 10:53:25.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/asm-ia64/machvec.h	2006-09-05 10:45:47.000000000 +0200
+@@ -260,6 +260,20 @@
  #  error Unknown configuration.  Update asm-ia64/machvec.h.
  # endif /* CONFIG_IA64_GENERIC */
  
@@ -80073,31 +77886,27 @@
 +					dma_sync_single_for_cpu
 +# define platform_dma_sync_single_for_device \
 +					dma_sync_single_for_device
-+
 +#endif /* CONFIG_XEN */
  /*
   * Declare default routines which aren't declared anywhere else:
   */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-ia64/maddr.h linux-2.6.18-rc5-xen/include/asm-ia64/maddr.h
---- linux-2.6.18-rc5/include/asm-ia64/maddr.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-ia64/maddr.h	2006-09-01 00:09:11.000000000 +0200
-@@ -0,0 +1,81 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-ia64/maddr.h linux-2.6.18-rc6-xen/include/asm-ia64/maddr.h
+--- linux-2.6.18-rc6/include/asm-ia64/maddr.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-ia64/maddr.h	2006-09-04 16:31:16.000000000 +0200
+@@ -0,0 +1,88 @@
 +#ifndef _ASM_IA64_MADDR_H
 +#define _ASM_IA64_MADDR_H
 +
-+#ifndef __ASSEMBLY__
-+#ifdef CONFIG_XEN
-+
-+#define INVALID_P2M_ENTRY	(~0UL)
-+
 +#include <linux/kernel.h>
 +#include <asm/hypervisor.h>
-+#include <xen/features.h>	// to compile netback, netfront
-+typedef unsigned long maddr_t;	// to compile netback, netfront
++#include <xen/features.h>
++#include <xen/interface/xen.h>
++
++#ifdef CONFIG_XEN
 +
++#define INVALID_P2M_ENTRY       (~0UL)
 +
 +/* XXX xen page size != page size */
-+
 +static inline unsigned long
 +pfn_to_mfn_for_dma(unsigned long pfn)
 +{
@@ -80137,18 +77946,6 @@
 +	return phys;
 +}
 +
-+#define set_phys_to_machine(pfn, mfn) do { } while (0)
-+#define xen_machphys_update(mfn, pfn) do { } while (0)
-+
-+/* XXX to compile set_phys_to_machine(vaddr, FOREIGN_FRAME(m)) */
-+#define FOREIGN_FRAME(m)        (INVALID_P2M_ENTRY)
-+
-+#define mfn_to_pfn(mfn)			(mfn)
-+#define mfn_to_virt(mfn)		(__va((mfn) << PAGE_SHIFT))
-+#define pfn_to_mfn(pfn)			(pfn)
-+#define virt_to_mfn(virt)		(__pa(virt) >> PAGE_SHIFT)
-+#define virt_to_machine(virt)		__pa(virt) // for tpmfront.c
-+
 +static inline unsigned long
 +mfn_to_local_pfn(unsigned long mfn)
 +{
@@ -80159,13 +77956,35 @@
 +	return pfn;
 +}
 +
-+#endif /* CONFIG_XEN */
-+#endif /* __ASSEMBLY__ */
++#else /* !CONFIG_XEN */
++
++#define pfn_to_mfn_for_dma(pfn) (pfn)
++#define mfn_to_pfn_for_dma(mfn) (mfn)
++#define phys_to_machine_for_dma(phys) (phys)
++#define machine_to_phys_for_dma(machine) (machine)
++#define mfn_to_local_pfn(mfn) (mfn)
++
++#endif /* !CONFIG_XEN */
++
++/* XXX to compile set_phys_to_machine(vaddr, FOREIGN_FRAME(m)) */
++#define FOREIGN_FRAME(m)        (INVALID_P2M_ENTRY)
++
++#define mfn_to_pfn(mfn) (mfn)
++#define pfn_to_mfn(pfn) (pfn)
++
++#define mfn_to_virt(mfn) (__va((mfn) << PAGE_SHIFT))
++#define virt_to_mfn(virt) (__pa(virt) >> PAGE_SHIFT)
++#define virt_to_machine(virt) __pa(virt) // for tpmfront.c
++
++#define set_phys_to_machine(pfn, mfn) do { } while (0)
++#define xen_machphys_update(mfn, pfn) do { } while (0)
++
++typedef unsigned long maddr_t;	// to compile netback, netfront
 +
 +#endif /* _ASM_IA64_MADDR_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-ia64/meminit.h linux-2.6.18-rc5-xen/include/asm-ia64/meminit.h
---- linux-2.6.18-rc5/include/asm-ia64/meminit.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/asm-ia64/meminit.h	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-ia64/meminit.h linux-2.6.18-rc6-xen/include/asm-ia64/meminit.h
+--- linux-2.6.18-rc6/include/asm-ia64/meminit.h	2006-09-05 10:53:25.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/asm-ia64/meminit.h	2006-09-04 16:31:16.000000000 +0200
 @@ -16,10 +16,15 @@
   * 	- command line string
   * 	- kernel code & data
@@ -80182,18 +78001,20 @@
  
  struct rsvd_region {
  	unsigned long start;	/* virtual address of beginning of element */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-ia64/page.h linux-2.6.18-rc5-xen/include/asm-ia64/page.h
---- linux-2.6.18-rc5/include/asm-ia64/page.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/asm-ia64/page.h	2006-09-01 00:09:11.000000000 +0200
-@@ -126,7 +126,6 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-ia64/page.h linux-2.6.18-rc6-xen/include/asm-ia64/page.h
+--- linux-2.6.18-rc6/include/asm-ia64/page.h	2006-09-05 10:53:25.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/asm-ia64/page.h	2006-09-04 16:31:16.000000000 +0200
+@@ -126,7 +126,9 @@
  # define pfn_valid(pfn)		(((pfn) >= min_low_pfn) && ((pfn) < max_low_pfn) && ia64_pfn_valid(pfn))
  #endif
  
--#define page_to_phys(page)	(page_to_pfn(page) << PAGE_SHIFT)
++#ifndef CONFIG_XEN
+ #define page_to_phys(page)	(page_to_pfn(page) << PAGE_SHIFT)
++#endif
  #define virt_to_page(kaddr)	pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
  #define pfn_to_kaddr(pfn)	__va((pfn) << PAGE_SHIFT)
  
-@@ -228,4 +227,53 @@
+@@ -228,4 +230,53 @@
  					 (((current->personality & READ_IMPLIES_EXEC) != 0)	\
  					  ? VM_EXEC : 0))
  
@@ -80247,9 +78068,9 @@
 +#endif /* __ASSEMBLY__ */
 +
  #endif /* _ASM_IA64_PAGE_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-ia64/pal.h linux-2.6.18-rc5-xen/include/asm-ia64/pal.h
---- linux-2.6.18-rc5/include/asm-ia64/pal.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/asm-ia64/pal.h	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-ia64/pal.h linux-2.6.18-rc6-xen/include/asm-ia64/pal.h
+--- linux-2.6.18-rc6/include/asm-ia64/pal.h	2006-09-05 10:53:25.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/asm-ia64/pal.h	2006-09-04 16:31:16.000000000 +0200
 @@ -82,6 +82,7 @@
  #ifndef __ASSEMBLY__
  
@@ -80258,21 +78079,24 @@
  #include <asm/fpu.h>
  
  /*
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-ia64/pgalloc.h linux-2.6.18-rc5-xen/include/asm-ia64/pgalloc.h
---- linux-2.6.18-rc5/include/asm-ia64/pgalloc.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/asm-ia64/pgalloc.h	2006-07-20 15:57:27.000000000 +0200
-@@ -125,7 +125,7 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-ia64/pgalloc.h linux-2.6.18-rc6-xen/include/asm-ia64/pgalloc.h
+--- linux-2.6.18-rc6/include/asm-ia64/pgalloc.h	2006-09-05 10:53:25.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/asm-ia64/pgalloc.h	2006-09-04 16:31:16.000000000 +0200
+@@ -125,7 +125,11 @@
  static inline void
  pmd_populate(struct mm_struct *mm, pmd_t * pmd_entry, struct page *pte)
  {
--	pmd_val(*pmd_entry) = page_to_phys(pte);
++#ifndef CONFIG_XEN
+ 	pmd_val(*pmd_entry) = page_to_phys(pte);
++#else
 +	pmd_val(*pmd_entry) = page_to_pseudophys(pte);
++#endif
  }
  
  static inline void
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-ia64/privop.h linux-2.6.18-rc5-xen/include/asm-ia64/privop.h
---- linux-2.6.18-rc5/include/asm-ia64/privop.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-ia64/privop.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-ia64/privop.h linux-2.6.18-rc6-xen/include/asm-ia64/privop.h
+--- linux-2.6.18-rc6/include/asm-ia64/privop.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-ia64/privop.h	2006-09-04 16:31:17.000000000 +0200
 @@ -0,0 +1,59 @@
 +#ifndef _ASM_IA64_PRIVOP_H
 +#define _ASM_IA64_PRIVOP_H
@@ -80333,9 +78157,9 @@
 +#endif /* !__ASSEMBLY */
 +
 +#endif /* _ASM_IA64_PRIVOP_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-ia64/processor.h linux-2.6.18-rc5-xen/include/asm-ia64/processor.h
---- linux-2.6.18-rc5/include/asm-ia64/processor.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/asm-ia64/processor.h	2006-07-20 15:57:27.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-ia64/processor.h linux-2.6.18-rc6-xen/include/asm-ia64/processor.h
+--- linux-2.6.18-rc6/include/asm-ia64/processor.h	2006-09-05 10:53:25.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/asm-ia64/processor.h	2006-09-04 16:31:17.000000000 +0200
 @@ -18,6 +18,7 @@
  #include <asm/kregs.h>
  #include <asm/ptrace.h>
@@ -80344,9 +78168,9 @@
  
  #define IA64_NUM_DBG_REGS	8
  /*
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-ia64/synch_bitops.h linux-2.6.18-rc5-xen/include/asm-ia64/synch_bitops.h
---- linux-2.6.18-rc5/include/asm-ia64/synch_bitops.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-ia64/synch_bitops.h	2006-08-14 15:07:21.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-ia64/synch_bitops.h linux-2.6.18-rc6-xen/include/asm-ia64/synch_bitops.h
+--- linux-2.6.18-rc6/include/asm-ia64/synch_bitops.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-ia64/synch_bitops.h	2006-09-04 16:31:17.000000000 +0200
 @@ -0,0 +1,61 @@
 +#ifndef __XEN_SYNCH_BITOPS_H__
 +#define __XEN_SYNCH_BITOPS_H__
@@ -80409,9 +78233,9 @@
 +#define synch_cmpxchg_subword synch_cmpxchg
 +
 +#endif /* __XEN_SYNCH_BITOPS_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-ia64/system.h linux-2.6.18-rc5-xen/include/asm-ia64/system.h
---- linux-2.6.18-rc5/include/asm-ia64/system.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/asm-ia64/system.h	2006-09-01 00:09:11.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-ia64/system.h linux-2.6.18-rc6-xen/include/asm-ia64/system.h
+--- linux-2.6.18-rc6/include/asm-ia64/system.h	2006-09-05 10:53:25.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/asm-ia64/system.h	2006-09-04 16:31:17.000000000 +0200
 @@ -123,7 +123,7 @@
  #define __local_irq_save(x)			\
  do {						\
@@ -80430,9 +78254,9 @@
  
  #define irqs_disabled()				\
  ({						\
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-ia64/xen/privop.h linux-2.6.18-rc5-xen/include/asm-ia64/xen/privop.h
---- linux-2.6.18-rc5/include/asm-ia64/xen/privop.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-ia64/xen/privop.h	2006-08-06 23:45:53.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-ia64/xen/privop.h linux-2.6.18-rc6-xen/include/asm-ia64/xen/privop.h
+--- linux-2.6.18-rc6/include/asm-ia64/xen/privop.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-ia64/xen/privop.h	2006-09-04 16:31:17.000000000 +0200
 @@ -0,0 +1,304 @@
 +#ifndef _ASM_IA64_XEN_PRIVOP_H
 +#define _ASM_IA64_XEN_PRIVOP_H
@@ -80738,9 +78562,9 @@
 +#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-rc5/include/asm-um/page.h linux-2.6.18-rc5-xen/include/asm-um/page.h
---- linux-2.6.18-rc5/include/asm-um/page.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/asm-um/page.h	2006-07-20 15:57:32.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-um/page.h linux-2.6.18-rc6-xen/include/asm-um/page.h
+--- linux-2.6.18-rc6/include/asm-um/page.h	2006-09-05 10:53:26.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/asm-um/page.h	2006-09-04 16:31:18.000000000 +0200
 @@ -114,7 +114,7 @@
  extern struct page *arch_validate(struct page *page, gfp_t mask, int order);
  #define HAVE_ARCH_VALIDATE
@@ -80750,9 +78574,9 @@
  #define HAVE_ARCH_FREE_PAGE
  
  #include <asm-generic/memory_model.h>
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/apic.h linux-2.6.18-rc5-xen/include/asm-x86_64/apic.h
---- linux-2.6.18-rc5/include/asm-x86_64/apic.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/apic.h	2006-07-20 15:57:32.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/apic.h linux-2.6.18-rc6-xen/include/asm-x86_64/apic.h
+--- linux-2.6.18-rc6/include/asm-x86_64/apic.h	2006-09-05 10:53:26.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/apic.h	2006-09-04 16:31:18.000000000 +0200
 @@ -98,11 +98,13 @@
  extern int disable_timer_pin_1;
  
@@ -80767,9 +78591,9 @@
  
  #endif /* CONFIG_X86_LOCAL_APIC */
  
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/arch_hooks.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/arch_hooks.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/arch_hooks.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/arch_hooks.h	2006-07-20 15:57:32.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/arch_hooks.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/arch_hooks.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/arch_hooks.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/arch_hooks.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,27 @@
 +#ifndef _ASM_ARCH_HOOKS_H
 +#define _ASM_ARCH_HOOKS_H
@@ -80798,9 +78622,9 @@
 +extern void mca_nmi_hook(void);
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/bootsetup.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/bootsetup.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/bootsetup.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/bootsetup.h	2006-07-20 15:57:32.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/bootsetup.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/bootsetup.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/bootsetup.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/bootsetup.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,42 @@
 +
 +#ifndef _X86_64_BOOTSETUP_H
@@ -80844,9 +78668,9 @@
 +#define RAMDISK_LOAD_FLAG		0x4000	
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/desc.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/desc.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/desc.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/desc.h	2006-07-20 15:57:32.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/desc.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/desc.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/desc.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/desc.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,263 @@
 +/* Written 2000 by Andi Kleen */ 
 +#ifndef __ARCH_DESC_H
@@ -81111,9 +78935,9 @@
 +#endif /* !__ASSEMBLY__ */
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/dma-mapping.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/dma-mapping.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/dma-mapping.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/dma-mapping.h	2006-09-01 00:09:12.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/dma-mapping.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/dma-mapping.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/dma-mapping.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/dma-mapping.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,208 @@
 +#ifndef _X8664_DMA_MAPPING_H
 +#define _X8664_DMA_MAPPING_H 1
@@ -81323,9 +79147,9 @@
 +#endif /* _X8664_DMA_MAPPING_H */
 +
 +#include <asm-i386/mach-xen/asm/dma-mapping.h>
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/dmi.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/dmi.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/dmi.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/dmi.h	2006-07-20 15:57:32.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/dmi.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/dmi.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/dmi.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/dmi.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,29 @@
 +#ifndef _ASM_DMI_H
 +#define _ASM_DMI_H 1
@@ -81356,9 +79180,9 @@
 +#define dmi_iounmap bt_iounmap
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/e820.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/e820.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/e820.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/e820.h	2006-07-20 15:57:32.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/e820.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/e820.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/e820.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/e820.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,64 @@
 +/*
 + * structures and definitions for the int 15, ax=e820 memory map
@@ -81424,9 +79248,9 @@
 +#endif/*!__ASSEMBLY__*/
 +
 +#endif/*__E820_HEADER*/
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/fixmap.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/fixmap.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/fixmap.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/fixmap.h	2006-07-20 15:57:32.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/fixmap.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/fixmap.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/fixmap.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/fixmap.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,113 @@
 +/*
 + * fixmap.h: compile-time virtual memory allocation
@@ -81541,9 +79365,9 @@
 +}
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/floppy.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/floppy.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/floppy.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/floppy.h	2006-09-01 00:09:12.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/floppy.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/floppy.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/floppy.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/floppy.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,206 @@
 +/*
 + * Architecture specific parts of the Floppy driver
@@ -81751,9 +79575,9 @@
 +#define EXTRA_FLOPPY_PARAMS
 +
 +#endif /* __ASM_XEN_X86_64_FLOPPY_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/hw_irq.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/hw_irq.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/hw_irq.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/hw_irq.h	2006-09-01 00:09:12.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/hw_irq.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/hw_irq.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/hw_irq.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/hw_irq.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,136 @@
 +#ifndef _ASM_HW_IRQ_H
 +#define _ASM_HW_IRQ_H
@@ -81891,9 +79715,9 @@
 +#endif
 +
 +#endif /* _ASM_HW_IRQ_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/hypercall.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/hypercall.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/hypercall.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/hypercall.h	2006-09-01 00:09:12.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/hypercall.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/hypercall.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/hypercall.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/hypercall.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,389 @@
 +/******************************************************************************
 + * hypercall.h
@@ -82284,15 +80108,15 @@
 +}
 +
 +#endif /* __HYPERCALL_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/hypervisor.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/hypervisor.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/hypervisor.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/hypervisor.h	2006-07-20 15:57:32.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/hypervisor.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/hypervisor.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/hypervisor.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/hypervisor.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,2 @@
 +
 +#include <asm-i386/mach-xen/asm/hypervisor.h>
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/io.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/io.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/io.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/io.h	2006-07-20 15:57:32.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/io.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/io.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/io.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/io.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,327 @@
 +#ifndef _ASM_IO_H
 +#define _ASM_IO_H
@@ -82621,9 +80445,9 @@
 +#define ARCH_HAS_DEV_MEM
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/irqflags.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/irqflags.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/irqflags.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/irqflags.h	2006-09-01 00:09:12.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/irqflags.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/irqflags.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/irqflags.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/irqflags.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,65 @@
 +/*
 + * include/asm-x86_64/irqflags.h
@@ -82690,9 +80514,9 @@
 +#endif
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/irq.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/irq.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/irq.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/irq.h	2006-08-14 15:07:21.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/irq.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/irq.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/irq.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/irq.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,38 @@
 +#ifndef _ASM_IRQ_H
 +#define _ASM_IRQ_H
@@ -82732,9 +80556,9 @@
 +#define __ARCH_HAS_DO_SOFTIRQ 1
 +
 +#endif /* _ASM_IRQ_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/maddr.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/maddr.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/maddr.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/maddr.h	2006-09-01 00:09:12.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/maddr.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/maddr.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/maddr.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/maddr.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,139 @@
 +#ifndef _X86_64_MADDR_H
 +#define _X86_64_MADDR_H
@@ -82875,9 +80699,9 @@
 +
 +#endif /* _X86_64_MADDR_H */
 +
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/mmu_context.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/mmu_context.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/mmu_context.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/mmu_context.h	2006-07-20 15:57:32.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/mmu_context.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/mmu_context.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/mmu_context.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/mmu_context.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,135 @@
 +#ifndef __X86_64_MMU_CONTEXT_H
 +#define __X86_64_MMU_CONTEXT_H
@@ -83014,9 +80838,9 @@
 +}
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/mmu.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/mmu.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/mmu.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/mmu.h	2006-08-14 15:07:21.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/mmu.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/mmu.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/mmu.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/mmu.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,38 @@
 +#ifndef __x86_64_MMU_H
 +#define __x86_64_MMU_H
@@ -83056,9 +80880,9 @@
 +#endif
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/msr.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/msr.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/msr.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/msr.h	2006-07-20 15:57:32.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/msr.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/msr.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/msr.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/msr.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,399 @@
 +#ifndef X86_64_MSR_H
 +#define X86_64_MSR_H 1
@@ -83459,9 +81283,9 @@
 +#define MSR_P4_U2L_ESCR1 		0x3b1
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/nmi.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/nmi.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/nmi.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/nmi.h	2006-07-20 15:57:32.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/nmi.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/nmi.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/nmi.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/nmi.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,93 @@
 +/*
 + *  linux/include/asm-i386/nmi.h
@@ -83556,9 +81380,9 @@
 +#define NMI_INVALID	3
 +
 +#endif /* ASM_NMI_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/page.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/page.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/page.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/page.h	2006-09-01 00:09:12.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/page.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/page.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/page.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/page.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,208 @@
 +#ifndef _X86_64_PAGE_H
 +#define _X86_64_PAGE_H
@@ -83768,9 +81592,9 @@
 +#endif /* __KERNEL__ */
 +
 +#endif /* _X86_64_PAGE_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/param.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/param.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/param.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/param.h	2006-07-20 15:57:32.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/param.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/param.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/param.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/param.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,22 @@
 +#ifndef _ASMx86_64_PARAM_H
 +#define _ASMx86_64_PARAM_H
@@ -83794,9 +81618,9 @@
 +#define MAXHOSTNAMELEN	64	/* max length of hostname */
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/pci.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/pci.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/pci.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/pci.h	2006-07-20 15:57:32.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/pci.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/pci.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/pci.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/pci.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,173 @@
 +#ifndef __x8664_PCI_H
 +#define __x8664_PCI_H
@@ -83971,9 +81795,9 @@
 +#define pcibios_scan_all_fns(a, b)	1
 +
 +#endif /* __x8664_PCI_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/pgalloc.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/pgalloc.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/pgalloc.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/pgalloc.h	2006-07-20 15:57:32.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/pgalloc.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/pgalloc.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/pgalloc.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/pgalloc.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,226 @@
 +#ifndef _X86_64_PGALLOC_H
 +#define _X86_64_PGALLOC_H
@@ -84201,9 +82025,9 @@
 +#define __pud_free_tlb(tlb,x)   pud_free((x))
 +
 +#endif /* _X86_64_PGALLOC_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/pgtable.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/pgtable.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/pgtable.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/pgtable.h	2006-09-01 00:09:12.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/pgtable.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/pgtable.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/pgtable.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/pgtable.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,558 @@
 +#ifndef _X86_64_PGTABLE_H
 +#define _X86_64_PGTABLE_H
@@ -84763,10 +82587,10 @@
 +#include <asm-generic/pgtable.h>
 +
 +#endif /* _X86_64_PGTABLE_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/processor.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/processor.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/processor.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/processor.h	2006-09-01 00:09:12.000000000 +0200
-@@ -0,0 +1,498 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/processor.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/processor.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/processor.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/processor.h	2006-09-04 16:31:18.000000000 +0200
+@@ -0,0 +1,504 @@
 +/*
 + * include/asm-x86_64/processor.h
 + *
@@ -85013,7 +82837,13 @@
 +DECLARE_PER_CPU(struct tss_struct,init_tss);
 +#endif
 +
++
 +extern struct cpuinfo_x86 boot_cpu_data;
++/* Save the original ist values for checking stack pointers during debugging */
++struct orig_ist {
++	unsigned long ist[7];
++};
++DECLARE_PER_CPU(struct orig_ist, orig_ist);
 +
 +#ifdef CONFIG_X86_VSMP
 +#define ARCH_MIN_TASKALIGN	(1 << INTERNODE_CACHE_SHIFT)
@@ -85265,9 +83095,9 @@
 +#define HAVE_ARCH_PICK_MMAP_LAYOUT 1
 +
 +#endif /* __ASM_X86_64_PROCESSOR_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/ptrace.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/ptrace.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/ptrace.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/ptrace.h	2006-07-20 15:57:32.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/ptrace.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/ptrace.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/ptrace.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/ptrace.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,125 @@
 +#ifndef _X86_64_PTRACE_H
 +#define _X86_64_PTRACE_H
@@ -85394,9 +83224,9 @@
 +#endif
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/smp.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/smp.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/smp.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/smp.h	2006-07-20 15:57:32.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/smp.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/smp.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/smp.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/smp.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,150 @@
 +#ifndef __ASM_SMP_H
 +#define __ASM_SMP_H
@@ -85548,15 +83378,15 @@
 +
 +#endif
 +
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/synch_bitops.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/synch_bitops.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/synch_bitops.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/synch_bitops.h	2006-07-20 15:57:32.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/synch_bitops.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/synch_bitops.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/synch_bitops.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/synch_bitops.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,2 @@
 +
 +#include <asm-i386/mach-xen/asm/synch_bitops.h>
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/system.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/system.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/system.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/system.h	2006-09-01 00:09:12.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/system.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/system.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/system.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/system.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,264 @@
 +#ifndef __ASM_SYSTEM_H
 +#define __ASM_SYSTEM_H
@@ -85822,9 +83652,9 @@
 +extern void free_init_pages(char *what, unsigned long begin, unsigned long end);
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/timer.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/timer.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/timer.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/timer.h	2006-07-20 15:57:32.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/timer.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/timer.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/timer.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/timer.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,67 @@
 +#ifndef _ASMi386_TIMER_H
 +#define _ASMi386_TIMER_H
@@ -85893,9 +83723,9 @@
 +extern struct init_timer_opts timer_pmtmr_init;
 +#endif
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/tlbflush.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/tlbflush.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/tlbflush.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/tlbflush.h	2006-07-20 15:57:32.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/tlbflush.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/tlbflush.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/tlbflush.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/tlbflush.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,103 @@
 +#ifndef _X8664_TLBFLUSH_H
 +#define _X8664_TLBFLUSH_H
@@ -86000,9 +83830,9 @@
 +}
 +
 +#endif /* _X8664_TLBFLUSH_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/vga.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/vga.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/vga.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/vga.h	2006-07-20 15:57:32.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/vga.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/vga.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/vga.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/vga.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,20 @@
 +/*
 + *	Access to VGA videoram
@@ -86024,9 +83854,9 @@
 +#define vga_writeb(x,y) (*(y) = (x))
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/xor.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/xor.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/asm/xor.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/asm/xor.h	2006-07-20 15:57:32.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/xor.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/xor.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/asm/xor.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/asm/xor.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,328 @@
 +/*
 + * x86-64 changes / gcc fixes from Andi Kleen. 
@@ -86356,9 +84186,9 @@
 +   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-rc5/include/asm-x86_64/mach-xen/irq_vectors.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/irq_vectors.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/irq_vectors.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/irq_vectors.h	2006-07-20 15:57:32.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/irq_vectors.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/irq_vectors.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/irq_vectors.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/irq_vectors.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,123 @@
 +/*
 + * This file should contain #defines for all of the interrupt vector
@@ -86483,9 +84313,9 @@
 +#define irq_to_dynirq(_x)	((_x) - DYNIRQ_BASE)
 +
 +#endif /* _ASM_IRQ_VECTORS_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/mach_time.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/mach_time.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/mach_time.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/mach_time.h	2006-07-20 15:57:32.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/mach_time.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/mach_time.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/mach_time.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/mach_time.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,111 @@
 +/*
 + *  include/asm-i386/mach-default/mach_time.h
@@ -86598,9 +84428,9 @@
 +}
 +
 +#endif /* !_MACH_TIME_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/mach_timer.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/mach_timer.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/mach_timer.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/mach_timer.h	2006-07-20 15:57:32.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/mach_timer.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/mach_timer.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/mach_timer.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/mach_timer.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,48 @@
 +/*
 + *  include/asm-i386/mach-default/mach_timer.h
@@ -86650,9 +84480,9 @@
 +}
 +
 +#endif /* !_MACH_TIMER_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/setup_arch_post.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/setup_arch_post.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/setup_arch_post.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/setup_arch_post.h	2006-07-20 15:57:32.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/setup_arch_post.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/setup_arch_post.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/setup_arch_post.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/setup_arch_post.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,58 @@
 +/**
 + * machine_specific_* - Hooks for machine specific setup.
@@ -86712,18 +84542,18 @@
 +	}
 +#endif
 +}
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/asm-x86_64/mach-xen/setup_arch_pre.h linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/setup_arch_pre.h
---- linux-2.6.18-rc5/include/asm-x86_64/mach-xen/setup_arch_pre.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/asm-x86_64/mach-xen/setup_arch_pre.h	2006-07-20 15:57:32.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/asm-x86_64/mach-xen/setup_arch_pre.h linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/setup_arch_pre.h
+--- linux-2.6.18-rc6/include/asm-x86_64/mach-xen/setup_arch_pre.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/asm-x86_64/mach-xen/setup_arch_pre.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,5 @@
 +/* Hook to call BIOS initialisation function */
 +
 +#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-rc5/include/linux/elfnote.h linux-2.6.18-rc5-xen/include/linux/elfnote.h
---- linux-2.6.18-rc5/include/linux/elfnote.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/linux/elfnote.h	2006-09-01 00:09:12.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/linux/elfnote.h linux-2.6.18-rc6-xen/include/linux/elfnote.h
+--- linux-2.6.18-rc6/include/linux/elfnote.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/linux/elfnote.h	2006-09-04 16:31:18.000000000 +0200
 @@ -0,0 +1,90 @@
 +#ifndef _LINUX_ELFNOTE_H
 +#define _LINUX_ELFNOTE_H
@@ -86815,9 +84645,9 @@
 +#endif	/* __ASSEMBLER__ */
 +
 +#endif /* _LINUX_ELFNOTE_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/linux/gfp.h linux-2.6.18-rc5-xen/include/linux/gfp.h
---- linux-2.6.18-rc5/include/linux/gfp.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/linux/gfp.h	2006-07-20 15:57:34.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/linux/gfp.h linux-2.6.18-rc6-xen/include/linux/gfp.h
+--- linux-2.6.18-rc6/include/linux/gfp.h	2006-09-05 10:53:26.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/linux/gfp.h	2006-09-04 16:31:18.000000000 +0200
 @@ -99,7 +99,11 @@
   */
  
@@ -86831,9 +84661,9 @@
  #endif
  
  extern struct page *
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/linux/highmem.h linux-2.6.18-rc5-xen/include/linux/highmem.h
---- linux-2.6.18-rc5/include/linux/highmem.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/linux/highmem.h	2006-07-20 15:57:34.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/linux/highmem.h linux-2.6.18-rc6-xen/include/linux/highmem.h
+--- linux-2.6.18-rc6/include/linux/highmem.h	2006-09-05 10:53:26.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/linux/highmem.h	2006-09-04 16:31:18.000000000 +0200
 @@ -24,10 +24,16 @@
  
  /* declarations for linux/mm/highmem.c */
@@ -86851,9 +84681,9 @@
  
  static inline void *kmap(struct page *page)
  {
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/linux/interrupt.h linux-2.6.18-rc5-xen/include/linux/interrupt.h
---- linux-2.6.18-rc5/include/linux/interrupt.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/linux/interrupt.h	2006-07-20 15:57:35.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/linux/interrupt.h linux-2.6.18-rc6-xen/include/linux/interrupt.h
+--- linux-2.6.18-rc6/include/linux/interrupt.h	2006-09-05 10:53:26.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/linux/interrupt.h	2006-09-04 16:31:18.000000000 +0200
 @@ -166,6 +166,12 @@
  
  #endif /* CONFIG_GENERIC_HARDIRQS */
@@ -86867,9 +84697,9 @@
  #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-rc5/include/linux/mm.h linux-2.6.18-rc5-xen/include/linux/mm.h
---- linux-2.6.18-rc5/include/linux/mm.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/linux/mm.h	2006-09-01 00:09:12.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/linux/mm.h linux-2.6.18-rc6-xen/include/linux/mm.h
+--- linux-2.6.18-rc6/include/linux/mm.h	2006-09-05 10:53:26.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/linux/mm.h	2006-09-04 16:31:19.000000000 +0200
 @@ -164,6 +164,9 @@
  #define VM_NONLINEAR	0x00800000	/* Is non-linear (remap_file_pages) */
  #define VM_MAPPED_COPY	0x01000000	/* T if mapped copy of data (nommu mmap) */
@@ -86894,9 +84724,9 @@
  #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-rc5/include/linux/oprofile.h linux-2.6.18-rc5-xen/include/linux/oprofile.h
---- linux-2.6.18-rc5/include/linux/oprofile.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/linux/oprofile.h	2006-07-20 15:57:35.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/linux/oprofile.h linux-2.6.18-rc6-xen/include/linux/oprofile.h
+--- linux-2.6.18-rc6/include/linux/oprofile.h	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/linux/oprofile.h	2006-09-04 16:31:19.000000000 +0200
 @@ -16,6 +16,10 @@
  #include <linux/types.h>
  #include <linux/spinlock.h>
@@ -86929,22 +84759,9 @@
  
  /**
   * 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-rc5/include/linux/pci_ids.h linux-2.6.18-rc5-xen/include/linux/pci_ids.h
---- linux-2.6.18-rc5/include/linux/pci_ids.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/linux/pci_ids.h	2006-09-01 00:09:12.000000000 +0200
-@@ -1726,6 +1726,9 @@
- #define PCI_VENDOR_ID_DOMEX		0x134a
- #define PCI_DEVICE_ID_DOMEX_DMX3191D	0x0001
- 
-+#define PCI_VENDOR_ID_INTASHIELD	0x135a
-+#define PCI_DEVICE_ID_INTASHIELD_IS200	0x0d80
-+
- #define PCI_VENDOR_ID_QUATECH		0x135C
- #define PCI_DEVICE_ID_QUATECH_QSC100	0x0010
- #define PCI_DEVICE_ID_QUATECH_DSC100	0x0020
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/linux/skbuff.h linux-2.6.18-rc5-xen/include/linux/skbuff.h
---- linux-2.6.18-rc5/include/linux/skbuff.h	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/include/linux/skbuff.h	2006-09-01 00:09:12.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/linux/skbuff.h linux-2.6.18-rc6-xen/include/linux/skbuff.h
+--- linux-2.6.18-rc6/include/linux/skbuff.h	2006-09-05 10:53:26.000000000 +0200
++++ linux-2.6.18-rc6-xen/include/linux/skbuff.h	2006-09-04 16:31:19.000000000 +0200
 @@ -203,6 +203,8 @@
   *	@local_df: allow local fragmentation
   *	@cloned: Head may be cloned (check refcnt to be sure)
@@ -86996,9 +84813,9 @@
  
  /**
   *	dev_alloc_skb - allocate an skbuff for receiving
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/balloon.h linux-2.6.18-rc5-xen/include/xen/balloon.h
---- linux-2.6.18-rc5/include/xen/balloon.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/balloon.h	2006-09-01 00:09:12.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/balloon.h linux-2.6.18-rc6-xen/include/xen/balloon.h
+--- linux-2.6.18-rc6/include/xen/balloon.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/balloon.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,67 @@
 +/******************************************************************************
 + * balloon.h
@@ -87067,9 +84884,9 @@
 +#define balloon_unlock(__flags) spin_unlock_irqrestore(&balloon_lock, __flags)
 +
 +#endif /* __ASM_BALLOON_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/cpu_hotplug.h linux-2.6.18-rc5-xen/include/xen/cpu_hotplug.h
---- linux-2.6.18-rc5/include/xen/cpu_hotplug.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/cpu_hotplug.h	2006-08-14 15:07:22.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/cpu_hotplug.h linux-2.6.18-rc6-xen/include/xen/cpu_hotplug.h
+--- linux-2.6.18-rc6/include/xen/cpu_hotplug.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/cpu_hotplug.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,43 @@
 +#ifndef __XEN_CPU_HOTPLUG_H__
 +#define __XEN_CPU_HOTPLUG_H__
@@ -87114,9 +84931,9 @@
 +#endif /* !defined(CONFIG_HOTPLUG_CPU) */
 +
 +#endif /* __XEN_CPU_HOTPLUG_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/driver_util.h linux-2.6.18-rc5-xen/include/xen/driver_util.h
---- linux-2.6.18-rc5/include/xen/driver_util.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/driver_util.h	2006-08-14 15:07:22.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/driver_util.h linux-2.6.18-rc6-xen/include/xen/driver_util.h
+--- linux-2.6.18-rc6/include/xen/driver_util.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/driver_util.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,15 @@
 +
 +#ifndef __ASM_XEN_DRIVER_UTIL_H__
@@ -87133,9 +84950,9 @@
 +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-rc5/include/xen/evtchn.h linux-2.6.18-rc5-xen/include/xen/evtchn.h
---- linux-2.6.18-rc5/include/xen/evtchn.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/evtchn.h	2006-08-14 15:07:22.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/evtchn.h linux-2.6.18-rc6-xen/include/xen/evtchn.h
+--- linux-2.6.18-rc6/include/xen/evtchn.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/evtchn.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,113 @@
 +/******************************************************************************
 + * evtchn.h
@@ -87250,9 +85067,9 @@
 +extern void notify_remote_via_irq(int irq);
 +
 +#endif /* __ASM_EVTCHN_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/features.h linux-2.6.18-rc5-xen/include/xen/features.h
---- linux-2.6.18-rc5/include/xen/features.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/features.h	2006-07-20 15:57:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/features.h linux-2.6.18-rc6-xen/include/xen/features.h
+--- linux-2.6.18-rc6/include/xen/features.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/features.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,20 @@
 +/******************************************************************************
 + * features.h
@@ -87274,9 +85091,9 @@
 +#define xen_feature(flag)	(xen_features[flag])
 +
 +#endif /* __ASM_XEN_FEATURES_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/foreign_page.h linux-2.6.18-rc5-xen/include/xen/foreign_page.h
---- linux-2.6.18-rc5/include/xen/foreign_page.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/foreign_page.h	2006-07-20 15:57:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/foreign_page.h linux-2.6.18-rc6-xen/include/xen/foreign_page.h
+--- linux-2.6.18-rc6/include/xen/foreign_page.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/foreign_page.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,30 @@
 +/******************************************************************************
 + * foreign_page.h
@@ -87308,9 +85125,9 @@
 +	( (void (*) (struct page *)) (page)->mapping )
 +
 +#endif /* __ASM_XEN_FOREIGN_PAGE_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/gnttab.h linux-2.6.18-rc5-xen/include/xen/gnttab.h
---- linux-2.6.18-rc5/include/xen/gnttab.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/gnttab.h	2006-08-14 15:07:22.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/gnttab.h linux-2.6.18-rc6-xen/include/xen/gnttab.h
+--- linux-2.6.18-rc6/include/xen/gnttab.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/gnttab.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,150 @@
 +/******************************************************************************
 + * gnttab.h
@@ -87462,9 +85279,9 @@
 +}
 +
 +#endif /* __ASM_GNTTAB_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/hvm.h linux-2.6.18-rc5-xen/include/xen/hvm.h
---- linux-2.6.18-rc5/include/xen/hvm.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/hvm.h	2006-09-01 00:09:12.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/hvm.h linux-2.6.18-rc6-xen/include/xen/hvm.h
+--- linux-2.6.18-rc6/include/xen/hvm.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/hvm.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,24 @@
 +/* Simple wrappers around HVM functions */
 +#ifndef XEN_HVM_H__
@@ -87490,9 +85307,9 @@
 +}
 +
 +#endif /* XEN_HVM_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/hypervisor_sysfs.h linux-2.6.18-rc5-xen/include/xen/hypervisor_sysfs.h
---- linux-2.6.18-rc5/include/xen/hypervisor_sysfs.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/hypervisor_sysfs.h	2006-07-20 15:57:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/hypervisor_sysfs.h linux-2.6.18-rc6-xen/include/xen/hypervisor_sysfs.h
+--- linux-2.6.18-rc6/include/xen/hypervisor_sysfs.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/hypervisor_sysfs.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,32 @@
 +/*
 + *  copyright (c) 2006 IBM Corporation
@@ -87526,10 +85343,10 @@
 +};
 +
 +#endif /* _HYP_SYSFS_H_ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/acm.h linux-2.6.18-rc5-xen/include/xen/interface/acm.h
---- linux-2.6.18-rc5/include/xen/interface/acm.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/acm.h	2006-07-20 15:57:37.000000000 +0200
-@@ -0,0 +1,188 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/acm.h linux-2.6.18-rc6-xen/include/xen/interface/acm.h
+--- linux-2.6.18-rc6/include/xen/interface/acm.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/acm.h	2006-09-04 16:31:19.000000000 +0200
+@@ -0,0 +1,187 @@
 +/*
 + * acm.h: Xen access control module interface defintions
 + *
@@ -87541,7 +85358,6 @@
 +#define _XEN_PUBLIC_ACM_H
 +
 +#include "xen.h"
-+#include "sched_ctl.h"
 +
 +/* if ACM_DEBUG defined, all hooks should
 + * print a short trace message (comment it out
@@ -87718,10 +85534,10 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/acm_ops.h linux-2.6.18-rc5-xen/include/xen/interface/acm_ops.h
---- linux-2.6.18-rc5/include/xen/interface/acm_ops.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/acm_ops.h	2006-07-20 15:57:37.000000000 +0200
-@@ -0,0 +1,103 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/acm_ops.h linux-2.6.18-rc6-xen/include/xen/interface/acm_ops.h
+--- linux-2.6.18-rc6/include/xen/interface/acm_ops.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/acm_ops.h	2006-09-04 16:31:19.000000000 +0200
+@@ -0,0 +1,102 @@
 +/*
 + * acm_ops.h: Xen access control module hypervisor commands
 + *
@@ -87733,7 +85549,6 @@
 +#define __XEN_PUBLIC_ACM_OPS_H__
 +
 +#include "xen.h"
-+#include "sched_ctl.h"
 +#include "acm.h"
 +
 +/*
@@ -87825,9 +85640,9 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/arch-ia64.h linux-2.6.18-rc5-xen/include/xen/interface/arch-ia64.h
---- linux-2.6.18-rc5/include/xen/interface/arch-ia64.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/arch-ia64.h	2006-09-01 00:09:12.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/arch-ia64.h linux-2.6.18-rc6-xen/include/xen/interface/arch-ia64.h
+--- linux-2.6.18-rc6/include/xen/interface/arch-ia64.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/arch-ia64.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,448 @@
 +/******************************************************************************
 + * arch-ia64/hypervisor-if.h
@@ -88277,9 +86092,9 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/arch-powerpc.h linux-2.6.18-rc5-xen/include/xen/interface/arch-powerpc.h
---- linux-2.6.18-rc5/include/xen/interface/arch-powerpc.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/arch-powerpc.h	2006-09-01 00:09:12.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/arch-powerpc.h linux-2.6.18-rc6-xen/include/xen/interface/arch-powerpc.h
+--- linux-2.6.18-rc6/include/xen/interface/arch-powerpc.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/arch-powerpc.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,115 @@
 +/*
 + * This program is free software; you can redistribute it and/or modify
@@ -88396,10 +86211,10 @@
 +#endif
 +
 +#endif
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/arch-x86_32.h linux-2.6.18-rc5-xen/include/xen/interface/arch-x86_32.h
---- linux-2.6.18-rc5/include/xen/interface/arch-x86_32.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/arch-x86_32.h	2006-09-01 00:09:12.000000000 +0200
-@@ -0,0 +1,256 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/arch-x86_32.h linux-2.6.18-rc6-xen/include/xen/interface/arch-x86_32.h
+--- linux-2.6.18-rc6/include/xen/interface/arch-x86_32.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/arch-x86_32.h	2006-09-04 16:31:19.000000000 +0200
+@@ -0,0 +1,255 @@
 +/******************************************************************************
 + * arch-x86_32.h
 + * 
@@ -88429,7 +86244,6 @@
 +#define TRAP_INSTR "int $0x82"
 +#endif
 +
-+
 +/* Structural guest handles introduced in 0x00030201. */
 +#if __XEN_INTERFACE_VERSION__ >= 0x00030201
 +#define __DEFINE_XEN_GUEST_HANDLE(name, type) \
@@ -88656,9 +86470,9 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/arch-x86_64.h linux-2.6.18-rc5-xen/include/xen/interface/arch-x86_64.h
---- linux-2.6.18-rc5/include/xen/interface/arch-x86_64.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/arch-x86_64.h	2006-09-01 00:09:12.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/arch-x86_64.h linux-2.6.18-rc6-xen/include/xen/interface/arch-x86_64.h
+--- linux-2.6.18-rc6/include/xen/interface/arch-x86_64.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/arch-x86_64.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,322 @@
 +/******************************************************************************
 + * arch-x86_64.h
@@ -88982,9 +86796,9 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/callback.h linux-2.6.18-rc5-xen/include/xen/interface/callback.h
---- linux-2.6.18-rc5/include/xen/interface/callback.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/callback.h	2006-07-20 15:57:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/callback.h linux-2.6.18-rc6-xen/include/xen/interface/callback.h
+--- linux-2.6.18-rc6/include/xen/interface/callback.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/callback.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,74 @@
 +/******************************************************************************
 + * callback.h
@@ -89060,109 +86874,162 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/dom0_ops.h linux-2.6.18-rc5-xen/include/xen/interface/dom0_ops.h
---- linux-2.6.18-rc5/include/xen/interface/dom0_ops.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/dom0_ops.h	2006-09-01 00:09:12.000000000 +0200
-@@ -0,0 +1,656 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/dom0_ops.h linux-2.6.18-rc6-xen/include/xen/interface/dom0_ops.h
+--- linux-2.6.18-rc6/include/xen/interface/dom0_ops.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/dom0_ops.h	2006-09-04 16:31:19.000000000 +0200
+@@ -0,0 +1,102 @@
 +/******************************************************************************
 + * dom0_ops.h
 + * 
 + * Process command requests from domain-0 guest OS.
 + * 
 + * Copyright (c) 2002-2003, B Dragovic
-+ * Copyright (c) 2002-2004, K Fraser
++ * Copyright (c) 2002-2006, K Fraser
 + */
 +
-+
 +#ifndef __XEN_PUBLIC_DOM0_OPS_H__
 +#define __XEN_PUBLIC_DOM0_OPS_H__
 +
 +#include "xen.h"
-+#include "sched_ctl.h"
++#include "platform.h"
 +
-+/*
-+ * Make sure you increment the interface version whenever you modify this file!
-+ * This makes sure that old versions of dom0 tools will stop working in a
-+ * well-defined way (rather than crashing the machine, for instance).
-+ * 
-+ * Separate kernel from tools as the kernel uses a small subset of the dom0
-+ * operations and so it is unnecessary to break backward compatibility so
-+ * often.
-+ */
-+#define DOM0_TOOLS_INTERFACE_VERSION  0x13000001
-+#define DOM0_KERNEL_INTERFACE_VERSION 0x03000001
-+
-+#ifdef __XEN_TOOLS__
-+#define DOM0_INTERFACE_VERSION DOM0_TOOLS_INTERFACE_VERSION
-+#else
-+#define DOM0_INTERFACE_VERSION DOM0_KERNEL_INTERFACE_VERSION
++#if __XEN_INTERFACE_VERSION__ >= 0x00030204
++#error "dom0_ops.h is a compatibility interface only"
 +#endif
 +
-+/************************************************************************/
++#define DOM0_INTERFACE_VERSION XENPF_INTERFACE_VERSION
++
++#define DOM0_SETTIME          XENPF_settime
++#define dom0_settime          xenpf_settime
++#define dom0_settime_t        xenpf_settime_t
++
++#define DOM0_ADD_MEMTYPE      XENPF_add_memtype
++#define dom0_add_memtype      xenpf_add_memtype
++#define dom0_add_memtype_t    xenpf_add_memtype_t
++
++#define DOM0_DEL_MEMTYPE      XENPF_del_memtype
++#define dom0_del_memtype      xenpf_del_memtype
++#define dom0_del_memtype_t    xenpf_del_memtype_t
++
++#define DOM0_READ_MEMTYPE     XENPF_read_memtype
++#define dom0_read_memtype     xenpf_read_memtype
++#define dom0_read_memtype_t   xenpf_read_memtype_t
 +
-+#define DOM0_GETMEMLIST        2
-+struct dom0_getmemlist {
++#define DOM0_MICROCODE        XENPF_microcode_update
++#define dom0_microcode        xenpf_microcode_update
++#define dom0_microcode_t      xenpf_microcode_update_t
++
++#define DOM0_PLATFORM_QUIRK   XENPF_platform_quirk
++#define dom0_platform_quirk   xenpf_platform_quirk
++#define dom0_platform_quirk_t xenpf_platform_quirk_t
++
++typedef uint64_t cpumap_t;
++
++/* Unsupported legacy operation -- defined for API compatibility. */
++#define DOM0_MSR                 15
++struct dom0_msr {
 +    /* IN variables. */
-+    domid_t       domain;
-+    uint64_t max_pfns;
-+    XEN_GUEST_HANDLE(xen_pfn_t) buffer;
++    uint32_t write;
++    cpumap_t cpu_mask;
++    uint32_t msr;
++    uint32_t in1;
++    uint32_t in2;
 +    /* OUT variables. */
-+    uint64_t num_pfns;
++    uint32_t out1;
++    uint32_t out2;
 +};
-+typedef struct dom0_getmemlist dom0_getmemlist_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_getmemlist_t);
-+
-+#define DOM0_SCHEDCTL          6
-+ /* struct sched_ctl_cmd is from sched-ctl.h   */
-+typedef struct sched_ctl_cmd dom0_schedctl_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_schedctl_t);
-+
-+#define DOM0_ADJUSTDOM         7
-+/* struct sched_adjdom_cmd is from sched-ctl.h */
-+typedef struct sched_adjdom_cmd dom0_adjustdom_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_adjustdom_t);
++typedef struct dom0_msr dom0_msr_t;
++DEFINE_XEN_GUEST_HANDLE(dom0_msr_t);
 +
-+#define DOM0_CREATEDOMAIN      8
-+struct dom0_createdomain {
-+    /* IN parameters */
-+    uint32_t ssidref;
-+    xen_domain_handle_t handle;
-+    /* IN/OUT parameters. */
-+    /* Identifier for new domain (auto-allocate if zero is specified). */
-+    domid_t domain;
++/* Unsupported legacy operation -- defined for API compatibility. */
++#define DOM0_PHYSICAL_MEMORY_MAP 40
++struct dom0_memory_map_entry {
++    uint64_t start, end;
++    uint32_t flags; /* reserved */
++    uint8_t  is_ram;
 +};
-+typedef struct dom0_createdomain dom0_createdomain_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_createdomain_t);
++typedef struct dom0_memory_map_entry dom0_memory_map_entry_t;
++DEFINE_XEN_GUEST_HANDLE(dom0_memory_map_entry_t);
 +
-+#define DOM0_DESTROYDOMAIN     9
-+struct dom0_destroydomain {
-+    /* IN variables. */
-+    domid_t domain;
++struct dom0_op {
++    uint32_t cmd;
++    uint32_t interface_version; /* DOM0_INTERFACE_VERSION */
++    union {
++        struct dom0_msr               msr;
++        struct dom0_settime           settime;
++        struct dom0_add_memtype       add_memtype;
++        struct dom0_del_memtype       del_memtype;
++        struct dom0_read_memtype      read_memtype;
++        struct dom0_microcode         microcode;
++        struct dom0_platform_quirk    platform_quirk;
++        struct dom0_memory_map_entry  physical_memory_map;
++        uint8_t                       pad[128];
++    } u;
 +};
-+typedef struct dom0_destroydomain dom0_destroydomain_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_destroydomain_t);
++typedef struct dom0_op dom0_op_t;
++DEFINE_XEN_GUEST_HANDLE(dom0_op_t);
 +
-+#define DOM0_PAUSEDOMAIN      10
-+struct dom0_pausedomain {
-+    /* IN parameters. */
-+    domid_t domain;
++#endif /* __XEN_PUBLIC_DOM0_OPS_H__ */
++
++/*
++ * Local variables:
++ * mode: C
++ * c-set-style: "BSD"
++ * c-basic-offset: 4
++ * tab-width: 4
++ * indent-tabs-mode: nil
++ * End:
++ */
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/domctl.h linux-2.6.18-rc6-xen/include/xen/interface/domctl.h
+--- linux-2.6.18-rc6/include/xen/interface/domctl.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/domctl.h	2006-09-04 16:31:19.000000000 +0200
+@@ -0,0 +1,392 @@
++/******************************************************************************
++ * domctl.h
++ * 
++ * Domain management operations. For use by node control stack.
++ * 
++ * Copyright (c) 2002-2003, B Dragovic
++ * Copyright (c) 2002-2006, K Fraser
++ */
++
++#ifndef __XEN_PUBLIC_DOMCTL_H__
++#define __XEN_PUBLIC_DOMCTL_H__
++
++#if !defined(__XEN__) && !defined(__XEN_TOOLS__)
++#error "domctl operations are intended for use by node control tools only"
++#endif
++
++#include "xen.h"
++
++#define XEN_DOMCTL_INTERFACE_VERSION 0x00000003
++
++struct xenctl_cpumap {
++    XEN_GUEST_HANDLE(uint8_t) bitmap;
++    uint32_t nr_cpus;
 +};
-+typedef struct dom0_pausedomain dom0_pausedomain_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_pausedomain_t);
 +
-+#define DOM0_UNPAUSEDOMAIN    11
-+struct dom0_unpausedomain {
-+    /* IN parameters. */
-+    domid_t domain;
++/*
++ * NB. xen_domctl.domain is an IN/OUT parameter for this operation.
++ * If it is specified as zero, an id is auto-allocated and returned.
++ */
++#define XEN_DOMCTL_createdomain       1
++struct xen_domctl_createdomain {
++    /* IN parameters */
++    uint32_t ssidref;
++    xen_domain_handle_t handle;
 +};
-+typedef struct dom0_unpausedomain dom0_unpausedomain_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_unpausedomain_t);
++typedef struct xen_domctl_createdomain xen_domctl_createdomain_t;
++DEFINE_XEN_GUEST_HANDLE(xen_domctl_createdomain_t);
 +
-+#define DOM0_GETDOMAININFO    12
-+struct dom0_getdomaininfo {
-+    /* IN variables. */
-+    domid_t  domain;                  /* NB. IN/OUT variable. */
++#define XEN_DOMCTL_destroydomain      2
++#define XEN_DOMCTL_pausedomain        3
++#define XEN_DOMCTL_unpausedomain      4
++
++#define XEN_DOMCTL_getdomaininfo      5
++struct xen_domctl_getdomaininfo {
 +    /* OUT variables. */
++    domid_t  domain;              /* Also echoed in domctl.domain */
 +#define DOMFLAGS_DYING     (1<<0) /* Domain is scheduled to die.             */
 +#define DOMFLAGS_SHUTDOWN  (1<<2) /* The guest OS has shut down.             */
 +#define DOMFLAGS_PAUSED    (1<<3) /* Currently paused by control software.   */
@@ -89175,220 +87042,130 @@
 +    uint32_t flags;
 +    uint64_t tot_pages;
 +    uint64_t max_pages;
-+    xen_pfn_t shared_info_frame;  /* MFN of shared_info struct */
++    uint64_t shared_info_frame;  /* MFN of shared_info struct */
 +    uint64_t cpu_time;
 +    uint32_t nr_online_vcpus;     /* Number of VCPUs currently online. */
 +    uint32_t max_vcpu_id;         /* Maximum VCPUID in use by this domain. */
 +    uint32_t ssidref;
 +    xen_domain_handle_t handle;
 +};
-+typedef struct dom0_getdomaininfo dom0_getdomaininfo_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_getdomaininfo_t);
++typedef struct xen_domctl_getdomaininfo xen_domctl_getdomaininfo_t;
++DEFINE_XEN_GUEST_HANDLE(xen_domctl_getdomaininfo_t);
 +
-+#define DOM0_SETVCPUCONTEXT   13
-+struct dom0_setvcpucontext {
-+    /* IN variables. */
-+    domid_t               domain;
-+    uint32_t              vcpu;
-+    /* IN/OUT parameters */
-+    XEN_GUEST_HANDLE(vcpu_guest_context_t) ctxt;
-+};
-+typedef struct dom0_setvcpucontext dom0_setvcpucontext_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_setvcpucontext_t);
 +
-+#define DOM0_MSR              15
-+struct dom0_msr {
++#define XEN_DOMCTL_getmemlist         6
++struct xen_domctl_getmemlist {
 +    /* IN variables. */
-+    uint32_t write;
-+    cpumap_t cpu_mask;
-+    uint32_t msr;
-+    uint32_t in1;
-+    uint32_t in2;
++    /* Max entries to write to output buffer. */
++    uint64_t max_pfns;
++    /* Start index in guest's page list. */
++    uint64_t start_pfn;
++    XEN_GUEST_HANDLE(xen_pfn_t) buffer;
 +    /* OUT variables. */
-+    uint32_t out1;
-+    uint32_t out2;
++    uint64_t num_pfns;
 +};
-+typedef struct dom0_msr dom0_msr_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_msr_t);
++typedef struct xen_domctl_getmemlist xen_domctl_getmemlist_t;
++DEFINE_XEN_GUEST_HANDLE(xen_domctl_getmemlist_t);
 +
-+/*
-+ * Set clock such that it would read <secs,nsecs> after 00:00:00 UTC,
-+ * 1 January, 1970 if the current system time was <system_time>.
-+ */
-+#define DOM0_SETTIME          17
-+struct dom0_settime {
-+    /* IN variables. */
-+    uint32_t secs;
-+    uint32_t nsecs;
-+    uint64_t system_time;
-+};
-+typedef struct dom0_settime dom0_settime_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_settime_t);
 +
-+#define DOM0_GETPAGEFRAMEINFO 18
-+#define LTAB_SHIFT 28
-+#define NOTAB 0         /* normal page */
-+#define L1TAB (1<<LTAB_SHIFT)
-+#define L2TAB (2<<LTAB_SHIFT)
-+#define L3TAB (3<<LTAB_SHIFT)
-+#define L4TAB (4<<LTAB_SHIFT)
-+#define LPINTAB  (1<<31)
-+#define XTAB  (0xf<<LTAB_SHIFT) /* invalid page */
-+#define LTAB_MASK XTAB
-+#define LTABTYPE_MASK (0x7<<LTAB_SHIFT)
++#define XEN_DOMCTL_getpageframeinfo   7
++
++#define XEN_DOMCTL_PFINFO_LTAB_SHIFT 28
++#define XEN_DOMCTL_PFINFO_NOTAB   (0x0<<28)
++#define XEN_DOMCTL_PFINFO_L1TAB   (0x1<<28)
++#define XEN_DOMCTL_PFINFO_L2TAB   (0x2<<28)
++#define XEN_DOMCTL_PFINFO_L3TAB   (0x3<<28)
++#define XEN_DOMCTL_PFINFO_L4TAB   (0x4<<28)
++#define XEN_DOMCTL_PFINFO_LTABTYPE_MASK (0x7<<28)
++#define XEN_DOMCTL_PFINFO_LPINTAB (0x1<<31)
++#define XEN_DOMCTL_PFINFO_XTAB    (0xf<<28) /* invalid page */
++#define XEN_DOMCTL_PFINFO_LTAB_MASK (0xf<<28)
 +
-+struct dom0_getpageframeinfo {
++struct xen_domctl_getpageframeinfo {
 +    /* IN variables. */
-+    xen_pfn_t gmfn;        /* GMFN to query.                            */
-+    domid_t domain;        /* To which domain does the frame belong?    */
++    uint64_t gmfn;        /* GMFN to query */
 +    /* OUT variables. */
 +    /* Is the page PINNED to a type? */
 +    uint32_t type;         /* see above type defs */
 +};
-+typedef struct dom0_getpageframeinfo dom0_getpageframeinfo_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_getpageframeinfo_t);
++typedef struct xen_domctl_getpageframeinfo xen_domctl_getpageframeinfo_t;
++DEFINE_XEN_GUEST_HANDLE(xen_domctl_getpageframeinfo_t);
 +
-+/*
-+ * Read console content from Xen buffer ring.
-+ */
-+#define DOM0_READCONSOLE      19
-+struct dom0_readconsole {
-+    /* IN variables. */
-+    uint32_t clear;                /* Non-zero -> clear after reading. */
-+    XEN_GUEST_HANDLE(char) buffer; /* Buffer start */
-+    /* IN/OUT variables. */
-+    uint32_t count;            /* In: Buffer size;  Out: Used buffer size  */
-+};
-+typedef struct dom0_readconsole dom0_readconsole_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_readconsole_t);
 +
-+/*
-+ * Set which physical cpus a vcpu can execute on.
-+ */
-+#define DOM0_SETVCPUAFFINITY  20
-+struct dom0_setvcpuaffinity {
++#define XEN_DOMCTL_getpageframeinfo2  8
++struct xen_domctl_getpageframeinfo2 {
 +    /* IN variables. */
-+    domid_t   domain;
-+    uint32_t  vcpu;
-+    cpumap_t  cpumap;
-+};
-+typedef struct dom0_setvcpuaffinity dom0_setvcpuaffinity_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_setvcpuaffinity_t);
-+
-+/* Get trace buffers machine base address */
-+#define DOM0_TBUFCONTROL       21
-+struct dom0_tbufcontrol {
-+    /* IN variables */
-+#define DOM0_TBUF_GET_INFO     0
-+#define DOM0_TBUF_SET_CPU_MASK 1
-+#define DOM0_TBUF_SET_EVT_MASK 2
-+#define DOM0_TBUF_SET_SIZE     3
-+#define DOM0_TBUF_ENABLE       4
-+#define DOM0_TBUF_DISABLE      5
-+    uint32_t      op;
-+    /* IN/OUT variables */
-+    cpumap_t      cpu_mask;
-+    uint32_t      evt_mask;
-+    /* OUT variables */
-+    xen_pfn_t buffer_mfn;
-+    uint32_t size;
-+};
-+typedef struct dom0_tbufcontrol dom0_tbufcontrol_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_tbufcontrol_t);
-+
-+/*
-+ * Get physical information about the host machine
-+ */
-+#define DOM0_PHYSINFO         22
-+struct dom0_physinfo {
-+    uint32_t threads_per_core;
-+    uint32_t cores_per_socket;
-+    uint32_t sockets_per_node;
-+    uint32_t nr_nodes;
-+    uint32_t cpu_khz;
-+    uint64_t total_pages;
-+    uint64_t free_pages;
-+    uint64_t scrub_pages;
-+    uint32_t hw_cap[8];
++    uint64_t num;
++    /* IN/OUT variables. */
++    XEN_GUEST_HANDLE(ulong) array;
 +};
-+typedef struct dom0_physinfo dom0_physinfo_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_physinfo_t);
++typedef struct xen_domctl_getpageframeinfo2 xen_domctl_getpageframeinfo2_t;
++DEFINE_XEN_GUEST_HANDLE(xen_domctl_getpageframeinfo2_t);
 +
-+/*
-+ * Get the ID of the current scheduler.
-+ */
-+#define DOM0_SCHED_ID        24
-+struct dom0_sched_id {
-+    /* OUT variable */
-+    uint32_t sched_id;
-+};
-+typedef struct dom0_physinfo dom0_sched_id_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_sched_id_t);
 +
 +/*
 + * Control shadow pagetables operation
 + */
-+#define DOM0_SHADOW_CONTROL  25
++#define XEN_DOMCTL_shadow_op         10
 +
 +/* Disable shadow mode. */
-+#define DOM0_SHADOW_CONTROL_OP_OFF         0
++#define XEN_DOMCTL_SHADOW_OP_OFF         0
 +
-+/* Enable shadow mode (mode contains ORed DOM0_SHADOW_ENABLE_* flags). */
-+#define DOM0_SHADOW_CONTROL_OP_ENABLE      32
++/* Enable shadow mode (mode contains ORed XEN_DOMCTL_SHADOW_ENABLE_* flags). */
++#define XEN_DOMCTL_SHADOW_OP_ENABLE      32
 +
 +/* Log-dirty bitmap operations. */
 + /* Return the bitmap and clean internal copy for next round. */
-+#define DOM0_SHADOW_CONTROL_OP_CLEAN       11
++#define XEN_DOMCTL_SHADOW_OP_CLEAN       11
 + /* Return the bitmap but do not modify internal copy. */
-+#define DOM0_SHADOW_CONTROL_OP_PEEK        12
++#define XEN_DOMCTL_SHADOW_OP_PEEK        12
 +
 +/* Memory allocation accessors. */
-+#define DOM0_SHADOW_CONTROL_OP_GET_ALLOCATION   30
-+#define DOM0_SHADOW_CONTROL_OP_SET_ALLOCATION   31
++#define XEN_DOMCTL_SHADOW_OP_GET_ALLOCATION   30
++#define XEN_DOMCTL_SHADOW_OP_SET_ALLOCATION   31
 +
 +/* Legacy enable operations. */
 + /* Equiv. to ENABLE with no mode flags. */
-+#define DOM0_SHADOW_CONTROL_OP_ENABLE_TEST       1
++#define XEN_DOMCTL_SHADOW_OP_ENABLE_TEST       1
 + /* Equiv. to ENABLE with mode flag ENABLE_LOG_DIRTY. */
-+#define DOM0_SHADOW_CONTROL_OP_ENABLE_LOGDIRTY   2
++#define XEN_DOMCTL_SHADOW_OP_ENABLE_LOGDIRTY   2
 + /* Equiv. to ENABLE with mode flags ENABLE_REFCOUNT and ENABLE_TRANSLATE. */
-+#define DOM0_SHADOW_CONTROL_OP_ENABLE_TRANSLATE  3
++#define XEN_DOMCTL_SHADOW_OP_ENABLE_TRANSLATE  3
 +
-+/* Mode flags for DOM0_SHADOW_CONTROL_OP_ENABLE. */
++/* Mode flags for XEN_DOMCTL_SHADOW_OP_ENABLE. */
 + /*
 +  * Shadow pagetables are refcounted: guest does not use explicit mmu
 +  * operations nor write-protect its pagetables.
 +  */
-+#define DOM0_SHADOW_ENABLE_REFCOUNT  (1 << 1)
++#define XEN_DOMCTL_SHADOW_ENABLE_REFCOUNT  (1 << 1)
 + /*
 +  * Log pages in a bitmap as they are dirtied.
 +  * Used for live relocation to determine which pages must be re-sent.
 +  */
-+#define DOM0_SHADOW_ENABLE_LOG_DIRTY (1 << 2)
++#define XEN_DOMCTL_SHADOW_ENABLE_LOG_DIRTY (1 << 2)
 + /*
 +  * Automatically translate GPFNs into MFNs.
 +  */
-+#define DOM0_SHADOW_ENABLE_TRANSLATE (1 << 3)
++#define XEN_DOMCTL_SHADOW_ENABLE_TRANSLATE (1 << 3)
 + /*
 +  * Xen does not steal virtual address space from the guest.
 +  * Requires HVM support.
 +  */
-+#define DOM0_SHADOW_ENABLE_EXTERNAL  (1 << 4)
++#define XEN_DOMCTL_SHADOW_ENABLE_EXTERNAL  (1 << 4)
 +
-+struct dom0_shadow_control_stats {
++struct xen_domctl_shadow_op_stats {
 +    uint32_t fault_count;
 +    uint32_t dirty_count;
 +};
-+typedef struct dom0_shadow_control_stats dom0_shadow_control_stats_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_shadow_control_stats_t);
++typedef struct xen_domctl_shadow_op_stats xen_domctl_shadow_op_stats_t;
++DEFINE_XEN_GUEST_HANDLE(xen_domctl_shadow_op_stats_t);
 +
-+struct dom0_shadow_control {
++struct xen_domctl_shadow_op {
 +    /* IN variables. */
-+    domid_t        domain;
-+    uint32_t       op;       /* DOM0_SHADOW_CONTROL_OP_* */
++    uint32_t       op;       /* XEN_DOMCTL_SHADOW_OP_* */
 +
 +    /* OP_ENABLE */
-+    uint32_t       mode;     /* DOM0_SHADOW_ENABLE_* */
++    uint32_t       mode;     /* XEN_DOMCTL_SHADOW_ENABLE_* */
 +
 +    /* OP_GET_ALLOCATION / OP_SET_ALLOCATION */
 +    uint32_t       mb;       /* Shadow memory allocation in MB */
@@ -89396,320 +87173,199 @@
 +    /* OP_PEEK / OP_CLEAN */
 +    XEN_GUEST_HANDLE(ulong) dirty_bitmap;
 +    uint64_t       pages;    /* Size of buffer. Updated with actual size. */
-+    struct dom0_shadow_control_stats stats;
-+};
-+typedef struct dom0_shadow_control dom0_shadow_control_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_shadow_control_t);
-+
-+#define DOM0_SETDOMAINMAXMEM   28
-+struct dom0_setdomainmaxmem {
-+    /* IN variables. */
-+    domid_t  domain;
-+    uint64_t max_memkb;
-+};
-+typedef struct dom0_setdomainmaxmem dom0_setdomainmaxmem_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_setdomainmaxmem_t);
-+
-+#define DOM0_GETPAGEFRAMEINFO2 29   /* batched interface */
-+struct dom0_getpageframeinfo2 {
-+    /* IN variables. */
-+    domid_t  domain;
-+    uint64_t num;
-+    /* IN/OUT variables. */
-+    XEN_GUEST_HANDLE(ulong) array;
-+};
-+typedef struct dom0_getpageframeinfo2 dom0_getpageframeinfo2_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_getpageframeinfo2_t);
-+
-+/*
-+ * Request memory range (@mfn, @mfn+ at nr_mfns-1) to have type @type.
-+ * On x86, @type is an architecture-defined MTRR memory type.
-+ * On success, returns the MTRR that was used (@reg) and a handle that can
-+ * be passed to DOM0_DEL_MEMTYPE to accurately tear down the new setting.
-+ * (x86-specific).
-+ */
-+#define DOM0_ADD_MEMTYPE         31
-+struct dom0_add_memtype {
-+    /* IN variables. */
-+    xen_pfn_t mfn;
-+    uint64_t nr_mfns;
-+    uint32_t type;
-+    /* OUT variables. */
-+    uint32_t handle;
-+    uint32_t reg;
++    struct xen_domctl_shadow_op_stats stats;
 +};
-+typedef struct dom0_add_memtype dom0_add_memtype_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_add_memtype_t);
++typedef struct xen_domctl_shadow_op xen_domctl_shadow_op_t;
++DEFINE_XEN_GUEST_HANDLE(xen_domctl_shadow_op_t);
 +
-+/*
-+ * Tear down an existing memory-range type. If @handle is remembered then it
-+ * should be passed in to accurately tear down the correct setting (in case
-+ * of overlapping memory regions with differing types). If it is not known
-+ * then @handle should be set to zero. In all cases @reg must be set.
-+ * (x86-specific).
-+ */
-+#define DOM0_DEL_MEMTYPE         32
-+struct dom0_del_memtype {
-+    /* IN variables. */
-+    uint32_t handle;
-+    uint32_t reg;
-+};
-+typedef struct dom0_del_memtype dom0_del_memtype_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_del_memtype_t);
-+
-+/* Read current type of an MTRR (x86-specific). */
-+#define DOM0_READ_MEMTYPE        33
-+struct dom0_read_memtype {
-+    /* IN variables. */
-+    uint32_t reg;
-+    /* OUT variables. */
-+    xen_pfn_t mfn;
-+    uint64_t nr_mfns;
-+    uint32_t type;
-+};
-+typedef struct dom0_read_memtype dom0_read_memtype_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_read_memtype_t);
-+
-+/* Interface for controlling Xen software performance counters. */
-+#define DOM0_PERFCCONTROL        34
-+/* Sub-operations: */
-+#define DOM0_PERFCCONTROL_OP_RESET 1   /* Reset all counters to zero. */
-+#define DOM0_PERFCCONTROL_OP_QUERY 2   /* Get perfctr information. */
-+struct dom0_perfc_desc {
-+    char         name[80];             /* name of perf counter */
-+    uint32_t     nr_vals;              /* number of values for this counter */
-+};
-+typedef struct dom0_perfc_desc dom0_perfc_desc_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_perfc_desc_t);
-+typedef uint32_t dom0_perfc_val_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_perfc_val_t);
 +
-+struct dom0_perfccontrol {
++#define XEN_DOMCTL_max_mem           11
++struct xen_domctl_max_mem {
 +    /* IN variables. */
-+    uint32_t       op;                /*  DOM0_PERFCCONTROL_OP_??? */
-+    /* OUT variables. */
-+    uint32_t       nr_counters;       /*  number of counters description  */
-+    uint32_t       nr_vals;			  /*  number of values  */
-+    XEN_GUEST_HANDLE(dom0_perfc_desc_t) desc; /*  counter information (or NULL) */
-+    XEN_GUEST_HANDLE(dom0_perfc_val_t) val;   /*  counter values (or NULL)  */
++    uint64_t max_memkb;
 +};
-+typedef struct dom0_perfccontrol dom0_perfccontrol_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_perfccontrol_t);
++typedef struct xen_domctl_max_mem xen_domctl_max_mem_t;
++DEFINE_XEN_GUEST_HANDLE(xen_domctl_max_mem_t);
 +
-+#define DOM0_MICROCODE           35
-+struct dom0_microcode {
-+    /* IN variables. */
-+    XEN_GUEST_HANDLE(void) data;          /* Pointer to microcode data */
-+    uint32_t length;                  /* Length of microcode data. */
-+};
-+typedef struct dom0_microcode dom0_microcode_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_microcode_t);
 +
-+#define DOM0_IOPORT_PERMISSION   36
-+struct dom0_ioport_permission {
-+    domid_t  domain;                  /* domain to be affected */
-+    uint32_t first_port;              /* first port int range */
-+    uint32_t nr_ports;                /* size of port range */
-+    uint8_t  allow_access;            /* allow or deny access to range? */
++#define XEN_DOMCTL_setvcpucontext    12
++#define XEN_DOMCTL_getvcpucontext    13
++struct xen_domctl_vcpucontext {
++    uint32_t              vcpu;                  /* IN */
++    XEN_GUEST_HANDLE(vcpu_guest_context_t) ctxt; /* IN/OUT */
 +};
-+typedef struct dom0_ioport_permission dom0_ioport_permission_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_ioport_permission_t);
++typedef struct xen_domctl_vcpucontext xen_domctl_vcpucontext_t;
++DEFINE_XEN_GUEST_HANDLE(xen_domctl_vcpucontext_t);
 +
-+#define DOM0_GETVCPUCONTEXT      37
-+struct dom0_getvcpucontext {
-+    /* IN variables. */
-+    domid_t  domain;                  /* domain to be affected */
-+    uint32_t vcpu;                    /* vcpu # */
-+    /* OUT variables. */
-+    XEN_GUEST_HANDLE(vcpu_guest_context_t) ctxt;
-+};
-+typedef struct dom0_getvcpucontext dom0_getvcpucontext_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_getvcpucontext_t);
 +
-+#define DOM0_GETVCPUINFO         43
-+struct dom0_getvcpuinfo {
++#define XEN_DOMCTL_getvcpuinfo       14
++struct xen_domctl_getvcpuinfo {
 +    /* IN variables. */
-+    domid_t  domain;                  /* domain to be affected */
-+    uint32_t vcpu;                    /* vcpu # */
++    uint32_t vcpu;
 +    /* OUT variables. */
 +    uint8_t  online;                  /* currently online (not hotplugged)? */
 +    uint8_t  blocked;                 /* blocked waiting for an event? */
 +    uint8_t  running;                 /* currently scheduled on its CPU? */
 +    uint64_t cpu_time;                /* total cpu time consumed (ns) */
 +    uint32_t cpu;                     /* current mapping   */
-+    cpumap_t cpumap;                  /* allowable mapping */
 +};
-+typedef struct dom0_getvcpuinfo dom0_getvcpuinfo_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_getvcpuinfo_t);
++typedef struct xen_domctl_getvcpuinfo xen_domctl_getvcpuinfo_t;
++DEFINE_XEN_GUEST_HANDLE(xen_domctl_getvcpuinfo_t);
 +
-+#define DOM0_GETDOMAININFOLIST   38
-+struct dom0_getdomaininfolist {
-+    /* IN variables. */
-+    domid_t               first_domain;
-+    uint32_t              max_domains;
-+    XEN_GUEST_HANDLE(dom0_getdomaininfo_t) buffer;
-+    /* OUT variables. */
-+    uint32_t              num_domains;
-+};
-+typedef struct dom0_getdomaininfolist dom0_getdomaininfolist_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_getdomaininfolist_t);
 +
-+#define DOM0_PLATFORM_QUIRK      39
-+#define QUIRK_NOIRQBALANCING      1 /* Do not restrict IO-APIC RTE targets */
-+#define QUIRK_IOAPIC_BAD_REGSEL   2 /* IO-APIC REGSEL forgets its value    */
-+#define QUIRK_IOAPIC_GOOD_REGSEL  3 /* IO-APIC REGSEL behaves properly     */
-+struct dom0_platform_quirk {
-+    /* IN variables. */
-+    uint32_t quirk_id;
++/* Get/set which physical cpus a vcpu can execute on. */
++#define XEN_DOMCTL_setvcpuaffinity    9
++#define XEN_DOMCTL_getvcpuaffinity   25
++struct xen_domctl_vcpuaffinity {
++    uint32_t  vcpu;              /* IN */
++    struct xenctl_cpumap cpumap; /* IN/OUT */
 +};
-+typedef struct dom0_platform_quirk dom0_platform_quirk_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_platform_quirk_t);
++typedef struct xen_domctl_vcpuaffinity xen_domctl_vcpuaffinity_t;
++DEFINE_XEN_GUEST_HANDLE(xen_domctl_vcpuaffinity_t);
 +
-+#define DOM0_PHYSICAL_MEMORY_MAP 40   /* Unimplemented from 3.0.3 onwards */
-+struct dom0_memory_map_entry {
-+    uint64_t start, end;
-+    uint32_t flags; /* reserved */
-+    uint8_t  is_ram;
-+};
-+typedef struct dom0_memory_map_entry dom0_memory_map_entry_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_memory_map_entry_t);
 +
-+struct dom0_physical_memory_map {
-+    /* IN variables. */
-+    uint32_t max_map_entries;
-+    /* OUT variables. */
-+    uint32_t nr_map_entries;
-+    XEN_GUEST_HANDLE(dom0_memory_map_entry_t) memory_map;
++#define XEN_DOMCTL_max_vcpus         15
++struct xen_domctl_max_vcpus {
++    uint32_t max;           /* maximum number of vcpus */
 +};
-+typedef struct dom0_physical_memory_map dom0_physical_memory_map_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_physical_memory_map_t);
++typedef struct xen_domctl_max_vcpus xen_domctl_max_vcpus_t;
++DEFINE_XEN_GUEST_HANDLE(xen_domctl_max_vcpus_t);
 +
-+#define DOM0_MAX_VCPUS 41
-+struct dom0_max_vcpus {
-+    domid_t  domain;        /* domain to be affected */
-+    uint32_t max;           /* maximum number of vcpus */
++
++#define XEN_DOMCTL_scheduler_op      16
++/* Scheduler types. */
++#define XEN_SCHEDULER_SEDF     4
++#define XEN_SCHEDULER_CREDIT   5
++/* Set or get info? */
++#define XEN_DOMCTL_SCHEDOP_putinfo 0
++#define XEN_DOMCTL_SCHEDOP_getinfo 1
++struct xen_domctl_scheduler_op {
++    uint32_t sched_id;  /* XEN_SCHEDULER_* */
++    uint32_t cmd;       /* XEN_DOMCTL_SCHEDOP_* */
++    union {
++        struct xen_domctl_sched_sedf {
++            uint64_t period;
++            uint64_t slice;
++            uint64_t latency;
++            uint32_t extratime;
++            uint32_t weight;
++        } sedf;
++        struct xen_domctl_sched_credit {
++            uint16_t weight;
++            uint16_t cap;
++        } credit;
++    } u;
 +};
-+typedef struct dom0_max_vcpus dom0_max_vcpus_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_max_vcpus_t);
++typedef struct xen_domctl_scheduler_op xen_domctl_scheduler_op_t;
++DEFINE_XEN_GUEST_HANDLE(xen_domctl_scheduler_op_t);
++
 +
-+#define DOM0_SETDOMAINHANDLE 44
-+struct dom0_setdomainhandle {
-+    domid_t domain;
++#define XEN_DOMCTL_setdomainhandle   17
++struct xen_domctl_setdomainhandle {
 +    xen_domain_handle_t handle;
 +};
-+typedef struct dom0_setdomainhandle dom0_setdomainhandle_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_setdomainhandle_t);
++typedef struct xen_domctl_setdomainhandle xen_domctl_setdomainhandle_t;
++DEFINE_XEN_GUEST_HANDLE(xen_domctl_setdomainhandle_t);
 +
-+#define DOM0_SETDEBUGGING 45
-+struct dom0_setdebugging {
-+    domid_t domain;
++
++#define XEN_DOMCTL_setdebugging      18
++struct xen_domctl_setdebugging {
 +    uint8_t enable;
 +};
-+typedef struct dom0_setdebugging dom0_setdebugging_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_setdebugging_t);
++typedef struct xen_domctl_setdebugging xen_domctl_setdebugging_t;
++DEFINE_XEN_GUEST_HANDLE(xen_domctl_setdebugging_t);
++
 +
-+#define DOM0_IRQ_PERMISSION 46
-+struct dom0_irq_permission {
-+    domid_t domain;          /* domain to be affected */
++#define XEN_DOMCTL_irq_permission    19
++struct xen_domctl_irq_permission {
 +    uint8_t pirq;
 +    uint8_t allow_access;    /* flag to specify enable/disable of IRQ access */
 +};
-+typedef struct dom0_irq_permission dom0_irq_permission_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_irq_permission_t);
++typedef struct xen_domctl_irq_permission xen_domctl_irq_permission_t;
++DEFINE_XEN_GUEST_HANDLE(xen_domctl_irq_permission_t);
 +
-+#define DOM0_IOMEM_PERMISSION 47
-+struct dom0_iomem_permission {
-+    domid_t  domain;          /* domain to be affected */
-+    xen_pfn_t first_mfn;      /* first page (physical page number) in range */
++
++#define XEN_DOMCTL_iomem_permission  20
++struct xen_domctl_iomem_permission {
++    uint64_t first_mfn;       /* first page (physical page number) in range */
 +    uint64_t nr_mfns;         /* number of pages in range (>0) */
-+    uint8_t allow_access;     /* allow (!0) or deny (0) access to range? */
++    uint8_t  allow_access;    /* allow (!0) or deny (0) access to range? */
++};
++typedef struct xen_domctl_iomem_permission xen_domctl_iomem_permission_t;
++DEFINE_XEN_GUEST_HANDLE(xen_domctl_iomem_permission_t);
++
++
++#define XEN_DOMCTL_ioport_permission 21
++struct xen_domctl_ioport_permission {
++    uint32_t first_port;              /* first port int range */
++    uint32_t nr_ports;                /* size of port range */
++    uint8_t  allow_access;            /* allow or deny access to range? */
 +};
-+typedef struct dom0_iomem_permission dom0_iomem_permission_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_iomem_permission_t);
++typedef struct xen_domctl_ioport_permission xen_domctl_ioport_permission_t;
++DEFINE_XEN_GUEST_HANDLE(xen_domctl_ioport_permission_t);
 +
-+#define DOM0_HYPERCALL_INIT   48
-+struct dom0_hypercall_init {
-+    domid_t   domain;          /* domain to be affected */
-+    xen_pfn_t gmfn;            /* GMFN to be initialised */
++#define XEN_DOMCTL_hypercall_init    22
++struct xen_domctl_hypercall_init {
++    uint64_t  gmfn;            /* GMFN to be initialised */
 +};
-+typedef struct dom0_hypercall_init dom0_hypercall_init_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_hypercall_init_t);
++typedef struct xen_domctl_hypercall_init xen_domctl_hypercall_init_t;
++DEFINE_XEN_GUEST_HANDLE(xen_domctl_hypercall_init_t);
 +
-+#define DOM0_DOMAIN_SETUP     49
++#define XEN_DOMCTL_arch_setup        23
 +#define _XEN_DOMAINSETUP_hvm_guest 0
 +#define XEN_DOMAINSETUP_hvm_guest  (1UL<<_XEN_DOMAINSETUP_hvm_guest)
-+#define _XEN_DOMAINSETUP_query 1	/* Get parameters (for save)  */
++#define _XEN_DOMAINSETUP_query 1 /* Get parameters (for save)  */
 +#define XEN_DOMAINSETUP_query  (1UL<<_XEN_DOMAINSETUP_query)
-+typedef struct dom0_domain_setup {
-+    domid_t  domain;          /* domain to be affected */
-+    unsigned long flags;      /* XEN_DOMAINSETUP_* */
++typedef struct xen_domctl_arch_setup {
++    uint64_t flags;      /* XEN_DOMAINSETUP_* */
 +#ifdef __ia64__
-+    unsigned long bp;         /* mpaddr of boot param area */
-+    unsigned long maxmem;	  /* Highest memory address for MDT.  */
-+    unsigned long xsi_va;     /* Xen shared_info area virtual address.  */
-+    unsigned int hypercall_imm;	/* Break imm for Xen hypercalls.  */
++    uint64_t bp;            /* mpaddr of boot param area */
++    uint64_t maxmem;        /* Highest memory address for MDT.  */
++    uint64_t xsi_va;        /* Xen shared_info area virtual address.  */
++    uint32_t hypercall_imm; /* Break imm for Xen hypercalls.  */
 +#endif
-+} dom0_domain_setup_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_domain_setup_t);
++} xen_domctl_arch_setup_t;
++DEFINE_XEN_GUEST_HANDLE(xen_domctl_arch_setup_t);
 +
-+#define DOM0_SETTIMEOFFSET    50
-+struct dom0_settimeoffset {
-+    domid_t  domain;
++#define XEN_DOMCTL_settimeoffset     24
++struct xen_domctl_settimeoffset {
 +    int32_t  time_offset_seconds; /* applied to domain wallclock time */
 +};
-+typedef struct dom0_settimeoffset dom0_settimeoffset_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_settimeoffset_t);
++typedef struct xen_domctl_settimeoffset xen_domctl_settimeoffset_t;
++DEFINE_XEN_GUEST_HANDLE(xen_domctl_settimeoffset_t);
 +
-+struct dom0_op {
++struct xen_domctl {
 +    uint32_t cmd;
-+    uint32_t interface_version; /* DOM0_INTERFACE_VERSION */
++    uint32_t interface_version; /* XEN_DOMCTL_INTERFACE_VERSION */
++    domid_t  domain;
 +    union {
-+        struct dom0_createdomain      createdomain;
-+        struct dom0_pausedomain       pausedomain;
-+        struct dom0_unpausedomain     unpausedomain;
-+        struct dom0_destroydomain     destroydomain;
-+        struct dom0_getmemlist        getmemlist;
-+        struct sched_ctl_cmd          schedctl;
-+        struct sched_adjdom_cmd       adjustdom;
-+        struct dom0_setvcpucontext    setvcpucontext;
-+        struct dom0_getdomaininfo     getdomaininfo;
-+        struct dom0_getpageframeinfo  getpageframeinfo;
-+        struct dom0_msr               msr;
-+        struct dom0_settime           settime;
-+        struct dom0_readconsole       readconsole;
-+        struct dom0_setvcpuaffinity   setvcpuaffinity;
-+        struct dom0_tbufcontrol       tbufcontrol;
-+        struct dom0_physinfo          physinfo;
-+        struct dom0_sched_id          sched_id;
-+        struct dom0_shadow_control    shadow_control;
-+        struct dom0_setdomainmaxmem   setdomainmaxmem;
-+        struct dom0_getpageframeinfo2 getpageframeinfo2;
-+        struct dom0_add_memtype       add_memtype;
-+        struct dom0_del_memtype       del_memtype;
-+        struct dom0_read_memtype      read_memtype;
-+        struct dom0_perfccontrol      perfccontrol;
-+        struct dom0_microcode         microcode;
-+        struct dom0_ioport_permission ioport_permission;
-+        struct dom0_getvcpucontext    getvcpucontext;
-+        struct dom0_getvcpuinfo       getvcpuinfo;
-+        struct dom0_getdomaininfolist getdomaininfolist;
-+        struct dom0_platform_quirk    platform_quirk;
-+        struct dom0_physical_memory_map physical_memory_map;
-+        struct dom0_max_vcpus         max_vcpus;
-+        struct dom0_setdomainhandle   setdomainhandle;
-+        struct dom0_setdebugging      setdebugging;
-+        struct dom0_irq_permission    irq_permission;
-+        struct dom0_iomem_permission  iomem_permission;
-+        struct dom0_hypercall_init    hypercall_init;
-+        struct dom0_domain_setup      domain_setup;
-+        struct dom0_settimeoffset     settimeoffset;
-+        uint8_t                       pad[128];
++        struct xen_domctl_createdomain      createdomain;
++        struct xen_domctl_getdomaininfo     getdomaininfo;
++        struct xen_domctl_getmemlist        getmemlist;
++        struct xen_domctl_getpageframeinfo  getpageframeinfo;
++        struct xen_domctl_getpageframeinfo2 getpageframeinfo2;
++        struct xen_domctl_vcpuaffinity      vcpuaffinity;
++        struct xen_domctl_shadow_op         shadow_op;
++        struct xen_domctl_max_mem           max_mem;
++        struct xen_domctl_vcpucontext       vcpucontext;
++        struct xen_domctl_getvcpuinfo       getvcpuinfo;
++        struct xen_domctl_max_vcpus         max_vcpus;
++        struct xen_domctl_scheduler_op      scheduler_op;
++        struct xen_domctl_setdomainhandle   setdomainhandle;
++        struct xen_domctl_setdebugging      setdebugging;
++        struct xen_domctl_irq_permission    irq_permission;
++        struct xen_domctl_iomem_permission  iomem_permission;
++        struct xen_domctl_ioport_permission ioport_permission;
++        struct xen_domctl_hypercall_init    hypercall_init;
++        struct xen_domctl_arch_setup        arch_setup;
++        struct xen_domctl_settimeoffset     settimeoffset;
++        uint8_t                             pad[128];
 +    } u;
 +};
-+typedef struct dom0_op dom0_op_t;
-+DEFINE_XEN_GUEST_HANDLE(dom0_op_t);
++typedef struct xen_domctl xen_domctl_t;
++DEFINE_XEN_GUEST_HANDLE(xen_domctl_t);
 +
-+#endif /* __XEN_PUBLIC_DOM0_OPS_H__ */
++#endif /* __XEN_PUBLIC_DOMCTL_H__ */
 +
 +/*
 + * Local variables:
@@ -89720,9 +87376,9 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/elfnote.h linux-2.6.18-rc5-xen/include/xen/interface/elfnote.h
---- linux-2.6.18-rc5/include/xen/interface/elfnote.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/elfnote.h	2006-09-01 00:09:12.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/elfnote.h linux-2.6.18-rc6-xen/include/xen/interface/elfnote.h
+--- linux-2.6.18-rc6/include/xen/interface/elfnote.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/elfnote.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,133 @@
 +/******************************************************************************
 + * elfnote.h
@@ -89857,9 +87513,9 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/event_channel.h linux-2.6.18-rc5-xen/include/xen/interface/event_channel.h
---- linux-2.6.18-rc5/include/xen/interface/event_channel.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/event_channel.h	2006-07-20 15:57:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/event_channel.h linux-2.6.18-rc6-xen/include/xen/interface/event_channel.h
+--- linux-2.6.18-rc6/include/xen/interface/event_channel.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/event_channel.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,233 @@
 +/******************************************************************************
 + * event_channel.h
@@ -90094,9 +87750,9 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/features.h linux-2.6.18-rc5-xen/include/xen/interface/features.h
---- linux-2.6.18-rc5/include/xen/interface/features.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/features.h	2006-07-20 15:57:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/features.h linux-2.6.18-rc6-xen/include/xen/interface/features.h
+--- linux-2.6.18-rc6/include/xen/interface/features.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/features.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,53 @@
 +/******************************************************************************
 + * features.h
@@ -90151,9 +87807,9 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/grant_table.h linux-2.6.18-rc5-xen/include/xen/interface/grant_table.h
---- linux-2.6.18-rc5/include/xen/interface/grant_table.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/grant_table.h	2006-08-14 15:07:22.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/grant_table.h linux-2.6.18-rc6-xen/include/xen/interface/grant_table.h
+--- linux-2.6.18-rc6/include/xen/interface/grant_table.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/grant_table.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,362 @@
 +/******************************************************************************
 + * grant_table.h
@@ -90517,9 +88173,9 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/hvm/e820.h linux-2.6.18-rc5-xen/include/xen/interface/hvm/e820.h
---- linux-2.6.18-rc5/include/xen/interface/hvm/e820.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/hvm/e820.h	2006-09-01 00:09:12.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/hvm/e820.h linux-2.6.18-rc6-xen/include/xen/interface/hvm/e820.h
+--- linux-2.6.18-rc6/include/xen/interface/hvm/e820.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/hvm/e820.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,32 @@
 +#ifndef __XEN_PUBLIC_HVM_E820_H__
 +#define __XEN_PUBLIC_HVM_E820_H__
@@ -90553,9 +88209,9 @@
 +#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-rc5/include/xen/interface/hvm/hvm_info_table.h linux-2.6.18-rc5-xen/include/xen/interface/hvm/hvm_info_table.h
---- linux-2.6.18-rc5/include/xen/interface/hvm/hvm_info_table.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/hvm/hvm_info_table.h	2006-08-14 15:07:22.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/hvm/hvm_info_table.h linux-2.6.18-rc6-xen/include/xen/interface/hvm/hvm_info_table.h
+--- linux-2.6.18-rc6/include/xen/interface/hvm/hvm_info_table.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/hvm/hvm_info_table.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,22 @@
 +/******************************************************************************
 + * hvm/hvm_info_table.h
@@ -90579,9 +88235,9 @@
 +};
 +
 +#endif /* __XEN_PUBLIC_HVM_HVM_INFO_TABLE_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/hvm/ioreq.h linux-2.6.18-rc5-xen/include/xen/interface/hvm/ioreq.h
---- linux-2.6.18-rc5/include/xen/interface/hvm/ioreq.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/hvm/ioreq.h	2006-08-14 15:07:22.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/hvm/ioreq.h linux-2.6.18-rc6-xen/include/xen/interface/hvm/ioreq.h
+--- linux-2.6.18-rc6/include/xen/interface/hvm/ioreq.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/hvm/ioreq.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,99 @@
 +/*
 + * ioreq.h: I/O request definitions for device models
@@ -90682,9 +88338,9 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/hvm/params.h linux-2.6.18-rc5-xen/include/xen/interface/hvm/params.h
---- linux-2.6.18-rc5/include/xen/interface/hvm/params.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/hvm/params.h	2006-08-14 15:07:22.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/hvm/params.h linux-2.6.18-rc6-xen/include/xen/interface/hvm/params.h
+--- linux-2.6.18-rc6/include/xen/interface/hvm/params.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/hvm/params.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,24 @@
 +#ifndef __XEN_PUBLIC_HVM_PARAMS_H__
 +#define __XEN_PUBLIC_HVM_PARAMS_H__
@@ -90710,9 +88366,9 @@
 +DEFINE_XEN_GUEST_HANDLE(xen_hvm_param_t);
 +
 +#endif /* __XEN_PUBLIC_HVM_PARAMS_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/hvm/vmx_assist.h linux-2.6.18-rc5-xen/include/xen/interface/hvm/vmx_assist.h
---- linux-2.6.18-rc5/include/xen/interface/hvm/vmx_assist.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/hvm/vmx_assist.h	2006-07-20 15:57:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/hvm/vmx_assist.h linux-2.6.18-rc6-xen/include/xen/interface/hvm/vmx_assist.h
+--- linux-2.6.18-rc6/include/xen/interface/hvm/vmx_assist.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/hvm/vmx_assist.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,98 @@
 +/*
 + * vmx_assist.h: Context definitions for the VMXASSIST world switch.
@@ -90812,9 +88468,9 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/io/blkif.h linux-2.6.18-rc5-xen/include/xen/interface/io/blkif.h
---- linux-2.6.18-rc5/include/xen/interface/io/blkif.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/io/blkif.h	2006-07-20 15:57:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/io/blkif.h linux-2.6.18-rc6-xen/include/xen/interface/io/blkif.h
+--- linux-2.6.18-rc6/include/xen/interface/io/blkif.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/io/blkif.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,87 @@
 +/******************************************************************************
 + * blkif.h
@@ -90903,9 +88559,9 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/io/console.h linux-2.6.18-rc5-xen/include/xen/interface/io/console.h
---- linux-2.6.18-rc5/include/xen/interface/io/console.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/io/console.h	2006-07-20 15:57:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/io/console.h linux-2.6.18-rc6-xen/include/xen/interface/io/console.h
+--- linux-2.6.18-rc6/include/xen/interface/io/console.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/io/console.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,33 @@
 +/******************************************************************************
 + * console.h
@@ -90940,9 +88596,9 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/io/netif.h linux-2.6.18-rc5-xen/include/xen/interface/io/netif.h
---- linux-2.6.18-rc5/include/xen/interface/io/netif.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/io/netif.h	2006-08-14 15:07:22.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/io/netif.h linux-2.6.18-rc6-xen/include/xen/interface/io/netif.h
+--- linux-2.6.18-rc6/include/xen/interface/io/netif.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/io/netif.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,166 @@
 +/******************************************************************************
 + * netif.h
@@ -91110,9 +88766,9 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/io/pciif.h linux-2.6.18-rc5-xen/include/xen/interface/io/pciif.h
---- linux-2.6.18-rc5/include/xen/interface/io/pciif.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/io/pciif.h	2006-07-20 15:57:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/io/pciif.h linux-2.6.18-rc6-xen/include/xen/interface/io/pciif.h
+--- linux-2.6.18-rc6/include/xen/interface/io/pciif.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/io/pciif.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,55 @@
 +/*
 + * PCI Backend/Frontend Common Data Structures & Macros
@@ -91169,9 +88825,9 @@
 +};
 +
 +#endif /* __XEN_PCI_COMMON_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/io/ring.h linux-2.6.18-rc5-xen/include/xen/interface/io/ring.h
---- linux-2.6.18-rc5/include/xen/interface/io/ring.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/io/ring.h	2006-07-20 15:57:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/io/ring.h linux-2.6.18-rc6-xen/include/xen/interface/io/ring.h
+--- linux-2.6.18-rc6/include/xen/interface/io/ring.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/io/ring.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,273 @@
 +/******************************************************************************
 + * ring.h
@@ -91446,9 +89102,9 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/io/tpmif.h linux-2.6.18-rc5-xen/include/xen/interface/io/tpmif.h
---- linux-2.6.18-rc5/include/xen/interface/io/tpmif.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/io/tpmif.h	2006-07-20 15:57:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/io/tpmif.h linux-2.6.18-rc6-xen/include/xen/interface/io/tpmif.h
+--- linux-2.6.18-rc6/include/xen/interface/io/tpmif.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/io/tpmif.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,59 @@
 +/******************************************************************************
 + * tpmif.h
@@ -91509,9 +89165,9 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/io/xenbus.h linux-2.6.18-rc5-xen/include/xen/interface/io/xenbus.h
---- linux-2.6.18-rc5/include/xen/interface/io/xenbus.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/io/xenbus.h	2006-07-20 15:57:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/io/xenbus.h linux-2.6.18-rc6-xen/include/xen/interface/io/xenbus.h
+--- linux-2.6.18-rc6/include/xen/interface/io/xenbus.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/io/xenbus.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,45 @@
 +/*****************************************************************************
 + * xenbus.h
@@ -91558,9 +89214,9 @@
 +typedef enum xenbus_state XenbusState;
 +
 +#endif /* _XEN_PUBLIC_IO_XENBUS_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/io/xs_wire.h linux-2.6.18-rc5-xen/include/xen/interface/io/xs_wire.h
---- linux-2.6.18-rc5/include/xen/interface/io/xs_wire.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/io/xs_wire.h	2006-07-20 15:57:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/io/xs_wire.h linux-2.6.18-rc6-xen/include/xen/interface/io/xs_wire.h
+--- linux-2.6.18-rc6/include/xen/interface/io/xs_wire.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/io/xs_wire.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,97 @@
 +/*
 + * Details of the "wire" protocol between Xen Store Daemon and client
@@ -91659,9 +89315,9 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/memory.h linux-2.6.18-rc5-xen/include/xen/interface/memory.h
---- linux-2.6.18-rc5/include/xen/interface/memory.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/memory.h	2006-07-20 15:57:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/memory.h linux-2.6.18-rc6-xen/include/xen/interface/memory.h
+--- linux-2.6.18-rc6/include/xen/interface/memory.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/memory.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,243 @@
 +/******************************************************************************
 + * memory.h
@@ -91906,9 +89562,9 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/nmi.h linux-2.6.18-rc5-xen/include/xen/interface/nmi.h
---- linux-2.6.18-rc5/include/xen/interface/nmi.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/nmi.h	2006-07-20 15:57:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/nmi.h linux-2.6.18-rc6-xen/include/xen/interface/nmi.h
+--- linux-2.6.18-rc6/include/xen/interface/nmi.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/nmi.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,60 @@
 +/******************************************************************************
 + * nmi.h
@@ -91970,9 +89626,9 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/physdev.h linux-2.6.18-rc5-xen/include/xen/interface/physdev.h
---- linux-2.6.18-rc5/include/xen/interface/physdev.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/physdev.h	2006-07-20 15:57:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/physdev.h linux-2.6.18-rc6-xen/include/xen/interface/physdev.h
+--- linux-2.6.18-rc6/include/xen/interface/physdev.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/physdev.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,149 @@
 +
 +#ifndef __XEN_PUBLIC_PHYSDEV_H__
@@ -92123,56 +89779,125 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/sched_ctl.h linux-2.6.18-rc5-xen/include/xen/interface/sched_ctl.h
---- linux-2.6.18-rc5/include/xen/interface/sched_ctl.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/sched_ctl.h	2006-09-01 00:09:12.000000000 +0200
-@@ -0,0 +1,56 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/platform.h linux-2.6.18-rc6-xen/include/xen/interface/platform.h
+--- linux-2.6.18-rc6/include/xen/interface/platform.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/platform.h	2006-09-04 16:31:19.000000000 +0200
+@@ -0,0 +1,125 @@
 +/******************************************************************************
-+ * Generic scheduler control interface.
-+ *
-+ * Mark Williamson, (C) 2004 Intel Research Cambridge
++ * platform.h
++ * 
++ * Hardware platform operations. Intended for use by domain-0 kernel.
++ * 
++ * Copyright (c) 2002-2006, K Fraser
 + */
 +
-+#ifndef __XEN_PUBLIC_SCHED_CTL_H__
-+#define __XEN_PUBLIC_SCHED_CTL_H__
++#ifndef __XEN_PUBLIC_PLATFORM_H__
++#define __XEN_PUBLIC_PLATFORM_H__
 +
-+/* Scheduler types. */
-+#define SCHED_SEDF     4
-+#define SCHED_CREDIT   5
++#include "xen.h"
 +
-+/* Set or get info? */
-+#define SCHED_INFO_PUT 0
-+#define SCHED_INFO_GET 1
++#define XENPF_INTERFACE_VERSION 0x03000001
 +
 +/*
-+ * Generic scheduler control command - used to adjust system-wide scheduler
-+ * parameters
++ * Set clock such that it would read <secs,nsecs> after 00:00:00 UTC,
++ * 1 January, 1970 if the current system time was <system_time>.
 + */
-+struct sched_ctl_cmd {
-+    uint32_t sched_id;
-+    uint32_t direction;
++#define XENPF_settime             17
++struct xenpf_settime {
++    /* IN variables. */
++    uint32_t secs;
++    uint32_t nsecs;
++    uint64_t system_time;
 +};
++typedef struct xenpf_settime xenpf_settime_t;
++DEFINE_XEN_GUEST_HANDLE(xenpf_settime_t);
 +
-+struct sched_adjdom_cmd {
-+    uint32_t sched_id;
-+    uint32_t direction;
-+    domid_t  domain;
++/*
++ * Request memory range (@mfn, @mfn+ at nr_mfns-1) to have type @type.
++ * On x86, @type is an architecture-defined MTRR memory type.
++ * On success, returns the MTRR that was used (@reg) and a handle that can
++ * be passed to XENPF_DEL_MEMTYPE to accurately tear down the new setting.
++ * (x86-specific).
++ */
++#define XENPF_add_memtype         31
++struct xenpf_add_memtype {
++    /* IN variables. */
++    xen_pfn_t mfn;
++    uint64_t nr_mfns;
++    uint32_t type;
++    /* OUT variables. */
++    uint32_t handle;
++    uint32_t reg;
++};
++typedef struct xenpf_add_memtype xenpf_add_memtype_t;
++DEFINE_XEN_GUEST_HANDLE(xenpf_add_memtype_t);
++
++/*
++ * Tear down an existing memory-range type. If @handle is remembered then it
++ * should be passed in to accurately tear down the correct setting (in case
++ * of overlapping memory regions with differing types). If it is not known
++ * then @handle should be set to zero. In all cases @reg must be set.
++ * (x86-specific).
++ */
++#define XENPF_del_memtype         32
++struct xenpf_del_memtype {
++    /* IN variables. */
++    uint32_t handle;
++    uint32_t reg;
++};
++typedef struct xenpf_del_memtype xenpf_del_memtype_t;
++DEFINE_XEN_GUEST_HANDLE(xenpf_del_memtype_t);
++
++/* Read current type of an MTRR (x86-specific). */
++#define XENPF_read_memtype        33
++struct xenpf_read_memtype {
++    /* IN variables. */
++    uint32_t reg;
++    /* OUT variables. */
++    xen_pfn_t mfn;
++    uint64_t nr_mfns;
++    uint32_t type;
++};
++typedef struct xenpf_read_memtype xenpf_read_memtype_t;
++DEFINE_XEN_GUEST_HANDLE(xenpf_read_memtype_t);
++
++#define XENPF_microcode_update    35
++struct xenpf_microcode_update {
++    /* IN variables. */
++    XEN_GUEST_HANDLE(void) data;      /* Pointer to microcode data */
++    uint32_t length;                  /* Length of microcode data. */
++};
++typedef struct xenpf_microcode_update xenpf_microcode_update_t;
++DEFINE_XEN_GUEST_HANDLE(xenpf_microcode_update_t);
++
++#define XENPF_platform_quirk      39
++#define QUIRK_NOIRQBALANCING      1 /* Do not restrict IO-APIC RTE targets */
++#define QUIRK_IOAPIC_BAD_REGSEL   2 /* IO-APIC REGSEL forgets its value    */
++#define QUIRK_IOAPIC_GOOD_REGSEL  3 /* IO-APIC REGSEL behaves properly     */
++struct xenpf_platform_quirk {
++    /* IN variables. */
++    uint32_t quirk_id;
++};
++typedef struct xenpf_platform_quirk xenpf_platform_quirk_t;
++DEFINE_XEN_GUEST_HANDLE(xenpf_platform_quirk_t);
++
++struct xen_platform_op {
++    uint32_t cmd;
++    uint32_t interface_version; /* XENPF_INTERFACE_VERSION */
 +    union {
-+        struct sedf_adjdom {
-+            uint64_t period;
-+            uint64_t slice;
-+            uint64_t latency;
-+            uint32_t extratime;
-+            uint32_t weight;
-+        } sedf;
-+        struct sched_credit_adjdom {
-+            uint16_t weight;
-+            uint16_t cap;
-+        } credit;
++        struct xenpf_settime           settime;
++        struct xenpf_add_memtype       add_memtype;
++        struct xenpf_del_memtype       del_memtype;
++        struct xenpf_read_memtype      read_memtype;
++        struct xenpf_microcode_update  microcode;
++        struct xenpf_platform_quirk    platform_quirk;
++        uint8_t                        pad[128];
 +    } u;
 +};
++typedef struct xen_platform_op xen_platform_op_t;
++DEFINE_XEN_GUEST_HANDLE(xen_platform_op_t);
 +
-+#endif /* __XEN_PUBLIC_SCHED_CTL_H__ */
++#endif /* __XEN_PUBLIC_PLATFORM_H__ */
 +
 +/*
 + * Local variables:
@@ -92183,9 +89908,9 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/sched.h linux-2.6.18-rc5-xen/include/xen/interface/sched.h
---- linux-2.6.18-rc5/include/xen/interface/sched.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/sched.h	2006-07-20 15:57:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/sched.h linux-2.6.18-rc6-xen/include/xen/interface/sched.h
+--- linux-2.6.18-rc6/include/xen/interface/sched.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/sched.h	2006-09-04 16:31:19.000000000 +0200
 @@ -0,0 +1,103 @@
 +/******************************************************************************
 + * sched.h
@@ -92290,9 +90015,164 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/trace.h linux-2.6.18-rc5-xen/include/xen/interface/trace.h
---- linux-2.6.18-rc5/include/xen/interface/trace.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/trace.h	2006-07-20 15:57:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/sysctl.h linux-2.6.18-rc6-xen/include/xen/interface/sysctl.h
+--- linux-2.6.18-rc6/include/xen/interface/sysctl.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/sysctl.h	2006-09-04 16:31:19.000000000 +0200
+@@ -0,0 +1,151 @@
++/******************************************************************************
++ * sysctl.h
++ * 
++ * System management operations. For use by node control stack.
++ * 
++ * Copyright (c) 2002-2006, K Fraser
++ */
++
++#ifndef __XEN_PUBLIC_SYSCTL_H__
++#define __XEN_PUBLIC_SYSCTL_H__
++
++#if !defined(__XEN__) && !defined(__XEN_TOOLS__)
++#error "sysctl operations are intended for use by node control tools only"
++#endif
++
++#include "xen.h"
++#include "domctl.h"
++
++#define XEN_SYSCTL_INTERFACE_VERSION 0x00000002
++
++/*
++ * Read console content from Xen buffer ring.
++ */
++#define XEN_SYSCTL_readconsole       1
++struct xen_sysctl_readconsole {
++    /* IN variables. */
++    uint32_t clear;                /* Non-zero -> clear after reading. */
++    XEN_GUEST_HANDLE(char) buffer; /* Buffer start */
++    /* IN/OUT variables. */
++    uint32_t count;            /* In: Buffer size;  Out: Used buffer size  */
++};
++typedef struct xen_sysctl_readconsole xen_sysctl_readconsole_t;
++DEFINE_XEN_GUEST_HANDLE(xen_sysctl_readconsole_t);
++
++/* Get trace buffers machine base address */
++#define XEN_SYSCTL_tbuf_op           2
++struct xen_sysctl_tbuf_op {
++    /* IN variables */
++#define XEN_SYSCTL_TBUFOP_get_info     0
++#define XEN_SYSCTL_TBUFOP_set_cpu_mask 1
++#define XEN_SYSCTL_TBUFOP_set_evt_mask 2
++#define XEN_SYSCTL_TBUFOP_set_size     3
++#define XEN_SYSCTL_TBUFOP_enable       4
++#define XEN_SYSCTL_TBUFOP_disable      5
++    uint32_t cmd;
++    /* IN/OUT variables */
++    struct xenctl_cpumap cpu_mask;
++    uint32_t             evt_mask;
++    /* OUT variables */
++    uint64_t buffer_mfn;
++    uint32_t size;
++};
++typedef struct xen_sysctl_tbuf_op xen_sysctl_tbuf_op_t;
++DEFINE_XEN_GUEST_HANDLE(xen_sysctl_tbuf_op_t);
++
++/*
++ * Get physical information about the host machine
++ */
++#define XEN_SYSCTL_physinfo          3
++struct xen_sysctl_physinfo {
++    uint32_t threads_per_core;
++    uint32_t cores_per_socket;
++    uint32_t sockets_per_node;
++    uint32_t nr_nodes;
++    uint32_t cpu_khz;
++    uint64_t total_pages;
++    uint64_t free_pages;
++    uint64_t scrub_pages;
++    uint32_t hw_cap[8];
++};
++typedef struct xen_sysctl_physinfo xen_sysctl_physinfo_t;
++DEFINE_XEN_GUEST_HANDLE(xen_sysctl_physinfo_t);
++
++/*
++ * Get the ID of the current scheduler.
++ */
++#define XEN_SYSCTL_sched_id          4
++struct xen_sysctl_sched_id {
++    /* OUT variable */
++    uint32_t sched_id;
++};
++typedef struct xen_sysctl_sched_id xen_sysctl_sched_id_t;
++DEFINE_XEN_GUEST_HANDLE(xen_sysctl_sched_id_t);
++
++/* Interface for controlling Xen software performance counters. */
++#define XEN_SYSCTL_perfc_op          5
++/* Sub-operations: */
++#define XEN_SYSCTL_PERFCOP_reset 1   /* Reset all counters to zero. */
++#define XEN_SYSCTL_PERFCOP_query 2   /* Get perfctr information. */
++struct xen_sysctl_perfc_desc {
++    char         name[80];             /* name of perf counter */
++    uint32_t     nr_vals;              /* number of values for this counter */
++};
++typedef struct xen_sysctl_perfc_desc xen_sysctl_perfc_desc_t;
++DEFINE_XEN_GUEST_HANDLE(xen_sysctl_perfc_desc_t);
++typedef uint32_t xen_sysctl_perfc_val_t;
++DEFINE_XEN_GUEST_HANDLE(xen_sysctl_perfc_val_t);
++
++struct xen_sysctl_perfc_op {
++    /* IN variables. */
++    uint32_t       cmd;                /*  XEN_SYSCTL_PERFCOP_??? */
++    /* OUT variables. */
++    uint32_t       nr_counters;       /*  number of counters description  */
++    uint32_t       nr_vals;			  /*  number of values  */
++    /* counter information (or NULL) */
++    XEN_GUEST_HANDLE(xen_sysctl_perfc_desc_t) desc;
++    /* counter values (or NULL) */
++    XEN_GUEST_HANDLE(xen_sysctl_perfc_val_t) val;
++};
++typedef struct xen_sysctl_perfc_op xen_sysctl_perfc_op_t;
++DEFINE_XEN_GUEST_HANDLE(xen_sysctl_perfc_op_t);
++
++#define XEN_SYSCTL_getdomaininfolist 6
++struct xen_sysctl_getdomaininfolist {
++    /* IN variables. */
++    domid_t               first_domain;
++    uint32_t              max_domains;
++    XEN_GUEST_HANDLE(xen_domctl_getdomaininfo_t) buffer;
++    /* OUT variables. */
++    uint32_t              num_domains;
++};
++typedef struct xen_sysctl_getdomaininfolist xen_sysctl_getdomaininfolist_t;
++DEFINE_XEN_GUEST_HANDLE(xen_sysctl_getdomaininfolist_t);
++
++struct xen_sysctl {
++    uint32_t cmd;
++    uint32_t interface_version; /* XEN_SYSCTL_INTERFACE_VERSION */
++    union {
++        struct xen_sysctl_readconsole       readconsole;
++        struct xen_sysctl_tbuf_op           tbuf_op;
++        struct xen_sysctl_physinfo          physinfo;
++        struct xen_sysctl_sched_id          sched_id;
++        struct xen_sysctl_perfc_op          perfc_op;
++        struct xen_sysctl_getdomaininfolist getdomaininfolist;
++        uint8_t                             pad[128];
++    } u;
++};
++typedef struct xen_sysctl xen_sysctl_t;
++DEFINE_XEN_GUEST_HANDLE(xen_sysctl_t);
++
++#endif /* __XEN_PUBLIC_SYSCTL_H__ */
++
++/*
++ * Local variables:
++ * mode: C
++ * c-set-style: "BSD"
++ * c-basic-offset: 4
++ * tab-width: 4
++ * indent-tabs-mode: nil
++ * End:
++ */
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/trace.h linux-2.6.18-rc6-xen/include/xen/interface/trace.h
+--- linux-2.6.18-rc6/include/xen/interface/trace.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/trace.h	2006-09-04 16:31:20.000000000 +0200
 @@ -0,0 +1,87 @@
 +/******************************************************************************
 + * include/public/trace.h
@@ -92381,9 +90261,9 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/vcpu.h linux-2.6.18-rc5-xen/include/xen/interface/vcpu.h
---- linux-2.6.18-rc5/include/xen/interface/vcpu.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/vcpu.h	2006-07-20 15:57:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/vcpu.h linux-2.6.18-rc6-xen/include/xen/interface/vcpu.h
+--- linux-2.6.18-rc6/include/xen/interface/vcpu.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/vcpu.h	2006-09-04 16:31:20.000000000 +0200
 @@ -0,0 +1,121 @@
 +/******************************************************************************
 + * vcpu.h
@@ -92506,9 +90386,9 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/version.h linux-2.6.18-rc5-xen/include/xen/interface/version.h
---- linux-2.6.18-rc5/include/xen/interface/version.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/version.h	2006-08-14 15:07:22.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/version.h linux-2.6.18-rc6-xen/include/xen/interface/version.h
+--- linux-2.6.18-rc6/include/xen/interface/version.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/version.h	2006-09-04 16:31:20.000000000 +0200
 @@ -0,0 +1,73 @@
 +/******************************************************************************
 + * version.h
@@ -92583,9 +90463,9 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/xencomm.h linux-2.6.18-rc5-xen/include/xen/interface/xencomm.h
---- linux-2.6.18-rc5/include/xen/interface/xencomm.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/xencomm.h	2006-07-20 15:57:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/xencomm.h linux-2.6.18-rc6-xen/include/xen/interface/xencomm.h
+--- linux-2.6.18-rc6/include/xen/interface/xencomm.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/xencomm.h	2006-09-04 16:31:20.000000000 +0200
 @@ -0,0 +1,37 @@
 +/*
 + * Copyright (C) 2006 Hollis Blanchard <hollisb at us.ibm.com>, IBM Corporation
@@ -92624,9 +90504,9 @@
 +};
 +
 +#endif /* _XEN_XENCOMM_H_ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/xen-compat.h linux-2.6.18-rc5-xen/include/xen/interface/xen-compat.h
---- linux-2.6.18-rc5/include/xen/interface/xen-compat.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/xen-compat.h	2006-09-01 00:09:12.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/xen-compat.h linux-2.6.18-rc6-xen/include/xen/interface/xen-compat.h
+--- linux-2.6.18-rc6/include/xen/interface/xen-compat.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/xen-compat.h	2006-09-04 16:31:20.000000000 +0200
 @@ -0,0 +1,26 @@
 +/******************************************************************************
 + * xen-compat.h
@@ -92639,7 +90519,7 @@
 +#ifndef __XEN_PUBLIC_XEN_COMPAT_H__
 +#define __XEN_PUBLIC_XEN_COMPAT_H__
 +
-+#define __XEN_LATEST_INTERFACE_VERSION__ 0x00030203
++#define __XEN_LATEST_INTERFACE_VERSION__ 0x00030204
 +
 +#if defined(__XEN__) || defined(__XEN_TOOLS__)
 +/* Xen is built with matching headers and implements the latest interface. */
@@ -92654,10 +90534,10 @@
 +#endif
 +
 +#endif /* __XEN_PUBLIC_XEN_COMPAT_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/xen.h linux-2.6.18-rc5-xen/include/xen/interface/xen.h
---- linux-2.6.18-rc5/include/xen/interface/xen.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/xen.h	2006-09-01 00:09:12.000000000 +0200
-@@ -0,0 +1,558 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/xen.h linux-2.6.18-rc6-xen/include/xen/interface/xen.h
+--- linux-2.6.18-rc6/include/xen/interface/xen.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/xen.h	2006-09-04 16:31:20.000000000 +0200
+@@ -0,0 +1,569 @@
 +/******************************************************************************
 + * xen.h
 + * 
@@ -92694,7 +90574,7 @@
 +#define __HYPERVISOR_set_callbacks         4
 +#define __HYPERVISOR_fpu_taskswitch        5
 +#define __HYPERVISOR_sched_op_compat       6 /* compat since 0x00030101 */
-+#define __HYPERVISOR_dom0_op               7
++#define __HYPERVISOR_platform_op           7
 +#define __HYPERVISOR_set_debugreg          8
 +#define __HYPERVISOR_get_debugreg          9
 +#define __HYPERVISOR_update_descriptor    10
@@ -92721,6 +90601,9 @@
 +#define __HYPERVISOR_event_channel_op     32
 +#define __HYPERVISOR_physdev_op           33
 +#define __HYPERVISOR_hvm_op               34
++#define __HYPERVISOR_sysctl               35
++#define __HYPERVISOR_domctl               36
++#define __HYPERVISOR_kexec_op             37
 +
 +/* Architecture-specific hypercall definitions. */
 +#define __HYPERVISOR_arch_0               48
@@ -92750,6 +90633,11 @@
 +#define __HYPERVISOR_physdev_op __HYPERVISOR_physdev_op_compat
 +#endif
 +
++/* New platform_op hypercall introduced in 0x00030204. */
++#if __XEN_INTERFACE_VERSION__ < 0x00030204
++#define __HYPERVISOR_dom0_op __HYPERVISOR_platform_op
++#endif
++
 +/* 
 + * VIRTUAL INTERRUPTS
 + * 
@@ -93190,14 +91078,17 @@
 +    uint8_t rsvd_size;
 +} dom0_vga_console_info_t;
 +
-+typedef uint64_t cpumap_t;
-+
 +typedef uint8_t xen_domain_handle_t[16];
 +
 +/* Turn a plain number into a C unsigned long constant. */
 +#define __mk_unsigned_long(x) x ## UL
 +#define mk_unsigned_long(x) __mk_unsigned_long(x)
 +
++DEFINE_XEN_GUEST_HANDLE(uint8_t);
++DEFINE_XEN_GUEST_HANDLE(uint16_t);
++DEFINE_XEN_GUEST_HANDLE(uint32_t);
++DEFINE_XEN_GUEST_HANDLE(uint64_t);
++
 +#else /* __ASSEMBLY__ */
 +
 +/* In assembly code we cannot use C numeric constant suffixes. */
@@ -93216,9 +91107,9 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/interface/xenoprof.h linux-2.6.18-rc5-xen/include/xen/interface/xenoprof.h
---- linux-2.6.18-rc5/include/xen/interface/xenoprof.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/interface/xenoprof.h	2006-07-20 15:57:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/interface/xenoprof.h linux-2.6.18-rc6-xen/include/xen/interface/xenoprof.h
+--- linux-2.6.18-rc6/include/xen/interface/xenoprof.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/interface/xenoprof.h	2006-09-04 16:31:20.000000000 +0200
 @@ -0,0 +1,103 @@
 +/******************************************************************************
 + * xenoprof.h
@@ -93323,9 +91214,9 @@
 + * indent-tabs-mode: nil
 + * End:
 + */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/pcifront.h linux-2.6.18-rc5-xen/include/xen/pcifront.h
---- linux-2.6.18-rc5/include/xen/pcifront.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/pcifront.h	2006-08-14 15:07:22.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/pcifront.h linux-2.6.18-rc6-xen/include/xen/pcifront.h
+--- linux-2.6.18-rc6/include/xen/pcifront.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/pcifront.h	2006-09-04 16:31:20.000000000 +0200
 @@ -0,0 +1,76 @@
 +/*
 + * PCI Frontend - arch-dependendent declarations
@@ -93403,9 +91294,9 @@
 +#endif /* __KERNEL__ */
 +
 +#endif /* __XEN_ASM_PCIFRONT_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/public/evtchn.h linux-2.6.18-rc5-xen/include/xen/public/evtchn.h
---- linux-2.6.18-rc5/include/xen/public/evtchn.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/public/evtchn.h	2006-07-20 15:57:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/public/evtchn.h linux-2.6.18-rc6-xen/include/xen/public/evtchn.h
+--- linux-2.6.18-rc6/include/xen/public/evtchn.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/public/evtchn.h	2006-09-04 16:31:20.000000000 +0200
 @@ -0,0 +1,91 @@
 +/******************************************************************************
 + * evtchn.h
@@ -93498,9 +91389,9 @@
 +	_IOC(_IOC_NONE, 'E', 5, 0)
 +
 +#endif /* __LINUX_PUBLIC_EVTCHN_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/public/privcmd.h linux-2.6.18-rc5-xen/include/xen/public/privcmd.h
---- linux-2.6.18-rc5/include/xen/public/privcmd.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/public/privcmd.h	2006-07-20 15:57:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/public/privcmd.h linux-2.6.18-rc6-xen/include/xen/public/privcmd.h
+--- linux-2.6.18-rc6/include/xen/public/privcmd.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/public/privcmd.h	2006-09-04 16:31:20.000000000 +0200
 @@ -0,0 +1,79 @@
 +/******************************************************************************
 + * privcmd.h
@@ -93581,9 +91472,9 @@
 +	_IOC(_IOC_NONE, 'P', 3, sizeof(privcmd_mmapbatch_t))
 +
 +#endif /* __LINUX_PUBLIC_PRIVCMD_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/xenbus.h linux-2.6.18-rc5-xen/include/xen/xenbus.h
---- linux-2.6.18-rc5/include/xen/xenbus.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/xenbus.h	2006-09-01 00:09:12.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/xenbus.h linux-2.6.18-rc6-xen/include/xen/xenbus.h
+--- linux-2.6.18-rc6/include/xen/xenbus.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/xenbus.h	2006-09-04 16:31:20.000000000 +0200
 @@ -0,0 +1,300 @@
 +/******************************************************************************
 + * xenbus.h
@@ -93885,9 +91776,9 @@
 +int __init xenbus_dev_init(void);
 +
 +#endif /* _XEN_XENBUS_H */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/xencons.h linux-2.6.18-rc5-xen/include/xen/xencons.h
---- linux-2.6.18-rc5/include/xen/xencons.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/xencons.h	2006-07-20 15:57:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/xencons.h linux-2.6.18-rc6-xen/include/xen/xencons.h
+--- linux-2.6.18-rc6/include/xen/xencons.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/xencons.h	2006-09-04 16:31:20.000000000 +0200
 @@ -0,0 +1,14 @@
 +#ifndef __ASM_XENCONS_H__
 +#define __ASM_XENCONS_H__
@@ -93903,9 +91794,9 @@
 +int xencons_ring_send(const char *data, unsigned len);
 +
 +#endif /* __ASM_XENCONS_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/include/xen/xen_proc.h linux-2.6.18-rc5-xen/include/xen/xen_proc.h
---- linux-2.6.18-rc5/include/xen/xen_proc.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/include/xen/xen_proc.h	2006-08-14 15:07:22.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/include/xen/xen_proc.h linux-2.6.18-rc6-xen/include/xen/xen_proc.h
+--- linux-2.6.18-rc6/include/xen/xen_proc.h	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/include/xen/xen_proc.h	2006-09-04 16:31:20.000000000 +0200
 @@ -0,0 +1,12 @@
 +
 +#ifndef __ASM_XEN_PROC_H__
@@ -93919,10 +91810,10 @@
 +	const char *name);
 +
 +#endif /* __ASM_XEN_PROC_H__ */
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/kernel/fork.c linux-2.6.18-rc5-xen/kernel/fork.c
---- linux-2.6.18-rc5/kernel/fork.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/kernel/fork.c	2006-09-01 00:09:12.000000000 +0200
-@@ -275,6 +275,9 @@
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/kernel/fork.c linux-2.6.18-rc6-xen/kernel/fork.c
+--- linux-2.6.18-rc6/kernel/fork.c	2006-09-05 10:53:27.000000000 +0200
++++ linux-2.6.18-rc6-xen/kernel/fork.c	2006-09-05 10:45:48.000000000 +0200
+@@ -276,6 +276,9 @@
  		if (retval)
  			goto out;
  	}
@@ -93932,9 +91823,9 @@
  	retval = 0;
  out:
  	up_write(&mm->mmap_sem);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/kernel/irq/manage.c linux-2.6.18-rc5-xen/kernel/irq/manage.c
---- linux-2.6.18-rc5/kernel/irq/manage.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/kernel/irq/manage.c	2006-09-01 00:09:12.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/kernel/irq/manage.c linux-2.6.18-rc6-xen/kernel/irq/manage.c
+--- linux-2.6.18-rc6/kernel/irq/manage.c	2006-09-05 10:53:27.000000000 +0200
++++ linux-2.6.18-rc6-xen/kernel/irq/manage.c	2006-09-04 16:31:20.000000000 +0200
 @@ -350,7 +350,6 @@
  	struct irqaction **p;
  	unsigned long flags;
@@ -93943,9 +91834,9 @@
  	if (irq >= NR_IRQS)
  		return;
  
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/kernel/Kconfig.preempt linux-2.6.18-rc5-xen/kernel/Kconfig.preempt
---- linux-2.6.18-rc5/kernel/Kconfig.preempt	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/kernel/Kconfig.preempt	2006-07-20 15:57:37.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/kernel/Kconfig.preempt linux-2.6.18-rc6-xen/kernel/Kconfig.preempt
+--- linux-2.6.18-rc6/kernel/Kconfig.preempt	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/kernel/Kconfig.preempt	2006-09-04 16:31:20.000000000 +0200
 @@ -35,6 +35,7 @@
  
  config PREEMPT
@@ -93954,9 +91845,9 @@
  	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-rc5/lib/Kconfig.debug linux-2.6.18-rc5-xen/lib/Kconfig.debug
---- linux-2.6.18-rc5/lib/Kconfig.debug	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/lib/Kconfig.debug	2006-09-01 00:09:12.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/lib/Kconfig.debug linux-2.6.18-rc6-xen/lib/Kconfig.debug
+--- linux-2.6.18-rc6/lib/Kconfig.debug	2006-09-05 10:53:27.000000000 +0200
++++ linux-2.6.18-rc6-xen/lib/Kconfig.debug	2006-09-04 16:31:20.000000000 +0200
 @@ -325,7 +325,7 @@
  
  config UNWIND_INFO
@@ -93966,9 +91857,9 @@
  	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-rc5/lib/Makefile linux-2.6.18-rc5-xen/lib/Makefile
---- linux-2.6.18-rc5/lib/Makefile	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/lib/Makefile	2006-07-20 15:57:38.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/lib/Makefile linux-2.6.18-rc6-xen/lib/Makefile
+--- linux-2.6.18-rc6/lib/Makefile	2006-09-05 10:53:27.000000000 +0200
++++ linux-2.6.18-rc6-xen/lib/Makefile	2006-09-04 16:31:20.000000000 +0200
 @@ -51,6 +51,9 @@
  obj-$(CONFIG_SMP) += percpu_counter.o
  
@@ -93979,9 +91870,9 @@
  
  hostprogs-y	:= gen_crc32table
  clean-files	:= crc32table.h
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/mm/highmem.c linux-2.6.18-rc5-xen/mm/highmem.c
---- linux-2.6.18-rc5/mm/highmem.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/mm/highmem.c	2006-07-20 15:57:38.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/mm/highmem.c linux-2.6.18-rc6-xen/mm/highmem.c
+--- linux-2.6.18-rc6/mm/highmem.c	2006-09-05 10:53:27.000000000 +0200
++++ linux-2.6.18-rc6-xen/mm/highmem.c	2006-09-04 16:31:20.000000000 +0200
 @@ -142,6 +142,17 @@
  	return vaddr;
  }
@@ -94000,9 +91891,9 @@
  void fastcall *kmap_high(struct page *page)
  {
  	unsigned long vaddr;
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/mm/Kconfig linux-2.6.18-rc5-xen/mm/Kconfig
---- linux-2.6.18-rc5/mm/Kconfig	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/mm/Kconfig	2006-07-20 15:57:38.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/mm/Kconfig linux-2.6.18-rc6-xen/mm/Kconfig
+--- linux-2.6.18-rc6/mm/Kconfig	2006-09-05 10:53:27.000000000 +0200
++++ linux-2.6.18-rc6-xen/mm/Kconfig	2006-09-04 16:31:20.000000000 +0200
 @@ -127,11 +127,14 @@
  # Default to 4 for wider testing, though 8 might be more appropriate.
  # ARM's adjust_pte (unused if VIPT) depends on mm-wide page_table_lock.
@@ -94018,9 +91909,9 @@
  	default "4"
  
  #
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/mm/memory.c linux-2.6.18-rc5-xen/mm/memory.c
---- linux-2.6.18-rc5/mm/memory.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/mm/memory.c	2006-09-01 00:09:12.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/mm/memory.c linux-2.6.18-rc6-xen/mm/memory.c
+--- linux-2.6.18-rc6/mm/memory.c	2006-09-05 10:53:27.000000000 +0200
++++ linux-2.6.18-rc6-xen/mm/memory.c	2006-09-04 16:31:20.000000000 +0200
 @@ -390,7 +390,7 @@
  
  	if (unlikely(vma->vm_flags & VM_PFNMAP)) {
@@ -94160,9 +92051,9 @@
  /*
   * 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-rc5/mm/mmap.c linux-2.6.18-rc5-xen/mm/mmap.c
---- linux-2.6.18-rc5/mm/mmap.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/mm/mmap.c	2006-07-20 15:57:38.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/mm/mmap.c linux-2.6.18-rc6-xen/mm/mmap.c
+--- linux-2.6.18-rc6/mm/mmap.c	2006-09-05 10:53:27.000000000 +0200
++++ linux-2.6.18-rc6-xen/mm/mmap.c	2006-09-04 16:31:20.000000000 +0200
 @@ -1950,6 +1950,10 @@
  	unsigned long nr_accounted = 0;
  	unsigned long end;
@@ -94174,9 +92065,9 @@
  	lru_add_drain();
  	flush_cache_mm(mm);
  	tlb = tlb_gather_mmu(mm, 1);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/mm/page_alloc.c linux-2.6.18-rc5-xen/mm/page_alloc.c
---- linux-2.6.18-rc5/mm/page_alloc.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/mm/page_alloc.c	2006-07-20 15:57:39.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/mm/page_alloc.c linux-2.6.18-rc6-xen/mm/page_alloc.c
+--- linux-2.6.18-rc6/mm/page_alloc.c	2006-09-05 10:53:27.000000000 +0200
++++ linux-2.6.18-rc6-xen/mm/page_alloc.c	2006-09-04 16:31:20.000000000 +0200
 @@ -443,7 +443,8 @@
  	int i;
  	int reserved = 0;
@@ -94197,9 +92088,9 @@
  
  	if (PageAnon(page))
  		page->mapping = NULL;
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/net/core/dev.c linux-2.6.18-rc5-xen/net/core/dev.c
---- linux-2.6.18-rc5/net/core/dev.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/net/core/dev.c	2006-09-01 00:09:13.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/net/core/dev.c linux-2.6.18-rc6-xen/net/core/dev.c
+--- linux-2.6.18-rc6/net/core/dev.c	2006-09-05 10:53:27.000000000 +0200
++++ linux-2.6.18-rc6-xen/net/core/dev.c	2006-09-04 16:31:20.000000000 +0200
 @@ -118,6 +118,12 @@
  #include <linux/err.h>
  #include <linux/ctype.h>
@@ -94298,9 +92189,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-rc5/net/core/skbuff.c linux-2.6.18-rc5-xen/net/core/skbuff.c
---- linux-2.6.18-rc5/net/core/skbuff.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/net/core/skbuff.c	2006-09-01 00:09:13.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/net/core/skbuff.c linux-2.6.18-rc6-xen/net/core/skbuff.c
+--- linux-2.6.18-rc6/net/core/skbuff.c	2006-09-05 10:53:27.000000000 +0200
++++ linux-2.6.18-rc6-xen/net/core/skbuff.c	2006-09-04 16:31:21.000000000 +0200
 @@ -139,6 +139,7 @@
   *	Buffers may only be allocated from interrupts using a @gfp_mask of
   *	%GFP_ATOMIC.
@@ -94371,9 +92262,9 @@
  	C(pkt_type);
  	C(ip_summed);
  	C(priority);
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/net/ipv4/netfilter/ip_nat_proto_tcp.c linux-2.6.18-rc5-xen/net/ipv4/netfilter/ip_nat_proto_tcp.c
---- linux-2.6.18-rc5/net/ipv4/netfilter/ip_nat_proto_tcp.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/net/ipv4/netfilter/ip_nat_proto_tcp.c	2006-07-20 15:57:41.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/net/ipv4/netfilter/ip_nat_proto_tcp.c linux-2.6.18-rc6-xen/net/ipv4/netfilter/ip_nat_proto_tcp.c
+--- linux-2.6.18-rc6/net/ipv4/netfilter/ip_nat_proto_tcp.c	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/net/ipv4/netfilter/ip_nat_proto_tcp.c	2006-09-04 16:31:22.000000000 +0200
 @@ -129,7 +129,12 @@
  	if (hdrsize < sizeof(*hdr))
  		return 1;
@@ -94388,9 +92279,9 @@
  					ip_nat_cheat_check(oldport ^ 0xFFFF,
  							   newport,
  							   hdr->check));
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/net/ipv4/netfilter/ip_nat_proto_udp.c linux-2.6.18-rc5-xen/net/ipv4/netfilter/ip_nat_proto_udp.c
---- linux-2.6.18-rc5/net/ipv4/netfilter/ip_nat_proto_udp.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/net/ipv4/netfilter/ip_nat_proto_udp.c	2006-07-20 15:57:41.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/net/ipv4/netfilter/ip_nat_proto_udp.c linux-2.6.18-rc6-xen/net/ipv4/netfilter/ip_nat_proto_udp.c
+--- linux-2.6.18-rc6/net/ipv4/netfilter/ip_nat_proto_udp.c	2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.18-rc6-xen/net/ipv4/netfilter/ip_nat_proto_udp.c	2006-09-04 16:31:22.000000000 +0200
 @@ -114,7 +114,12 @@
  		portptr = &hdr->dest;
  	}
@@ -94405,9 +92296,9 @@
  					ip_nat_cheat_check(*portptr ^ 0xFFFF,
  							   newport,
  							   hdr->check));
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/net/ipv4/xfrm4_output.c linux-2.6.18-rc5-xen/net/ipv4/xfrm4_output.c
---- linux-2.6.18-rc5/net/ipv4/xfrm4_output.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/net/ipv4/xfrm4_output.c	2006-07-20 15:57:41.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/net/ipv4/xfrm4_output.c linux-2.6.18-rc6-xen/net/ipv4/xfrm4_output.c
+--- linux-2.6.18-rc6/net/ipv4/xfrm4_output.c	2006-09-05 10:53:27.000000000 +0200
++++ linux-2.6.18-rc6-xen/net/ipv4/xfrm4_output.c	2006-09-04 16:31:23.000000000 +0200
 @@ -18,6 +18,8 @@
  #include <net/xfrm.h>
  #include <net/icmp.h>
@@ -94428,9 +92319,9 @@
  	if (skb->ip_summed == CHECKSUM_HW) {
  		err = skb_checksum_help(skb, 0);
  		if (err)
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/net/ipv6/addrconf.c linux-2.6.18-rc5-xen/net/ipv6/addrconf.c
---- linux-2.6.18-rc5/net/ipv6/addrconf.c	2006-08-28 05:41:48.000000000 +0200
-+++ linux-2.6.18-rc5-xen/net/ipv6/addrconf.c	2006-09-01 00:09:13.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/net/ipv6/addrconf.c linux-2.6.18-rc6-xen/net/ipv6/addrconf.c
+--- linux-2.6.18-rc6/net/ipv6/addrconf.c	2006-09-05 10:53:27.000000000 +0200
++++ linux-2.6.18-rc6-xen/net/ipv6/addrconf.c	2006-09-04 16:31:23.000000000 +0200
 @@ -2514,6 +2514,7 @@
  	spin_lock_bh(&ifp->lock);
  
@@ -94447,9 +92338,9 @@
  	    (ipv6_addr_type(&ifp->addr) & IPV6_ADDR_LINKLOCAL)) {
  		struct in6_addr all_routers;
  
-diff -urN -x .hg -x .hgtags linux-2.6.18-rc5/scripts/Makefile.xen linux-2.6.18-rc5-xen/scripts/Makefile.xen
---- linux-2.6.18-rc5/scripts/Makefile.xen	1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.18-rc5-xen/scripts/Makefile.xen	2006-07-20 15:57:42.000000000 +0200
+diff -urN -x .hg -x .hgtags linux-2.6.18-rc6/scripts/Makefile.xen linux-2.6.18-rc6-xen/scripts/Makefile.xen
+--- linux-2.6.18-rc6/scripts/Makefile.xen	1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.18-rc6-xen/scripts/Makefile.xen	2006-09-04 16:31:23.000000000 +0200
 @@ -0,0 +1,14 @@
 +
 +# cherrypickxen($1 = allobj)



More information about the Kernel-svn-changes mailing list