rpms/kernel/devel linux-2.6-intel-cache-build.patch, NONE, 1.1 linux-2.6-percpu-NR_CPUS-hotplug-fix.patch, NONE, 1.1 linux-2.6-vdso-xen.patch, NONE, 1.1 linux-2.6-xen-acpi.patch, NONE, 1.1 linux-2.6-xen-compile-fixes.patch, NONE, 1.1 linux-2.6-xen-gcc-4.1-compile-fix.patch, NONE, 1.1 linux-2.6-xen-guest-enable-char-devices.patch, NONE, 1.1 linux-2.6-xen-merge.patch, NONE, 1.1 linux-2.6-xen-no-tls-warn.patch, NONE, 1.1 linux-2.6-xen-x86_64-fixes.patch, NONE, 1.1 linux-2.6-xen_net_read_mac_export.patch, NONE, 1.1 linux-2.6-xen_remap_vma_flags.patch, NONE, 1.1 patch-2.6.16-rc3-git1.bz2.sign, NONE, 1.1 .cvsignore, 1.349, 1.350 kernel-2.6.spec, 1.1943, 1.1944 linux-2.6-crash-xen.patch, 1.1, 1.2 linux-2.6-crashdump-common.patch, 1.8, 1.9 linux-2.6-execshield-fixes.patch, 1.3, 1.4 linux-2.6-execshield-xen.patch, 1.1, 1.2 linux-2.6-xen-vdso-note.patch, 1.1, 1.2 sources, 1.291, 1.292 upstream, 1.266, 1.267 linux-2.6.14-intel-cache-build.patch, 1.1, NONE

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Mon Feb 13 21:17:50 UTC 2006


Author: davej

Update of /cvs/dist/rpms/kernel/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv8637

Modified Files:
	.cvsignore kernel-2.6.spec linux-2.6-crash-xen.patch 
	linux-2.6-crashdump-common.patch 
	linux-2.6-execshield-fixes.patch 
	linux-2.6-execshield-xen.patch linux-2.6-xen-vdso-note.patch 
	sources upstream 
Added Files:
	linux-2.6-intel-cache-build.patch 
	linux-2.6-percpu-NR_CPUS-hotplug-fix.patch 
	linux-2.6-vdso-xen.patch linux-2.6-xen-acpi.patch 
	linux-2.6-xen-compile-fixes.patch 
	linux-2.6-xen-gcc-4.1-compile-fix.patch 
	linux-2.6-xen-guest-enable-char-devices.patch 
	linux-2.6-xen-merge.patch linux-2.6-xen-no-tls-warn.patch 
	linux-2.6-xen-x86_64-fixes.patch 
	linux-2.6-xen_net_read_mac_export.patch 
	linux-2.6-xen_remap_vma_flags.patch 
	patch-2.6.16-rc3-git1.bz2.sign 
Removed Files:
	linux-2.6.14-intel-cache-build.patch 
Log Message:
Merge kernel-xen back to kernel


linux-2.6-intel-cache-build.patch:
 intel_cacheinfo.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE linux-2.6-intel-cache-build.patch ---
--- linux-2.6.14/arch/i386/kernel/cpu/intel_cacheinfo.c.orig	2005-11-02 11:25:14.000000000 +0000
+++ linux-2.6.14/arch/i386/kernel/cpu/intel_cacheinfo.c	2005-11-02 11:25:23.000000000 +0000
@@ -569,7 +569,7 @@ static int __cpuinit cache_add_dev(struc
 	return retval;
 }
 
-static void __cpuexit cache_remove_dev(struct sys_device * sys_dev)
+static void cache_remove_dev(struct sys_device * sys_dev)
 {
 	unsigned int cpu = sys_dev->id;
 	unsigned long i;

linux-2.6-percpu-NR_CPUS-hotplug-fix.patch:
 sched.c |   64 +++++++++++++++++++++++++++++-----------------------------------
 1 files changed, 29 insertions(+), 35 deletions(-)

--- NEW FILE linux-2.6-percpu-NR_CPUS-hotplug-fix.patch ---
This is the wrong fix in the long run, but it works for now.
We will inherit the proper fix from upstream soon, at that
point this patch can go away.  None of the alternative hacks
to fix this bug actually seemed any better than this one. - Rik

--- linux-2.6.15.i686/kernel/sched.c.idle_init	2006-02-08 17:56:50.000000000 -0500
+++ linux-2.6.15.i686/kernel/sched.c	2006-02-08 17:58:57.000000000 -0500
@@ -4437,6 +4437,35 @@ void __devinit init_idle(task_t *idle, i
 {
 	runqueue_t *rq = cpu_rq(cpu);
 	unsigned long flags;
+	prio_array_t *array;
+	int j, k;
+
+	spin_lock_init(&rq->lock);
+	rq->nr_running = 0;
+	rq->active = rq->arrays;
+	rq->expired = rq->arrays + 1;
+	rq->best_expired_prio = MAX_PRIO;
+
+#ifdef CONFIG_SMP
+	rq->sd = NULL;
+	for (j = 1; j < 3; j++)
+		rq->cpu_load[j] = 0;
+	rq->active_balance = 0;
+	rq->push_cpu = 0;
+	rq->migration_thread = NULL;
+	INIT_LIST_HEAD(&rq->migration_queue);
+#endif
+	atomic_set(&rq->nr_iowait, 0);
+
+	for (j = 0; j < 2; j++) {
+		array = rq->arrays + j;
+		for (k = 0; k < MAX_PRIO; k++) {
+			INIT_LIST_HEAD(array->queue + k);
+			__clear_bit(k, array->bitmap);
+		}
+		// delimiter for bitsearch
+		__set_bit(MAX_PRIO, array->bitmap);
+	}
 
 	idle->sleep_avg = 0;
 	idle->array = NULL;
@@ -6110,41 +6139,6 @@ int in_sched_functions(unsigned long add
 
 void __init sched_init(void)
 {
-	runqueue_t *rq;
-	int i, j, k;
-
-	for_each_cpu(i) {
-		prio_array_t *array;
-
-		rq = cpu_rq(i);
-		spin_lock_init(&rq->lock);
-		rq->nr_running = 0;
-		rq->active = rq->arrays;
-		rq->expired = rq->arrays + 1;
-		rq->best_expired_prio = MAX_PRIO;
-
-#ifdef CONFIG_SMP
-		rq->sd = NULL;
-		for (j = 1; j < 3; j++)
-			rq->cpu_load[j] = 0;
-		rq->active_balance = 0;
-		rq->push_cpu = 0;
-		rq->migration_thread = NULL;
-		INIT_LIST_HEAD(&rq->migration_queue);
-#endif
-		atomic_set(&rq->nr_iowait, 0);
-
-		for (j = 0; j < 2; j++) {
-			array = rq->arrays + j;
-			for (k = 0; k < MAX_PRIO; k++) {
-				INIT_LIST_HEAD(array->queue + k);
-				__clear_bit(k, array->bitmap);
-			}
-			// delimiter for bitsearch
-			__set_bit(MAX_PRIO, array->bitmap);
-		}
-	}
-
 	/*
 	 * The boot idle thread does lazy MMU switching as well:
 	 */

linux-2.6-vdso-xen.patch:
 mmu.h  |    1 +
 page.h |    5 +++++
 2 files changed, 6 insertions(+)

--- NEW FILE linux-2.6-vdso-xen.patch ---
Merge rawhide vdso into xen-specific subarch.
---

 include/asm-i386/mach-xen/asm/mmu.h  |    1 +
 include/asm-i386/mach-xen/asm/page.h |    5 +++++
 2 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/include/asm-i386/mach-xen/asm/mmu.h b/include/asm-i386/mach-xen/asm/mmu.h
index 32987b8..c646692 100644
--- a/include/asm-i386/mach-xen/asm/mmu.h
+++ b/include/asm-i386/mach-xen/asm/mmu.h
@@ -12,6 +12,7 @@ typedef struct { 
 	int size;
 	struct semaphore sem;
 	void *ldt;
+	void *vdso;
 } mm_context_t;
 
 /* mm/memory.c:exit_mmap hook */
diff --git a/include/asm-i386/mach-xen/asm/page.h b/include/asm-i386/mach-xen/asm/page.h
index 74b385b..21f8300 100644
--- a/include/asm-i386/mach-xen/asm/page.h
+++ b/include/asm-i386/mach-xen/asm/page.h
@@ -237,6 +237,11 @@ extern int page_is_ram(unsigned long pag
 #undef LOAD_OFFSET
 #define LOAD_OFFSET		0
 
+/*
+ * Under exec-shield we don't use the generic fixmap gate area.
+ * The vDSO ("gate area") has a normal vma found the normal ways.
+ */
+#define __HAVE_ARCH_GATE_AREA  1
 
 #define PAGE_OFFSET		((unsigned long)__PAGE_OFFSET)
 #define VMALLOC_RESERVE		((unsigned long)__VMALLOC_RESERVE)

linux-2.6-xen-acpi.patch:
 arch/x86_64/kernel/mpparse-xen.c   |    8 ++++----
 b/arch/i386/kernel/acpi/boot-xen.c |    6 +++---
 b/arch/i386/kernel/mpparse-xen.c   |    8 ++++----
 3 files changed, 11 insertions(+), 11 deletions(-)

--- NEW FILE linux-2.6-xen-acpi.patch ---
--- a/arch/i386/kernel/acpi/boot-xen.c~	2006-02-02 15:24:54.000000000 -0500
+++ b/arch/i386/kernel/acpi/boot-xen.c	2006-02-02 18:07:39.000000000 -0500
@@ -466,7 +466,7 @@
  * success: return IRQ number (>=0)
  * failure: return < 0
  */
-int acpi_register_gsi(u32 gsi, int edge_level, int active_high_low)
+int acpi_register_gsi(u32 gsi, int triggering, int polarity)
 {
 	unsigned int irq;
 	unsigned int plat_gsi = gsi;
@@ -478,14 +478,14 @@
 	if (acpi_irq_model == ACPI_IRQ_MODEL_PIC) {
 		extern void eisa_set_level_irq(unsigned int irq);
 
-		if (edge_level == ACPI_LEVEL_SENSITIVE)
+		if (triggering == ACPI_LEVEL_SENSITIVE)
 			eisa_set_level_irq(gsi);
 	}
 #endif
 
 #ifdef CONFIG_X86_IO_APIC
 	if (acpi_irq_model == ACPI_IRQ_MODEL_IOAPIC) {
-		plat_gsi = mp_register_gsi(gsi, edge_level, active_high_low);
+		plat_gsi = mp_register_gsi(gsi, triggering, polarity);
 	}
 #endif
 	acpi_gsi_to_irq(plat_gsi, &irq);
--- a/arch/i386/kernel/mpparse-xen.c~	2006-02-02 18:08:53.000000000 -0500
+++ b/arch/i386/kernel/mpparse-xen.c	2006-02-02 18:08:58.000000000 -0500
@@ -1097,7 +1097,7 @@
 
 #define MAX_GSI_NUM	4096
 
-int mp_register_gsi (u32 gsi, int edge_level, int active_high_low)
+int mp_register_gsi (u32 gsi, int triggering, int polarity)
 {
 	int			ioapic = -1;
 	int			ioapic_pin = 0;
@@ -1146,7 +1146,7 @@
 
 	mp_ioapic_routing[ioapic].pin_programmed[idx] |= (1<<bit);
 
-	if (edge_level) {
+	if (triggering == ACPI_LEVEL_SENSITIVE) {
 		/*
 		 * For PCI devices assign IRQs in order, avoiding gaps
 		 * due to unused I/O APIC pins.
@@ -1168,8 +1168,8 @@
 	}
 
 	io_apic_set_pci_routing(ioapic, ioapic_pin, gsi,
-		    edge_level == ACPI_EDGE_SENSITIVE ? 0 : 1,
-		    active_high_low == ACPI_ACTIVE_HIGH ? 0 : 1);
+		    triggering == ACPI_EDGE_SENSITIVE ? 0 : 1,
+		    polarity == ACPI_ACTIVE_HIGH ? 0 : 1);
 	return gsi;
 }
 
--- a/arch/x86_64/kernel/mpparse-xen.c	2006-02-08 18:30:03.000000000 -0500
+++ b/arch/x86_64/kernel/mpparse-xen.c	2006-02-08 19:06:46.000000000 -0500
@@ -920,7 +920,7 @@
 
 #define MAX_GSI_NUM	4096
 
-int mp_register_gsi(u32 gsi, int edge_level, int active_high_low)
+int mp_register_gsi(u32 gsi, int triggering, int polarity)
 {
 	int			ioapic = -1;
 	int			ioapic_pin = 0;
@@ -969,7 +969,7 @@
 
 	mp_ioapic_routing[ioapic].pin_programmed[idx] |= (1<<bit);
 
-	if (edge_level) {
+	if (triggering == ACPI_LEVEL_SENSITIVE) {
 		/*
 		 * For PCI devices assign IRQs in order, avoiding gaps
 		 * due to unused I/O APIC pins.
@@ -991,8 +991,8 @@
 	}
 
 	io_apic_set_pci_routing(ioapic, ioapic_pin, gsi,
-		edge_level == ACPI_EDGE_SENSITIVE ? 0 : 1,
-		active_high_low == ACPI_ACTIVE_HIGH ? 0 : 1);
+		    triggering == ACPI_EDGE_SENSITIVE ? 0 : 1,
+		    polarity == ACPI_ACTIVE_HIGH ? 0 : 1);
 	return gsi;
 }
 

linux-2.6-xen-compile-fixes.patch:
 linux-2.6.15.new/arch/i386/mm/init-xen.c             |    1 +
 linux-2.6.15.noarch/arch/x86_64/kernel/apic-xen.c    |    9 +++++++++
 linux-2.6.15.noarch/arch/x86_64/kernel/genapic-xen.c |   11 +++++++++++
 3 files changed, 21 insertions(+)

--- NEW FILE linux-2.6-xen-compile-fixes.patch ---
diff -urNp --exclude-from=/home/mitica/quintela/config/misc/dontdiff linux-2.6.15.orig/arch/x86_64/kernel/apic-xen.c linux-2.6.15.noarch/arch/x86_64/kernel/apic-xen.c
--- linux-2.6.15.orig/arch/x86_64/kernel/apic-xen.c	2006-02-10 20:25:27.000000000 +0100
+++ linux-2.6.15.noarch/arch/x86_64/kernel/apic-xen.c	2006-02-11 03:11:49.000000000 +0100
@@ -42,6 +42,15 @@
 int apic_verbosity;
 int disable_apic;
 
+/*
+ * 'what should we do if we get a hw irq event on an illegal vector'.
+ * each architecture has to answer this themselves.
+ */
+void ack_bad_irq(unsigned int irq)
+{
+	printk("unexpected IRQ trap at vector %02x\n", irq);
+}
+
 void smp_local_timer_interrupt(struct pt_regs *regs)
 {
 	profile_tick(CPU_PROFILING, regs);
diff -urNp --exclude-from=/home/quintela/config/misc/dontdiff linux-2.6.15.x86_64/arch/i386/mm/init-xen.c linux-2.6.15.new/arch/i386/mm/init-xen.c
--- linux-2.6.15.x86_64/arch/i386/mm/init-xen.c	2006-02-11 19:15:39.000000000 +0100
+++ linux-2.6.15.new/arch/i386/mm/init-xen.c	2006-02-11 16:24:12.000000000 +0100
@@ -459,6 +459,7 @@ void zap_low_mappings (void)
 
 static int disable_nx __initdata = 0;
 u64 __supported_pte_mask __read_mostly = ~_PAGE_NX;
+EXPORT_SYMBOL(__supported_pte_mask);
 
 /*
  * noexec = on|off
diff -uNp linux-2.6.15.noarch/arch/x86_64/kernel/genapic-xen.c.orig linux-2.6.15.noarch/arch/x86_64/kernel/genapic-xen.c
--- linux-2.6.15.noarch/arch/x86_64/kernel/genapic-xen.c.orig	2006-02-11 20:17:49.000000000 +0100
+++ linux-2.6.15.noarch/arch/x86_64/kernel/genapic-xen.c	2006-02-11 20:18:09.000000000 +0100
@@ -39,6 +39,17 @@ extern struct genapic apic_xen;
 struct genapic *genapic = &apic_xen;
 #endif
 
+#ifndef CONFIG_X86_LOCAL_APIC
+/*
+ * 'what should we do if we get a hw irq event on an illegal vector'.
+ * each architecture has to answer this themselves.
+ */
+void ack_bad_irq(unsigned int irq)
+{
+        printk("unexpected IRQ trap at vector %02x\n", irq);
+}
+#endif
+
 
 /*
  * Check the APIC IDs in bios_cpu_apicid and choose the APIC mode.

linux-2.6-xen-gcc-4.1-compile-fix.patch:
 mpspec_def.h |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE linux-2.6-xen-gcc-4.1-compile-fix.patch ---
diff -uNp xen/include/asm-x86/mpspec_def.h.orig xen/include/asm-x86/mpspec_def.h
--- xen/include/asm-x86/mpspec_def.h.orig	2006-02-07 21:24:36.000000000 +0100
+++ xen/include/asm-x86/mpspec_def.h	2006-02-07 21:24:48.000000000 +0100
@@ -75,7 +75,7 @@ struct mpc_config_bus
 {
 	unsigned char mpc_type;
 	unsigned char mpc_busid;
-	unsigned char mpc_bustype[6] __attribute((packed));
+	unsigned char mpc_bustype[6];
 };
 
 /* List of Bus Type string values, Intel MP Spec. */

linux-2.6-xen-guest-enable-char-devices.patch:
 linux-2.6-xen.hg/drivers/Kconfig  |    3 +++
 linux-2.6.14/drivers/char/Kconfig |   15 +++++++++++++++
 2 files changed, 18 insertions(+)

--- NEW FILE linux-2.6-xen-guest-enable-char-devices.patch ---
Return-path: <xen-devel-bounces at lists.xensource.com>
Envelope-to: www-data at lists.xensource.com
Delivery-date: Mon, 12 Dec 2005 10:35:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xensource.com)
	by host-192-168-0-1-bcn-london with esmtp (Exim 4.50)
	id 1Ell1O-00073f-6w; Mon, 12 Dec 2005 10:35:06 +0000
Received: from [192.168.0.10] (helo=lists.xensource.com)
	by host-192-168-0-1-bcn-london with esmtp (Exim 4.50)
	id 1Ell19-0006x9-Km
	for xen-devel at lists.xensource.com; Mon, 12 Dec 2005 10:34:51 +0000
Received: from mx2.suse.de ([195.135.220.15])
	by 192.168.0.10 with esmtp (Exim 4.50) id 1Elkyj-000814-KZ
	for xen-devel at lists.xensource.com; Mon, 12 Dec 2005 10:32:22 +0000
Received: from Relay2.suse.de (mail2.suse.de [195.135.221.8])
	(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
	(No client certificate requested)
	by mx2.suse.de (Postfix) with ESMTP id 981AD1CBE8;
	Mon, 12 Dec 2005 11:33:43 +0100 (CET)
To: Hans-Christian Armingeon <johnny at wh-netz.de>
References: <1133474930.11038.27.camel at localhost.localdomain>
	<200512111748.24640.johnny at wh-netz.de>
From: Andi Kleen <ak at suse.de>
Date: 12 Dec 2005 08:05:05 -0700
In-Reply-To: <200512111748.24640.johnny at wh-netz.de>
Message-ID: <p73y82qnyou.fsf at verdi.suse.de>
Lines: 103
User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-SA-Exim-Connect-IP: 195.135.220.15
X-SA-Exim-Mail-From: ak at suse.de
X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on 192.168.0.10
X-Spam-Level: 
X-Spam-Status: No, score=-0.7 required=5.0 tests=AWL,BAYES_00,
	DATE_IN_FUTURE_03_06 autolearn=no version=3.1.0
X-SA-Exim-Version: 4.2 (built Thu, 03 Mar 2005 10:44:12 +0100)
X-SA-Exim-Scanned: Yes (on 192.168.0.10)
Cc: xen-devel at lists.xensource.com
Subject: [Xen-devel] Re: No PTYs with linux-2.6-xen.hg
X-BeenThere: xen-devel at lists.xensource.com
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Xen developer discussion <xen-devel.lists.xensource.com>
List-Unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>,
	<mailto:xen-devel-request at lists.xensource.com?subject=unsubscribe>
List-Post: <mailto:xen-devel at lists.xensource.com>
List-Help: <mailto:xen-devel-request at lists.xensource.com?subject=help>
List-Subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>,
	<mailto:xen-devel-request at lists.xensource.com?subject=subscribe>
Sender: xen-devel-bounces at lists.xensource.com
Errors-To: xen-devel-bounces at lists.xensource.com


[mail will be delayed due to dumb mailing list policy]

Hans-Christian Armingeon <johnny at wh-netz.de> writes:

> Hi there,
> 
> I am having the same problem.
> Is anyone working on that issue?

This patch will fix it. It also reenables other useful
character drivers. Only softdog is still MIA.

However there are other problems still. e.g. current Xen
seems to have broken balloning again.

-Andi

diff -uNp linux-2.6.14/drivers/char/Kconfig.orig linux-2.6.14/drivers/char/Kconfig
--- linux-2.6.14/drivers/char/Kconfig.orig	2005-12-20 16:26:56.000000000 +0100
+++ linux-2.6.14/drivers/char/Kconfig	2005-12-20 16:46:03.000000000 +0100
@@ -4,6 +4,8 @@
 
 menu "Character devices"
 
+if !XEN || XEN_PHYSDEV_ACCESS
+
 config VT
 	bool "Virtual terminal" if EMBEDDED
 	select INPUT
@@ -415,6 +417,8 @@ config SGI_MBCS
 
 source "drivers/serial/Kconfig"
 
+endif
+
 config UNIX98_PTYS
 	bool "Unix98 PTY support" if EMBEDDED
 	default y
@@ -471,6 +475,8 @@ config LEGACY_PTY_COUNT
 	  When not in use, each legacy PTY occupies 12 bytes on 32-bit
 	  architectures and 24 bytes on 64-bit architectures.
 
+if !XEN || XEN_PHYSDEV_ACCESS
+
 config PRINTER
 	tristate "Parallel printer support"
 	depends on PARPORT
@@ -954,6 +960,8 @@ config GPIO_VR41XX
 	tristate "NEC VR4100 series General-purpose I/O Unit support"
 	depends on CPU_VR41XX
 
+endif
+
 config RAW_DRIVER
 	tristate "RAW driver (/dev/raw/rawN) (OBSOLETE)"
 	help
@@ -965,6 +973,8 @@ config RAW_DRIVER
           Applications should simply open the device (eg /dev/hda1)
           with the O_DIRECT flag.
 
+
+
 config MAX_RAW_DEVS
 	int "Maximum number of RAW devices to support (1-8192)"
 	depends on RAW_DRIVER
@@ -974,6 +984,8 @@ config MAX_RAW_DEVS
 	  Default is 256. Increase this number in case you need lots of
 	  raw devices.
 
+if !XEN || XEN_PHYSDEV_ACCESS
+
 config HPET
 	bool "HPET - High Precision Event Timer" if (X86 || IA64)
 	default n
@@ -1023,6 +1035,7 @@ config MMTIMER
 
 source "drivers/char/tpm/Kconfig"
 
+
 config TELCLOCK
 	tristate "Telecom clock driver for MPBL0010 ATCA SBC"
 	depends on EXPERIMENTAL
@@ -1035,5 +1048,7 @@ config TELCLOCK
 	  sysfs directory, /sys/devices/platform/telco_clock, with a number of
 	  files for controlling the behavior of this hardware.
 
+endif
+
 endmenu
 
diff -u linux-2.6-xen.hg/drivers/Kconfig-o linux-2.6-xen.hg/drivers/Kconfig
--- linux-2.6-xen.hg/drivers/Kconfig-o	2005-11-16 01:37:04.000000000 +0100
+++ linux-2.6-xen.hg/drivers/Kconfig	2005-12-12 07:11:52.000000000 +0100
@@ -49,9 +49,12 @@
 # input before char - char/joystick depends on it. As does USB.
 
 source "drivers/input/Kconfig"
+endif
 
 source "drivers/char/Kconfig"
 
+if !XEN || XEN_PHYSDEV_ACCESS
+
 source "drivers/i2c/Kconfig"
 
 source "drivers/w1/Kconfig"

_______________________________________________
Xen-devel mailing list
Xen-devel at lists.xensource.com
http://lists.xensource.com/xen-devel


linux-2.6-xen-merge.patch:
 arch/i386/Makefile                               |   18 
 arch/i386/kernel/Makefile                        |   26 
 arch/i386/kernel/acpi/Makefile                   |    4 
 arch/i386/kernel/cpu/Makefile                    |    5 
 arch/i386/kernel/cpu/cpufreq/Kconfig             |    2 
 arch/i386/kernel/cpu/mtrr/Makefile               |    7 
 arch/i386/kernel/smpboot.c                       |   10 
 arch/i386/kernel/traps.c                         |    9 
 arch/i386/kernel/vmlinux.lds.S                   |    7 
 arch/i386/mm/Makefile                            |    8 
 arch/i386/pci/Makefile                           |    5 
 arch/i386/power/Makefile                         |    4 
 arch/um/kernel/physmem.c                         |    4 
 arch/x86_64/Kconfig                              |   43 
 arch/x86_64/Makefile                             |   15 
 arch/x86_64/ia32/Makefile                        |   18 
 arch/x86_64/ia32/vsyscall-sigreturn.S            |    2 
 arch/x86_64/kernel/Makefile                      |   20 
 arch/x86_64/kernel/acpi/Makefile                 |    2 
 arch/x86_64/kernel/i387.c                        |    5 
 arch/x86_64/kernel/pci-gart.c                    |    8 
 arch/x86_64/kernel/setup64.c                     |    2 
 arch/x86_64/mm/Makefile                          |   10 
 arch/x86_64/pci/Makefile                         |    8 
 b/arch/i386/boot-xen/Makefile                    |   21 
 b/arch/i386/kernel/acpi/boot-xen.c               | 1157 +++++++++
 b/arch/i386/kernel/apic-xen.c                    |  143 +
 b/arch/i386/kernel/cpu/common-xen.c              |  660 +++++
 b/arch/i386/kernel/cpu/mtrr/main-xen.c           |  187 +
 b/arch/i386/kernel/early_printk-xen.c            |    2 
 b/arch/i386/kernel/entry-xen.S                   |  851 +++++++
 b/arch/i386/kernel/fixup.c                       |   95 
 b/arch/i386/kernel/head-xen.S                    |  174 +
 b/arch/i386/kernel/init_task-xen.c               |   49 
 b/arch/i386/kernel/io_apic-xen.c                 | 2725 +++++++++++++++++++++++
 b/arch/i386/kernel/ioport-xen.c                  |  122 +
 b/arch/i386/kernel/irq-xen.c                     |  306 ++
 b/arch/i386/kernel/ldt-xen.c                     |  269 ++
 b/arch/i386/kernel/microcode-xen.c               |  164 +
 b/arch/i386/kernel/mpparse-xen.c                 | 1177 +++++++++
 b/arch/i386/kernel/pci-dma-xen.c                 |  326 ++
 b/arch/i386/kernel/process-xen.c                 |  821 ++++++
 b/arch/i386/kernel/quirks-xen.c                  |   48 
 b/arch/i386/kernel/setup-xen.c                   | 1883 +++++++++++++++
 b/arch/i386/kernel/smp-xen.c                     |  617 +++++
 b/arch/i386/kernel/smpalts.c                     |   85 
 b/arch/i386/kernel/swiotlb.c                     |  677 +++++
 b/arch/i386/kernel/time-xen.c                    | 1016 ++++++++
 b/arch/i386/kernel/traps-xen.c                   | 1104 +++++++++
 b/arch/i386/kernel/vsyscall-note-xen.S           |   32 
 b/arch/i386/mach-xen/Makefile                    |    7 
 b/arch/i386/mach-xen/setup.c                     |   37 
 b/arch/i386/mm/fault-xen.c                       |  617 +++++
 b/arch/i386/mm/highmem-xen.c                     |  123 +
 b/arch/i386/mm/hypervisor.c                      |  459 +++
 b/arch/i386/mm/init-xen.c                        |  849 +++++++
 b/arch/i386/mm/ioremap-xen.c                     |  495 ++++
 b/arch/i386/mm/pgtable-xen.c                     |  630 +++++
 b/arch/i386/pci/irq-xen.c                        | 1197 ++++++++++
 b/arch/x86_64/ia32/ia32entry-xen.S               |  718 ++++++
 b/arch/x86_64/ia32/syscall32-xen.c               |  128 +
 b/arch/x86_64/ia32/syscall32_syscall-xen.S       |   28 
 b/arch/x86_64/ia32/vsyscall-int80.S              |   58 
 b/arch/x86_64/kernel/apic-xen.c                  |  187 +
 b/arch/x86_64/kernel/e820-xen.c                  |  744 ++++++
 b/arch/x86_64/kernel/early_printk-xen.c          |  306 ++
 b/arch/x86_64/kernel/entry-xen.S                 | 1155 +++++++++
 b/arch/x86_64/kernel/genapic-xen.c               |  135 +
 b/arch/x86_64/kernel/genapic_xen.c               |  162 +
 b/arch/x86_64/kernel/head-xen.S                  |  255 ++
 b/arch/x86_64/kernel/head64-xen.c                |  137 +
 b/arch/x86_64/kernel/io_apic-xen.c               | 2191 ++++++++++++++++++
 b/arch/x86_64/kernel/ioport-xen.c                |   58 
 b/arch/x86_64/kernel/irq-xen.c                   |  157 +
 b/arch/x86_64/kernel/ldt-xen.c                   |  282 ++
 b/arch/x86_64/kernel/mpparse-xen.c               | 1000 ++++++++
 b/arch/x86_64/kernel/pci-nommu-xen.c             |   99 
 b/arch/x86_64/kernel/process-xen.c               |  798 ++++++
 b/arch/x86_64/kernel/setup-xen.c                 | 1619 +++++++++++++
 b/arch/x86_64/kernel/setup64-xen.c               |  354 ++
 b/arch/x86_64/kernel/smp-xen.c                   |  592 ++++
 b/arch/x86_64/kernel/traps-xen.c                 | 1010 ++++++++
 b/arch/x86_64/kernel/vsyscall-xen.c              |  239 ++
 b/arch/x86_64/kernel/x8664_ksyms-xen.c           |  181 +
 b/arch/x86_64/kernel/xen_entry.S                 |   41 
 b/arch/x86_64/mm/fault-xen.c                     |  601 +++++
 b/arch/x86_64/mm/init-xen.c                      | 1116 +++++++++
 b/arch/x86_64/mm/pageattr-xen.c                  |  375 +++
 b/drivers/char/tpm/tpm_xen.c                     |  525 ++++
 b/drivers/xen/Kconfig                            |  175 +
 b/drivers/xen/Makefile                           |   20 
 b/drivers/xen/balloon/Makefile                   |    2 
 b/drivers/xen/balloon/balloon.c                  |  585 ++++
 b/drivers/xen/blkback/Makefile                   |    2 
 b/drivers/xen/blkback/blkback.c                  |  590 ++++
 b/drivers/xen/blkback/common.h                   |  123 +
 b/drivers/xen/blkback/interface.c                |  164 +
 b/drivers/xen/blkback/vbd.c                      |  102 
 b/drivers/xen/blkback/xenbus.c                   |  421 +++
 b/drivers/xen/blkfront/Kconfig                   |    6 
 b/drivers/xen/blkfront/Makefile                  |    5 
 b/drivers/xen/blkfront/blkfront.c                |  835 +++++++
 b/drivers/xen/blkfront/block.h                   |  162 +
 b/drivers/xen/blkfront/vbd.c                     |  323 ++
 b/drivers/xen/blktap/Makefile                    |    3 
 b/drivers/xen/blktap/blktap.c                    |  910 +++++++
 b/drivers/xen/blktap/common.h                    |  110 
 b/drivers/xen/blktap/interface.c                 |  146 +
 b/drivers/xen/blktap/xenbus.c                    |  234 +
 b/drivers/xen/char/Makefile                      |    2 
 b/drivers/xen/char/mem.c                         |  159 +
 b/drivers/xen/console/Makefile                   |    2 
 b/drivers/xen/console/console.c                  |  688 +++++
 b/drivers/xen/console/xencons_ring.c             |  125 +
 b/drivers/xen/core/Makefile                      |    9 
 b/drivers/xen/core/evtchn.c                      |  820 ++++++
 b/drivers/xen/core/features.c                    |   28 
 b/drivers/xen/core/gnttab.c                      |  404 +++
 b/drivers/xen/core/reboot.c                      |  436 +++
 b/drivers/xen/core/skbuff.c                      |  143 +
 b/drivers/xen/core/smpboot.c                     |  441 +++
 b/drivers/xen/core/xen_proc.c                    |   29 
 b/drivers/xen/evtchn/Makefile                    |    2 
 b/drivers/xen/evtchn/evtchn.c                    |  459 +++
 b/drivers/xen/net_driver_util.c                  |   67 
 b/drivers/xen/netback/Makefile                   |    2 
 b/drivers/xen/netback/common.h                   |  110 
 b/drivers/xen/netback/interface.c                |  320 ++
 b/drivers/xen/netback/loopback.c                 |  198 +
 b/drivers/xen/netback/netback.c                  |  828 ++++++
 b/drivers/xen/netback/xenbus.c                   |  327 ++
 b/drivers/xen/netfront/Kconfig                   |    6 
 b/drivers/xen/netfront/Makefile                  |    4 
 b/drivers/xen/netfront/netfront.c                | 1487 ++++++++++++
 b/drivers/xen/privcmd/Makefile                   |    2 
 b/drivers/xen/privcmd/privcmd.c                  |  279 ++
 b/drivers/xen/tpmback/Makefile                   |    4 
 b/drivers/xen/tpmback/common.h                   |   89 
 b/drivers/xen/tpmback/interface.c                |  200 +
 b/drivers/xen/tpmback/tpmback.c                  | 1109 +++++++++
 b/drivers/xen/tpmback/xenbus.c                   |  328 ++
 b/drivers/xen/tpmfront/Makefile                  |    2 
 b/drivers/xen/tpmfront/tpmfront.c                |  703 +++++
 b/drivers/xen/tpmfront/tpmfront.h                |   43 
 b/drivers/xen/util.c                             |   80 
 b/drivers/xen/xenbus/Makefile                    |    8 
 b/drivers/xen/xenbus/xenbus_client.c             |  238 ++
 b/drivers/xen/xenbus/xenbus_comms.c              |  203 +
 b/drivers/xen/xenbus/xenbus_comms.h              |   50 
 b/drivers/xen/xenbus/xenbus_dev.c                |  238 ++
 b/drivers/xen/xenbus/xenbus_probe.c              | 1015 ++++++++
 b/drivers/xen/xenbus/xenbus_xs.c                 |  821 ++++++
 b/include/asm-i386/hypercall.h                   |  329 ++
 b/include/asm-i386/hypervisor.h                  |  180 +
 b/include/asm-i386/mach-default/mach_dma_map.h   |   85 
 b/include/asm-i386/mach-default/mach_fixmap.h    |   15 
 b/include/asm-i386/mach-default/mach_io.h        |   35 
 b/include/asm-i386/mach-default/mach_mmu.h       |   18 
 b/include/asm-i386/mach-default/mach_mode.h      |    7 
 b/include/asm-i386/mach-default/mach_page.h      |   28 
 b/include/asm-i386/mach-default/mach_pgtable.h   |   45 
 b/include/asm-i386/mach-default/mach_processor.h |   53 
 b/include/asm-i386/mach-default/mach_seg.h       |   39 
 b/include/asm-i386/mach-default/mach_setup.h     |   50 
 b/include/asm-i386/mach-default/mach_system.h    |   87 
 b/include/asm-i386/mach-default/mach_tlbflush.h  |   59 
 b/include/asm-i386/mach-xen/irq_vectors.h        |  125 +
 b/include/asm-i386/mach-xen/mach_dma_map.h       |   47 
 b/include/asm-i386/mach-xen/mach_fixmap.h        |   15 
 b/include/asm-i386/mach-xen/mach_io.h            |   50 
 b/include/asm-i386/mach-xen/mach_mmu.h           |   47 
 b/include/asm-i386/mach-xen/mach_mode.h          |    7 
 b/include/asm-i386/mach-xen/mach_page.h          |  154 +
 b/include/asm-i386/mach-xen/mach_pgtable.h       |  146 +
 b/include/asm-i386/mach-xen/mach_processor.h     |   59 
 b/include/asm-i386/mach-xen/mach_seg.h           |    9 
 b/include/asm-i386/mach-xen/mach_setup.h         |   11 
 b/include/asm-i386/mach-xen/mach_system.h        |  157 +
 b/include/asm-i386/mach-xen/mach_tlbflush.h      |   10 
 b/include/asm-i386/mach-xen/mach_traps.h         |   33 
 b/include/asm-i386/mach-xen/setup_arch_post.h    |   43 
 b/include/asm-i386/mach-xen/setup_arch_pre.h     |    5 
 b/include/asm-i386/smp_alt.h                     |   32 
 b/include/asm-i386/swiotlb.h                     |   59 
 b/include/asm-i386/synch_bitops.h                |  143 +
 b/include/asm-x86_64/arch_hooks.h                |   31 
 b/include/asm-x86_64/hypercall.h                 |  323 ++
 b/include/asm-x86_64/hypervisor.h                |    2 
 b/include/asm-x86_64/mach-xen/asm/nmi.h          |   75 
 b/include/asm-x86_64/synch_bitops.h              |    1 
 b/include/xen/balloon.h                          |   70 
 b/include/xen/driver_util.h                      |   26 
 b/include/xen/evtchn.h                           |  123 +
 b/include/xen/features.h                         |   20 
 b/include/xen/foreign_page.h                     |   40 
 b/include/xen/gnttab.h                           |   98 
 b/include/xen/interface/acm.h                    |  181 +
 b/include/xen/interface/acm_ops.h                |   96 
 b/include/xen/interface/arch-ia64.h              |  279 ++
 b/include/xen/interface/arch-x86_32.h            |  158 +
 b/include/xen/interface/arch-x86_64.h            |  243 ++
 b/include/xen/interface/dom0_ops.h               |  488 ++++
 b/include/xen/interface/event_channel.h          |  203 +
 b/include/xen/interface/grant_table.h            |  306 ++
 b/include/xen/interface/hvm/hvm_info_table.h     |   24 
 b/include/xen/interface/hvm/ioreq.h              |   90 
 b/include/xen/interface/hvm/vmx_assist.h         |   97 
 b/include/xen/interface/io/blkif.h               |   85 
 b/include/xen/interface/io/console.h             |   33 
 b/include/xen/interface/io/netif.h               |   76 
 b/include/xen/interface/io/ring.h                |  270 ++
 b/include/xen/interface/io/tpmif.h               |   56 
 b/include/xen/interface/io/vmx_vlapic.h          |   58 
 b/include/xen/interface/io/vmx_vpic.h            |   85 
 b/include/xen/interface/io/xenbus.h              |   44 
 b/include/xen/interface/io/xs_wire.h             |   97 
 b/include/xen/interface/memory.h                 |  127 +
 b/include/xen/interface/nmi.h                    |   54 
 b/include/xen/interface/physdev.h                |   70 
 b/include/xen/interface/sched.h                  |   60 
 b/include/xen/interface/sched_ctl.h              |   68 
 b/include/xen/interface/trace.h                  |   90 
 b/include/xen/interface/vcpu.h                   |   64 
 b/include/xen/interface/version.h                |   63 
 b/include/xen/interface/xen.h                    |  447 +++
 b/include/xen/net_driver_util.h                  |   56 
 b/include/xen/public/evtchn.h                    |   98 
 b/include/xen/public/privcmd.h                   |   91 
 b/include/xen/public/xenstored.h                 |   89 
 b/include/xen/tpmfe.h                            |   33 
 b/include/xen/xen_proc.h                         |   23 
 b/include/xen/xenbus.h                           |  254 ++
 b/include/xen/xencons.h                          |   14 
 b/scripts/Makefile.xen                           |   14 
 drivers/Kconfig                                  |   11 
 drivers/Makefile                                 |    1 
 drivers/acpi/Kconfig                             |    2 
 drivers/acpi/tables.c                            |    7 
 drivers/char/mem.c                               |    6 
 drivers/char/tpm/Kconfig                         |   14 
 drivers/char/tpm/Makefile                        |    1 
 drivers/char/tpm/tpm.c                           |   47 
 drivers/char/tpm/tpm.h                           |   13 
 drivers/char/tpm/tpm_atmel.c                     |  110 
 drivers/char/tpm/tpm_nsc.c                       |  155 -
 drivers/char/tty_io.c                            |    7 
 drivers/firmware/Kconfig                         |    2 
 drivers/ide/legacy/hd.c                          |    2 
 drivers/pci/Kconfig                              |    1 
 drivers/serial/Kconfig                           |    1 
 drivers/video/fbmon.c                            |    2 
 fs/Kconfig                                       |    1 
 include/asm-i386/agp.h                           |   15 
 include/asm-i386/atomic.h                        |    7 
 include/asm-i386/bitops.h                        |   19 
 include/asm-i386/desc.h                          |   47 
 include/asm-i386/dma-mapping.h                   |  102 
 include/asm-i386/fixmap.h                        |   20 
 include/asm-i386/floppy.h                        |   43 
 include/asm-i386/futex.h                         |    4 
 include/asm-i386/highmem.h                       |    5 
 include/asm-i386/hw_irq.h                        |    4 
 include/asm-i386/io.h                            |   41 
 include/asm-i386/kmap_types.h                    |    3 
 include/asm-i386/mach-default/mach_traps.h       |   12 
 include/asm-i386/mmu.h                           |    6 
 include/asm-i386/mmu_context.h                   |   17 
 include/asm-i386/page.h                          |   14 
 include/asm-i386/pci.h                           |   31 
 include/asm-i386/pgalloc.h                       |   31 
 include/asm-i386/pgtable-2level.h                |   12 
 include/asm-i386/pgtable-3level.h                |   35 
 include/asm-i386/pgtable.h                       |   22 
 include/asm-i386/processor.h                     |   48 
 include/asm-i386/ptrace.h                        |    5 
 include/asm-i386/rwsem.h                         |   17 
 include/asm-i386/scatterlist.h                   |    9 
 include/asm-i386/segment.h                       |   41 
 include/asm-i386/setup.h                         |   45 
 include/asm-i386/smp.h                           |    5 
 include/asm-i386/spinlock.h                      |   43 
 include/asm-i386/system.h                        |  138 -
 include/asm-i386/tlbflush.h                      |   55 
 include/asm-i386/vga.h                           |    2 
 include/asm-um/page.h                            |    2 
 include/asm-x86_64/bootsetup.h                   |   10 
 include/asm-x86_64/desc.h                        |   36 
 include/asm-x86_64/dma-mapping.h                 |  102 
 include/asm-x86_64/fixmap.h                      |   21 
 include/asm-x86_64/floppy.h                      |   45 
 include/asm-x86_64/hw_irq.h                      |   14 
 include/asm-x86_64/i387.h                        |    7 
 include/asm-x86_64/io.h                          |   49 
 include/asm-x86_64/ipi.h                         |    8 
 include/asm-x86_64/irq.h                         |   39 
 include/asm-x86_64/mmu.h                         |   13 
 include/asm-x86_64/mmu_context.h                 |  102 
 include/asm-x86_64/page.h                        |  155 +
 include/asm-x86_64/pci.h                         |   26 
 include/asm-x86_64/pda.h                         |    5 
 include/asm-x86_64/pgalloc.h                     |  157 +
 include/asm-x86_64/pgtable.h                     |  253 +-
 include/asm-x86_64/processor.h                   |   38 
 include/asm-x86_64/segment.h                     |    9 
 include/asm-x86_64/smp.h                         |   10 
 include/asm-x86_64/swiotlb.h                     |   18 
 include/asm-x86_64/system.h                      |  114 
 include/asm-x86_64/tlbflush.h                    |   14 
 include/asm-x86_64/vga.h                         |    2 
 include/asm-x86_64/xor.h                         |   23 
 include/linux/gfp.h                              |    6 
 include/linux/highmem.h                          |    6 
 include/linux/irq.h                              |    3 
 include/linux/mm.h                               |   13 
 include/linux/skbuff.h                           |   13 
 init/Kconfig                                     |    2 
 kernel/Kconfig.preempt                           |    1 
 kernel/irq/manage.c                              |   92 
 lib/Kconfig.debug                                |    2 
 lib/Makefile                                     |    2 
 linux-2.6.15.i686/arch/i386/Kconfig              |   79 
 mm/Kconfig                                       |    3 
 mm/highmem.c                                     |   11 
 mm/memory.c                                      |  118 
 mm/mmap.c                                        |    4 
 mm/page_alloc.c                                  |    6 
 net/core/dev.c                                   |   50 
 net/core/skbuff.c                                |   43 
 328 files changed, 61908 insertions(+), 818 deletions(-)

--- NEW FILE linux-2.6-xen-merge.patch ---
diff -uNp linux-2.6.15.i686/arch/i386/Kconfig.orig linux-2.6.15.i686/arch/i386/Kconfig
--- linux-2.6.15.i686/arch/i386/Kconfig.orig	2006-02-07 00:15:08.000000000 +0100
+++ linux-2.6.15.i686/arch/i386/Kconfig	2006-02-07 00:28:15.000000000 +0100
@@ -58,6 +58,15 @@ config X86_PC
 	help
 	  Choose this option if your computer is a standard PC or compatible.
 
+config X86_XEN
+	bool "Xen-compatible"
+	select X86_UP_APIC if !SMP && XEN_PRIVILEGED_GUEST
+	select X86_UP_IOAPIC if !SMP && XEN_PRIVILEGED_GUEST
+	select SWIOTLB if XEN_PHYSDEV_ACCESS
+	help
+	  Choose this option is you plan to run this kernel on top of Xen
+	  Hypervisor.
+
 config X86_ELAN
 	bool "AMD Elan"
 	help
@@ -159,6 +168,7 @@ source "arch/i386/Kconfig.cpu"
 
 config HPET_TIMER
 	bool "HPET Timer Support"
+	depends on !X86_XEN
 	help
 	  This enables the use of the HPET for the kernel's internal timer.
 	  HPET is the next generation timer replacing legacy 8254s.
@@ -202,6 +212,19 @@ config SMP
 
 	  If you don't know what to do here, say N.
 
+config SMP_ALTERNATIVES
+	bool "SMP alternatives support (EXPERIMENTAL)"
+	depends on SMP && EXPERIMENTAL
+	help
+	  Try to reduce the overhead of running an SMP kernel on a uniprocessor
+	  host slightly by replacing certain key instruction sequences
+	  according to whether we currently have more than one CPU available.
+	  This should provide a noticeable boost to performance when
+	  running SMP kernels on UP machines, and have negligible impact
+	  when running on an true SMP host.
+
+	    If unsure, say N.
+
 config NR_CPUS
 	int "Maximum number of CPUs (2-255)"
 	range 2 255
@@ -218,7 +241,7 @@ config NR_CPUS
 
 config SCHED_SMT
 	bool "SMT (Hyperthreading) scheduler support"
-	depends on SMP
+	depends on SMP && !X86_XEN
 	default off
 	help
 	  SMT scheduler support improves the CPU scheduler's decision making
@@ -230,7 +253,7 @@ source "kernel/Kconfig.preempt"
 
 config X86_UP_APIC
 	bool "Local APIC support on uniprocessors"
-	depends on !SMP && !(X86_VISWS || X86_VOYAGER)
+	depends on !SMP && !(X86_VISWS || X86_VOYAGER || XEN_UNPRIVILEGED_GUEST)
 	help
 	  A local APIC (Advanced Programmable Interrupt Controller) is an
 	  integrated interrupt controller in the CPU. If you have a single-CPU
@@ -267,12 +290,12 @@ config X86_UP_APIC_DEFAULT_OFF
 
 config X86_LOCAL_APIC
 	bool
-	depends on X86_UP_APIC || ((X86_VISWS || SMP) && !X86_VOYAGER)
+	depends on X86_UP_APIC || ((X86_VISWS || SMP) && !(X86_VOYAGER || XEN_UNPRIVILEGED_GUEST))
 	default y
 
 config X86_IO_APIC
 	bool
-	depends on X86_UP_IOAPIC || (SMP && !(X86_VISWS || X86_VOYAGER))
+	depends on X86_UP_IOAPIC || (SMP && !(X86_VISWS || X86_VOYAGER || XEN_UNPRIVILEGED_GUEST))
 	default y
 
 config X86_VISWS_APIC
@@ -280,9 +303,14 @@ config X86_VISWS_APIC
 	depends on X86_VISWS
 	default y
 
+config X86_TSC
+	bool
+	depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MGEODEGX1) && !X86_NUMAQ && !X86_XEN
+	default y
+
 config X86_MCE
 	bool "Machine Check Exception"
-	depends on !X86_VOYAGER
+	depends on !(X86_VOYAGER || X86_XEN)
 	---help---
 	  Machine Check Exception support allows the processor to notify the
 	  kernel if it detects a problem (e.g. overheating, component failure).
@@ -372,6 +400,7 @@ config X86_REBOOTFIXUPS
 
 config MICROCODE
 	tristate "/dev/cpu/microcode - Intel IA32 CPU microcode support"
+	depends on !XEN_UNPRIVILEGED_GUEST
 	---help---
 	  If you say Y here and also to "/dev file system support" in the
 	  'File systems' section, you will be able to update the microcode on
@@ -389,6 +418,7 @@ config MICROCODE
 
 config X86_MSR
 	tristate "/dev/cpu/*/msr - Model-specific register support"
+	depends on !X86_XEN
 	help
 	  This device gives privileged processes access to the x86
 	  Model-Specific Registers (MSRs).  It is a character device with
@@ -404,6 +434,10 @@ config X86_CPUID
 	  with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
 	  /dev/cpu/31/cpuid.
 
+config SWIOTLB
+	bool
+	default n
+
 source "drivers/firmware/Kconfig"
 
 choice
@@ -571,7 +605,7 @@ config HAVE_ARCH_EARLY_PFN_TO_NID
 
 config HIGHPTE
 	bool "Allocate 3rd-level pagetables from highmem"
-	depends on HIGHMEM4G || HIGHMEM64G
+	depends on (HIGHMEM4G || HIGHMEM64G) && !X86_XEN
 	help
 	  The VM uses one page table entry for each page of physical memory.
 	  For systems with a lot of RAM, this can be wasteful of precious
@@ -580,6 +614,7 @@ config HIGHPTE
 
 config MATH_EMULATION
 	bool "Math emulation"
+	depends on !X86_XEN
 	---help---
 	  Linux can emulate a math coprocessor (used for floating point
 	  operations) if you don't have one. 486DX and Pentium processors have
@@ -605,6 +640,8 @@ config MATH_EMULATION
 
 config MTRR
 	bool "MTRR (Memory Type Range Register) support"
+	depends on !XEN_UNPRIVILEGED_GUEST
+	default y if X86_XEN
 	---help---
 	  On Intel P6 family processors (Pentium Pro, Pentium II and later)
 	  the Memory Type Range Registers (MTRRs) may be used to control
@@ -639,7 +676,7 @@ config MTRR
 
 config EFI
 	bool "Boot from EFI support (EXPERIMENTAL)"
-	depends on ACPI
+	depends on ACPI && !X86_XEN
 	default n
 	---help---
 	This enables the the kernel to boot on EFI platforms using
@@ -657,7 +694,7 @@ config EFI
 
 config IRQBALANCE
  	bool "Enable kernel irq balancing"
-	depends on SMP && X86_IO_APIC
+	depends on SMP && X86_IO_APIC && !X86_XEN
 	default y
 	help
  	  The default yes will allow the kernel to do irq load balancing.
@@ -700,7 +737,7 @@ source kernel/Kconfig.hz
 
 config KEXEC
 	bool "kexec system call (EXPERIMENTAL)"
-	depends on EXPERIMENTAL
+	depends on EXPERIMENTAL && !X86_XEN
 	help
 	  kexec is a system call that implements the ability to shutdown your
 	  current kernel, and to start another kernel.  It is like a reboot
@@ -754,6 +791,7 @@ config HOTPLUG_CPU
 config DOUBLEFAULT
 	default y
 	bool "Enable doublefault exception handler" if EMBEDDED
+	depends on !XEN
 	help
           This option allows trapping of rare doublefault exceptions that
           would otherwise cause a system to silently reboot. Disabling this
@@ -764,18 +802,20 @@ endmenu
 
 
 menu "Power management options (ACPI, APM)"
-	depends on !X86_VOYAGER
+	depends on !(X86_VOYAGER || XEN_UNPRIVILEGED_GUEST)
 
+if !X86_XEN
 source kernel/power/Kconfig
+endif
 
 source "drivers/acpi/Kconfig"
 
 menu "APM (Advanced Power Management) BIOS Support"
-depends on PM && !X86_VISWS
[...66600 lines suppressed...]
+	int (*uevent)(struct xenbus_device *, char **, int, char *, int);
+	struct device_driver driver;
+	int (*read_otherend_details)(struct xenbus_device *dev);
+};
+
+static inline struct xenbus_driver *to_xenbus_driver(struct device_driver *drv)
+{
+	return container_of(drv, struct xenbus_driver, driver);
+}
+
+int xenbus_register_frontend(struct xenbus_driver *drv);
+int xenbus_register_backend(struct xenbus_driver *drv);
+void xenbus_unregister_driver(struct xenbus_driver *drv);
+
+typedef u32 xenbus_transaction_t;
+
+char **xenbus_directory(xenbus_transaction_t t,
+			const char *dir, const char *node, unsigned int *num);
+void *xenbus_read(xenbus_transaction_t t,
+		  const char *dir, const char *node, unsigned int *len);
+int xenbus_write(xenbus_transaction_t t,
+		 const char *dir, const char *node, const char *string);
+int xenbus_mkdir(xenbus_transaction_t t,
+		 const char *dir, const char *node);
+int xenbus_exists(xenbus_transaction_t t,
+		  const char *dir, const char *node);
+int xenbus_rm(xenbus_transaction_t t, const char *dir, const char *node);
+int xenbus_transaction_start(xenbus_transaction_t *t);
+int xenbus_transaction_end(xenbus_transaction_t t, int abort);
+
+/* Single read and scanf: returns -errno or num scanned if > 0. */
+int xenbus_scanf(xenbus_transaction_t t,
+		 const char *dir, const char *node, const char *fmt, ...)
+	__attribute__((format(scanf, 4, 5)));
+
+/* Single printf and write: returns -errno or 0. */
+int xenbus_printf(xenbus_transaction_t t,
+		  const char *dir, const char *node, const char *fmt, ...)
+	__attribute__((format(printf, 4, 5)));
+
+/* Generic read function: NULL-terminated triples of name,
+ * sprintf-style type string, and pointer. Returns 0 or errno.*/
+int xenbus_gather(xenbus_transaction_t t, const char *dir, ...);
+
+/* notifer routines for when the xenstore comes up */
+int register_xenstore_notifier(struct notifier_block *nb);
+void unregister_xenstore_notifier(struct notifier_block *nb);
+
+int register_xenbus_watch(struct xenbus_watch *watch);
+void unregister_xenbus_watch(struct xenbus_watch *watch);
+void xs_suspend(void);
+void xs_resume(void);
+
+/* Used by xenbus_dev to borrow kernel's store connection. */
+void *xenbus_dev_request_and_reply(struct xsd_sockmsg *msg);
+
+/* Called from xen core code. */
+void xenbus_suspend(void);
+void xenbus_resume(void);
+
+#define XENBUS_IS_ERR_READ(str) ({			\
+	if (!IS_ERR(str) && strlen(str) == 0) {		\
+		kfree(str);				\
+		str = ERR_PTR(-ERANGE);			\
+	}						\
+	IS_ERR(str);					\
+})
+
+#define XENBUS_EXIST_ERR(err) ((err) == -ENOENT || (err) == -ERANGE)
+
+
+/**
+ * Register a watch on the given path, using the given xenbus_watch structure
+ * for storage, and the given callback function as the callback.  Return 0 on
+ * success, or -errno on error.  On success, the given path will be saved as
+ * watch->node, and remains the caller's to free.  On error, watch->node will
+ * be NULL, the device will switch to XenbusStateClosing, and the error will
+ * be saved in the store.
+ */
+int xenbus_watch_path(struct xenbus_device *dev, const char *path,
+		      struct xenbus_watch *watch, 
+		      void (*callback)(struct xenbus_watch *,
+				       const char **, unsigned int));
+
+
+/**
+ * Register a watch on the given path/path2, using the given xenbus_watch
+ * structure for storage, and the given callback function as the callback.
+ * Return 0 on success, or -errno on error.  On success, the watched path
+ * (path/path2) will be saved as watch->node, and becomes the caller's to
+ * kfree().  On error, watch->node will be NULL, so the caller has nothing to
+ * free, the device will switch to XenbusStateClosing, and the error will be
+ * saved in the store.
+ */
+int xenbus_watch_path2(struct xenbus_device *dev, const char *path,
+		       const char *path2, struct xenbus_watch *watch, 
+		       void (*callback)(struct xenbus_watch *,
+					const char **, unsigned int));
+
+
+/**
+ * Advertise in the store a change of the given driver to the given new_state.
+ * Perform the change inside the given transaction xbt.  xbt may be NULL, in
+ * which case this is performed inside its own transaction.  Return 0 on
+ * success, or -errno on error.  On error, the device will switch to
+ * XenbusStateClosing, and the error will be saved in the store.
+ */
+int xenbus_switch_state(struct xenbus_device *dev,
+			xenbus_transaction_t xbt,
+			XenbusState new_state);
+
+
+/**
+ * Grant access to the given ring_mfn to the peer of the given device.  Return
+ * 0 on success, or -errno on error.  On error, the device will switch to
+ * XenbusStateClosing, and the error will be saved in the store.
+ */
+int xenbus_grant_ring(struct xenbus_device *dev, unsigned long ring_mfn);
+
+
+/**
+ * Allocate an event channel for the given xenbus_device, assigning the newly
+ * created local port to *port.  Return 0 on success, or -errno on error.  On
+ * error, the device will switch to XenbusStateClosing, and the error will be
+ * saved in the store.
+ */
+int xenbus_alloc_evtchn(struct xenbus_device *dev, int *port);
+
+
+/**
+ * Return the state of the driver rooted at the given store path, or
+ * XenbusStateClosed if no state can be read.
+ */
+XenbusState xenbus_read_driver_state(const char *path);
+
+
+/***
+ * Report the given negative errno into the store, along with the given
+ * formatted message.
+ */
+void xenbus_dev_error(struct xenbus_device *dev, int err, const char *fmt,
+		      ...);
+
+
+/***
+ * Equivalent to xenbus_dev_error(dev, err, fmt, args), followed by
+ * xenbus_switch_state(dev, NULL, XenbusStateClosing) to schedule an orderly
+ * closedown of this driver and its peer.
+ */
+void xenbus_dev_fatal(struct xenbus_device *dev, int err, const char *fmt,
+		      ...);
+
+
+#endif /* _ASM_XEN_XENBUS_H */
+
+/*
+ * Local variables:
+ *  c-file-style: "linux"
+ *  indent-tabs-mode: t
+ *  c-indent-level: 8
+ *  c-basic-offset: 8
+ *  tab-width: 8
+ * End:
+ */
diff -r 52f446a807c8 -r 2905f31ca453 include/xen/xencons.h
--- /dev/null	Thu Jan  1 00:00:00 1970 +0000
+++ b/include/xen/xencons.h	Wed Feb  1 20:21:42 2006 -0500
@@ -0,0 +1,14 @@
+#ifndef __ASM_XENCONS_H__
+#define __ASM_XENCONS_H__
+
+void xencons_force_flush(void);
+void xencons_resume(void);
+
+/* Interrupt work hooks. Receive data, or kick data out. */
+void xencons_rx(char *buf, unsigned len, struct pt_regs *regs);
+void xencons_tx(void);
+
+int xencons_ring_init(void);
+int xencons_ring_send(const char *data, unsigned len);
+
+#endif /* __ASM_XENCONS_H__ */
diff -r 52f446a807c8 -r 2905f31ca453 scripts/Makefile.xen
--- /dev/null	Thu Jan  1 00:00:00 1970 +0000
+++ b/scripts/Makefile.xen	Wed Feb  1 20:21:42 2006 -0500
@@ -0,0 +1,14 @@
+
+# cherrypickxen($1 = allobj)
+cherrypickxen = $(foreach var, $(1), \
+		$(shell o=$(var); \
+			c=$${o/%.o/-xen.c}; \
+			s=$${o/%.o/-xen.S}; \
+			oxen=$${o/%.o/-xen.o}; \
+			[ -f $(srctree)/$(src)/$${c} ] || \
+			   [ -f $(srctree)/$(src)/$${s} ] \
+				&& echo $$oxen \
+				|| echo $(var) ) \
+	  )
+# filterxen($1 = allobj, $2 = noobjs)
+filterxen = $(filter-out $(2), $(1))

linux-2.6-xen-no-tls-warn.patch:
 fixup.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE linux-2.6-xen-no-tls-warn.patch ---
--- linux-2.6.14/arch/i386/kernel/fixup.c~	2006-01-06 16:10:00.000000000 -0500
+++ linux-2.6.14/arch/i386/kernel/fixup.c	2006-01-06 16:13:01.000000000 -0500
@@ -39,7 +39,7 @@
 
 fastcall void do_fixup_4gb_segment(struct pt_regs *regs, long error_code)
 {
-	static unsigned long printed = 0;
+	static unsigned long printed = 1;
 	char info[100];
 	int i;
 

linux-2.6-xen-x86_64-fixes.patch:
 arch/x86_64/ia32/Makefile        |    2 ++
 arch/x86_64/kernel/head-xen.S    |    3 ++-
 arch/x86_64/kernel/setup-xen.c   |    3 +++
 arch/x86_64/kernel/setup64-xen.c |    2 ++
 arch/x86_64/mm/pageattr-xen.c    |    9 ++++++++-
 drivers/xen/core/smpboot.c       |   12 ++++++++++++
 6 files changed, 29 insertions(+), 2 deletions(-)

--- NEW FILE linux-2.6-xen-x86_64-fixes.patch ---
# HG changeset patch
# User cl349 at firebug.cl.cam.ac.uk
# Node ID df98f37a88b05ced33ed0915efa576e5b110b60d
# Parent  2710f2fe624a5103d198e6685e250c6678f34ec1
Fix x86_64 SMP support.

Signed-off-by: Christian Limpach <Christian.Limpach at cl.cam.ac.uk>

diff -r 2710f2fe624a -r df98f37a88b0 linux-2.6-xen-sparse/arch/x86_64/kernel/setup-xen.c
--- a/linux-2.6-xen-sparse/arch/x86_64/kernel/setup-xen.c	Tue Feb  7 12:59:27 2006 +0100
+++ b/linux-2.6-xen-sparse/arch/x86_64/kernel/setup-xen.c	Tue Feb  7 13:57:40 2006 +0000
@@ -911,6 +911,9 @@ void __init setup_arch(char **cmdline_p)
 	init_apic_mappings();
 #endif
 #endif
+#if defined(CONFIG_XEN) && defined(CONFIG_SMP) && !defined(CONFIG_HOTPLUG_CPU)
+	prefill_possible_map();
+#endif
 
 #if defined(CONFIG_XEN_PRIVILEGED_GUEST) || !defined(CONFIG_XEN)
 	/*
diff -r 2710f2fe624a -r df98f37a88b0 linux-2.6-xen-sparse/arch/x86_64/kernel/setup64-xen.c
--- a/linux-2.6-xen-sparse/arch/x86_64/kernel/setup64-xen.c	Tue Feb  7 12:59:27 2006 +0100
+++ b/linux-2.6-xen-sparse/arch/x86_64/kernel/setup64-xen.c	Tue Feb  7 13:57:40 2006 +0000
@@ -272,8 +272,10 @@ void __cpuinit cpu_init (void)
 	 * Initialize the per-CPU GDT with the boot GDT,
 	 * and set up the GDT descriptor:
 	 */
+#ifndef CONFIG_XEN 
 	if (cpu)
  		memcpy(cpu_gdt(cpu), cpu_gdt_table, GDT_SIZE);
+#endif
 
 	cpu_gdt_descr[cpu].size = GDT_SIZE;
 #ifndef CONFIG_XEN 
diff -r 2710f2fe624a -r df98f37a88b0 linux-2.6-xen-sparse/drivers/xen/core/smpboot.c
--- a/linux-2.6-xen-sparse/drivers/xen/core/smpboot.c	Tue Feb  7 12:59:27 2006 +0100
+++ b/linux-2.6-xen-sparse/drivers/xen/core/smpboot.c	Tue Feb  7 13:57:40 2006 +0000
@@ -81,6 +81,18 @@ unsigned int maxcpus = NR_CPUS;
 unsigned int maxcpus = NR_CPUS;
 #endif
 
+void __init prefill_possible_map(void)
+{
+	int i, rc;
+
+	for (i = 0; i < NR_CPUS; i++) {
+		rc = HYPERVISOR_vcpu_op(VCPUOP_is_up, i, NULL);
+		if (rc == -ENOENT)
+			break;
+		cpu_set(i, cpu_possible_map);
+	}
+}
+
 void __init smp_alloc_memory(void)
 {
 }
# HG changeset patch
# User cl349 at firebug.cl.cam.ac.uk
# Node ID 581d4a0ac7290523d04f5a7d8b35cc727baa8089
# Parent  5caf1de3f2682e91831b09f464c70662658a8e45
Fix ia32 support.

From: Chris Wright <chrisw at sous-sol.org>
Signed-off-by: Christian Limpach <Christian.Limpach at cl.cam.ac.uk>

diff -r 5caf1de3f268 -r 581d4a0ac729 linux-2.6-xen-sparse/arch/x86_64/ia32/Makefile
--- a/linux-2.6-xen-sparse/arch/x86_64/ia32/Makefile	Tue Feb  7 15:56:39 2006 +0100
+++ b/linux-2.6-xen-sparse/arch/x86_64/ia32/Makefile	Tue Feb  7 15:24:04 2006 +0000
@@ -33,6 +33,8 @@ AFLAGS_vsyscall-syscall.o = -m32 -Iarch/
 
 ifdef CONFIG_XEN
 AFLAGS_vsyscall-int80.o = -m32 -Iarch/i386/kernel
+CFLAGS_syscall32-xen.o += -DUSE_INT80
+AFLAGS_syscall32_syscall-xen.o += -DUSE_INT80
 
 $(obj)/syscall32_syscall-xen.o: \
 	$(foreach F,int80 sysenter syscall,$(obj)/vsyscall-$F.so)
# HG changeset patch
# User kaf24 at firebug.cl.cam.ac.uk
# Node ID aefd8b8c6b1fc3242e6a231a4461c12780d0c254
# Parent  581d4a0ac7290523d04f5a7d8b35cc727baa8089
Since USER_PTRS_PER_PGD depends on TASK_SIZE and thus on the current
thread, it must not be used in code that can be called in the context
switch path (otherwise the 32-bitness of the outgoing task is used
here rather then the 32-bitness of the incoming one, possibly
resulting in large parts of the page tables not getting converted to
read-only).

Signed-off-by: Jan Beulich <JBeulich at novell.com>

diff -r 581d4a0ac729 -r aefd8b8c6b1f linux-2.6-xen-sparse/arch/x86_64/mm/pageattr-xen.c
--- a/linux-2.6-xen-sparse/arch/x86_64/mm/pageattr-xen.c	Tue Feb  7 15:24:04 2006 +0000
+++ b/linux-2.6-xen-sparse/arch/x86_64/mm/pageattr-xen.c	Tue Feb  7 19:16:11 2006 +0100
@@ -40,7 +40,14 @@ static void mm_walk(struct mm_struct *mm
 	int          g,u,m;
 
 	pgd = mm->pgd;
-	for (g = 0; g <= USER_PTRS_PER_PGD; g++, pgd++) {
+	/*
+	 * Cannot iterate up to USER_PTRS_PER_PGD as these pagetables may not
+	 * be the 'current' task's pagetables (e.g., current may be 32-bit,
+	 * but the pagetables may be for a 64-bit task).
+	 * Subtracting 1 from TASK_SIZE64 means the loop limit is correct
+	 * regardless of whether TASK_SIZE64 is a multiple of PGDIR_SIZE.
+	 */
+	for (g = 0; g <= ((TASK_SIZE64-1) / PGDIR_SIZE); g++, pgd++) {
 		if (pgd_none(*pgd))
 			continue;
 		pud = pud_offset(pgd, 0);
# HG changeset patch
# User cl349 at firebug.cl.cam.ac.uk
# Node ID 57e6d721842703c08bf7dafbfb5efe3c9a44725d
# Parent  7cd3d2e41559a047b0c329b2f9032cc555ca209c
Fix hypercall_page location on x86_64.

Signed-off-by: Christian Limpach <Christian.Limpach at cl.cam.ac.uk>

diff -r 7cd3d2e41559 -r 57e6d7218427 linux-2.6-xen-sparse/arch/x86_64/kernel/head-xen.S
--- a/linux-2.6-xen-sparse/arch/x86_64/kernel/head-xen.S	Fri Feb  3 18:24:28 2006 +0000
+++ b/linux-2.6-xen-sparse/arch/x86_64/kernel/head-xen.S	Fri Feb  3 18:45:14 2006 +0000
@@ -19,7 +19,7 @@
 	.ascii	"GUEST_OS=linux,GUEST_VER=2.6"
 	.ascii	",XEN_VER=xen-3.0"
 	.ascii	",VIRT_BASE=0xffffffff80000000"
-	.ascii	",HYPERCALL_PAGE=0x10d" /* __pa(hypercall_page) >> 12 */
+	.ascii	",HYPERCALL_PAGE=0x10a" /* __pa(hypercall_page) >> 12 */
 	.ascii	",LOADER=generic"
 	.byte	0
       
# HG changeset patch
# User cl349 at firebug.cl.cam.ac.uk
# Node ID 1bc2d1fe503c331157bac60e6534e78693fbc1d4
# Parent  c5fd98fcb127f5de28312ed8a36e67b31c74dca2
Fill hypercall_page so that its VA space doesn't get used for code.

Signed-off-by: Christian Limpach <Christian.Limpach at cl.cam.ac.uk>

diff -r c5fd98fcb127 -r 1bc2d1fe503c linux-2.6-xen-sparse/arch/x86_64/kernel/head-xen.S
--- a/linux-2.6-xen-sparse/arch/x86_64/kernel/head-xen.S	Mon Feb  6 14:52:45 2006 +0100
+++ b/linux-2.6-xen-sparse/arch/x86_64/kernel/head-xen.S	Mon Feb  6 15:26:29 2006 +0000
@@ -189,6 +189,7 @@ NEXT_PAGE(hypercall_page)
 	 * different address than expected. */
 	.quad	__adjust_hypercall_page_in_header
 .endif
+	.fill	512,8,0
 
 #undef NEXT_PAGE
 

linux-2.6-xen_net_read_mac_export.patch:
 net_driver_util.c |    1 +
 1 files changed, 1 insertion(+)

--- NEW FILE linux-2.6-xen_net_read_mac_export.patch ---
diff -uNp linux-2.6.14/drivers/xen/net_driver_util.c.orig linux-2.6.14/drivers/xen/net_driver_util.c
--- linux-2.6.14/drivers/xen/net_driver_util.c.orig	2005-12-20 17:59:34.000000000 +0100
+++ linux-2.6.14/drivers/xen/net_driver_util.c	2005-12-20 17:59:52.000000000 +0100
@@ -55,6 +55,7 @@ int xen_net_read_mac(struct xenbus_devic
 	return 0;
 }
 
+EXPORT_SYMBOL_GPL(xen_net_read_mac);
 
 /*
  * Local variables:

linux-2.6-xen_remap_vma_flags.patch:
 ioremap-xen.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE linux-2.6-xen_remap_vma_flags.patch ---
diff -uNp linux-2.6.14/arch/i386/mm/ioremap-xen.c.orig linux-2.6.14/arch/i386/mm/ioremap-xen.c
--- linux-2.6.14/arch/i386/mm/ioremap-xen.c.orig	2005-12-20 20:08:14.000000000 +0100
+++ linux-2.6.14/arch/i386/mm/ioremap-xen.c	2005-12-20 20:09:10.000000000 +0100
@@ -118,7 +118,7 @@ int direct_remap_pfn_range(struct vm_are
 			   domid_t  domid)
 {
 	/* Same as remap_pfn_range(). */
-	vma->vm_flags |= VM_IO | VM_RESERVED;
+	vma->vm_flags |= VM_IO | VM_RESERVED | VM_PFNMAP;
 
 	return __direct_remap_pfn_range(
 		vma->vm_mm, address, mfn, size, prot, domid);


--- NEW FILE patch-2.6.16-rc3-git1.bz2.sign ---
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: See http://www.kernel.org/signature.html for info

iD8DBQBD8NeqyGugalF9Dw4RAlGFAJwK1rbxp7P0fmRWfAjBKO59vWUF/wCfThik
BmIX5AUTGM0kOHuU023345U=
=yqCV
-----END PGP SIGNATURE-----


Index: .cvsignore
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/.cvsignore,v
retrieving revision 1.349
retrieving revision 1.350
diff -u -r1.349 -r1.350
--- .cvsignore	13 Feb 2006 03:11:41 -0000	1.349
+++ .cvsignore	13 Feb 2006 21:17:47 -0000	1.350
@@ -3,3 +3,5 @@
 kernel-2.6.15
 linux-2.6.15.tar.bz2
 patch-2.6.16-rc3.bz2
+xen-20060208.tar.bz2
+patch-2.6.16-rc3-git1.bz2


Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/kernel-2.6.spec,v
retrieving revision 1.1943
retrieving revision 1.1944
diff -u -r1.1943 -r1.1944
--- kernel-2.6.spec	13 Feb 2006 19:07:22 -0000	1.1943
+++ kernel-2.6.spec	13 Feb 2006 21:17:47 -0000	1.1944
@@ -5,7 +5,7 @@
 
 %define buildup 1
 %define buildsmp 1
-%define includexen 0
+%define includexen 1
 # includexenPAE requieres includexen enabled
 %define includexenPAE 0
 %define builddoc 0
@@ -66,6 +66,7 @@
 %ifarch x86_64
 %define buildsmp 0
 %define buildkdump 1
+%define buildxen %{includexen}
 %define all_arch_configs $RPM_SOURCE_DIR/kernel-%{kversion}-x86_64*.config
 %define image_install_path boot
 %define signmodules 1
@@ -146,7 +147,7 @@
 #
 # The ld.so.conf.d file we install uses syntax older ldconfig's don't grok.
 #
-%define xen_conflicts glibc < 2.3.5-1
+%define xen_conflicts glibc < 2.3.5-1, xen < 3.0.1
 
 #
 # Packages that need to be installed before the kernel is, because the %post
@@ -182,6 +183,8 @@
 
 
 Source0: ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-%{kversion}.tar.bz2
+Source1: xen-20060208.tar.bz2
+Source2: Config.mk
 
 Source10: COPYING.modules
 Source11: genkey
@@ -206,11 +209,14 @@
 #Source36: kernel-%{kversion}-sparc64-smp.config
 Source37: kernel-%{kversion}-i686-hypervisor-PAE.config
 Source38: kernel-%{kversion}-i686-guest-PAE.config
+Source39: kernel-%{kversion}-x86_64-hypervisor.config
+Source40: kernel-%{kversion}-x86_64-guest.config
 
 #
 # Patches 0 through 100 are meant for core subsystem upgrades
 #
 Patch1: patch-2.6.16-rc3.bz2
+Patch2: patch-2.6.16-rc3-git1.bz2
 Patch3: linux-2.6-cpufreq-git.patch
 
 # Patches 100 through 500 are meant for architecture patches
@@ -221,7 +227,7 @@
 Patch200: linux-2.6-x86-tune-p4.patch
 Patch201: linux-2.6-x86-apic-off-by-default.patch
 Patch202: linux-2.6-x86-vga-vidfail.patch
-Patch203: linux-2.6.14-intel-cache-build.patch
+Patch203: linux-2.6-intel-cache-build.patch
 Patch204: linux-2.6-x86_64-silence-up-apic-errors.patch
 Patch205: linux-2.6-edid-check.patch
 Patch206: linux-2.6-x86_64-tif-restore-sigmask.patch
@@ -242,9 +248,15 @@
 # 600 - 699   sparc(64)
 
 # 700 - 799 Xen
-Patch700: linux-2.6-xen.patch
-Patch701: linux-2.6-xen-additional.patch
-Patch702: linux-2.6-xen-compile.patch
+Patch700: linux-2.6-xen-merge.patch
+Patch701: linux-2.6-xen-compile-fixes.patch
+Patch702: linux-2.6-xen-no-tls-warn.patch
+Patch704: linux-2.6-xen-guest-enable-char-devices.patch
+Patch705: linux-2.6-xen_net_read_mac_export.patch
+Patch706: linux-2.6-xen_remap_vma_flags.patch
+Patch707: linux-2.6-xen-acpi.patch
+Patch708: linux-2.6-xen-x86_64-fixes.patch
+Patch709: linux-2.6-percpu-NR_CPUS-hotplug-fix.patch
 
 #
 # Patches 800 through 899 are reserved for bugfixes to the core system
@@ -259,6 +271,7 @@
 Patch812: linux-2.6-execshield-vdso.patch
 Patch813: linux-2.6-xen-vdso-note.patch
 Patch814: linux-2.6-execshield-fixes.patch
+Patch815: linux-2.6-vdso-xen.patch
 
 # Module signing infrastructure.
 Patch900: linux-2.6-modsign-core.patch
@@ -394,6 +407,8 @@
 # Do not add anything non-trivial here.
 Patch10001: linux-2.6-random-patches.patch
 
+Patch20000: linux-2.6-xen-gcc-4.1-compile-fix.patch
+
 # END OF PATCH DEFINITIONS
 
 BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
@@ -655,8 +670,9 @@
 %prep
 if [ ! -d kernel-%{kversion}/vanilla ]; then
   # Ok, first time we do a make prep.
-%setup -q -n %{name}-%{version} -c
+%setup -q -n %{name}-%{version} -c -a1
   rm -f pax_global_header
+  cp %{SOURCE2} .
   mv linux-%{kversion} vanilla
 else
   # We already have a vanilla dir.
@@ -667,10 +683,17 @@
   fi
 fi
 cp -rl vanilla linux-%{kversion}.%{_target_cpu}
+
+%if %{buildxen}
+cd xen
+%patch20000 -p1
+cd ..
+%endif
 cd linux-%{kversion}.%{_target_cpu}
 
 # Update to latest upstream.
 %patch1 -p1
+%patch2 -p1
 %patch3 -p1
 
 #
@@ -734,9 +757,16 @@
 # Xen
 #
 %if %{includexen}
+# Base Xen patch from linux-2.6-merge.hg
 %patch700 -p1
 %patch701 -p1
 %patch702 -p1
+%patch704 -p1
+%patch705 -p1
+%patch706 -p1
+%patch707 -p1
+%patch708 -p2
+%patch709 -p1
 %endif
 
 #
@@ -758,14 +788,9 @@
 # Xen exec-shield bits
 %if %{includexen}
 %patch811 -p1
-%endif
-
-# Fix up the vdso.
 %patch812 -p1
-
-# Xen vDSO hack
-%if %{includexen}
 %patch813 -p1
+#%patch815 -p1
 %endif
 
 # Final small execshield fixes.
@@ -818,7 +843,8 @@
 #
 %patch1050 -p1
 %if %{includexen}
-%patch1051 -p1
+#TODO! --sct @@@
+#%patch1051 -p1
 %endif
 
 #
@@ -1123,6 +1149,9 @@
     mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
     cd include
     cp -a acpi config linux math-emu media net pcmcia rxrpc scsi sound video asm asm-generic $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
+%if %{buildxen}
+    cp -a asm-xen $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
+%endif
     cp -a `readlink asm` $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
     if [ "$Arch" = "x86_64" ]; then
       cp -a asm-i386 $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
@@ -1204,6 +1233,21 @@
 rm -rf $RPM_BUILD_ROOT
 mkdir -p $RPM_BUILD_ROOT/boot
 
+%if %{buildxen}
+  cd xen
+  mkdir -p $RPM_BUILD_ROOT/%{image_install_path}
+%if %{buildxenPAE}
+  make debug=y verbose=y crash_debug=y pae=y
+  install -m 644 xen.gz $RPM_BUILD_ROOT/boot/xen.gz-%{KVERREL}-PAE
+  install -m 755 xen-syms $RPM_BUILD_ROOT/boot/xen-syms-%{KVERREL}-PAE
+  make clean
+%endif
+  make debug=y verbose=y crash_debug=y
+  install -m 644 xen.gz $RPM_BUILD_ROOT/boot/xen.gz-%{KVERREL}
+  install -m 755 xen-syms $RPM_BUILD_ROOT/boot/xen-syms-%{KVERREL}
+  cd ..
+%endif
+
 cd linux-%{kversion}.%{_target_cpu}
 
 %if %{buildup}
@@ -1311,7 +1355,7 @@
 
 %post xen-hypervisor
 [ ! -x /usr/sbin/module_upgrade ] || /usr/sbin/module_upgrade %{rpmversion}-%{release}-hypervisor
-/sbin/new-kernel-pkg --package kernel-hypervisor --mkinitrd --depmod --install --multiboot %{KVERREL}hypervisor
+/sbin/new-kernel-pkg --package kernel-hypervisor --mkinitrd --depmod --install --multiboot=/boot/xen.gz-%{KVERREL} %{KVERREL}hypervisor
 [ ! -x /sbin/ldconfig ] || /sbin/ldconfig -X
 
 %post xen-hypervisor-devel
@@ -1324,6 +1368,7 @@
 
 %post xen-guest
 [ ! -x /usr/sbin/module_upgrade ] || /usr/sbin/module_upgrade %{rpmversion}-%{release}-guest
+/sbin/new-kernel-pkg --package kernel-guest --mkinitrd --depmod --install %{KVERREL}guest
 [ ! -x /sbin/ldconfig ] || /sbin/ldconfig -X
 
 %post xen-guest-devel
@@ -1336,7 +1381,7 @@
 
 %post xen-hypervisor-PAE
 [ ! -x /usr/sbin/module_upgrade ] || /usr/sbin/module_upgrade %{rpmversion}-%{release}-hypervisor-PAE
-/sbin/new-kernel-pkg --package kernel-hypervisor-PAE --mkinitrd --depmod --install --multiboot %{KVERREL}hypervisor-PAE
+/sbin/new-kernel-pkg --package kernel-hypervisor-PAE --mkinitrd --depmod --install --multiboot=/boot/xen.gz-%{KVERREL}-PAE %{KVERREL}hypervisor-PAE
 [ ! -x /sbin/ldconfig ] || /sbin/ldconfig -X
 
 %post xen-hypervisor-PAE-devel
@@ -1349,6 +1394,7 @@
 
 %post xen-guest-PAE
 [ ! -x /usr/sbin/module_upgrade ] || /usr/sbin/module_upgrade %{rpmversion}-%{release}-guest-PAE
+/sbin/new-kernel-pkg --package kernel-guest-PAE --mkinitrd --depmod --install %{KVERREL}guest-PAE
 [ ! -x /sbin/ldconfig ] || /sbin/ldconfig -X
 
 %post xen-guest-PAE-devel
@@ -1443,6 +1489,8 @@
 /%{image_install_path}/vmlinuz-%{KVERREL}hypervisor
 /boot/System.map-%{KVERREL}hypervisor
 /boot/config-%{KVERREL}hypervisor
+/boot/xen.gz-%{KVERREL}
+/boot/xen-syms-%{KVERREL}
 %dir /lib/modules/%{KVERREL}hypervisor
 /lib/modules/%{KVERREL}hypervisor/kernel
 %verify(not mtime) /lib/modules/%{KVERREL}hypervisor/build
@@ -1481,6 +1529,8 @@
 /%{image_install_path}/vmlinuz-%{KVERREL}hypervisor-PAE
 /boot/System.map-%{KVERREL}hypervisor-PAE
 /boot/config-%{KVERREL}hypervisor-PAE
+/boot/xen.gz-%{KVERREL}-PAE
+/boot/xen-syms-%{KVERREL}-PAE
 %dir /lib/modules/%{KVERREL}hypervisor-PAE
 /lib/modules/%{KVERREL}hypervisor-PAE/kernel
 %verify(not mtime) /lib/modules/%{KVERREL}hypervisor-PAE/build
@@ -1544,6 +1594,21 @@
 %endif
 
 %changelog
+* Mon Feb 13 2006 Dave Jones <davej at redhat.com>
+- 2.6.16rc3-git1
+- Merge kernel-xen back to kernel.
+
+* Mon Feb 13 2006 Juan Quintela <quintela at redhat.com>
+- rebase rawhide 1.1941.
+
+* Mon Feb 13 2006 Juan Quintela <quintela at redhat.com>
+- rebase with rawhide 1.1940.
+- build only for x86_64 & i686.
+
+* Sun Feb 12 2006 Juan Quintela <quintela at redhat.com>
+- make real release, only with x86_64 & i686.
+- rebase with rawhide 1.1936
+
 * Sun Feb 12 2006 Dave Jones <davej at redhat.com>
 - 2.6.16rc2-git11, -git12, and 2.6.16rc3
 - Fix warning in bcm43xx driver.
@@ -1556,6 +1621,18 @@
 * Sat Feb 11 2006 Dave Jones <davej at redhat.com>
 - 2.6.16rc2-git10
 
+* Sat Feb 11 2006 Juan Quintela <quintela at redhat.com>
+- i686 xen PAE xennet fix.
+
+* Fri Feb 10 2006 Juan Quintela <quintela at redhat.com>
+- rebase 1.1927.
+- added xen smp fixes.
+- added xen x86_64 fixes.
+
+* Fri Feb 10 2006 Juan Quintela <quintela at redhat.com>
+- rebase rawhide 1.1924.
+- merge with rawhide spec file.
+
 * Fri Feb 10 2006 Dave Jones <davej at redhat.com>
 - 2.6.16rc2-git8 & -git9
 - Begin the kernel-xen & kernel merge by merging the easy bits.
@@ -1591,6 +1668,24 @@
 - add up, smp & kdump kernels.
 - add xen PAE kernels.
 
+* Wed Feb  8 2006 Rik van Riel <riel at redhat.com>
+- fix oops on SMP boot (#180535)
+
+* Wed Feb  8 2006 Jeremy Katz <katzj at redhat.com> 
+- update to newer hypervisor snapshot, conflict with older tools
+- fix pae hypervisor new-kernel-pkg call
+
+* Wed Feb  8 2006 Juan Quintela <quintela at redhat.com>
+- make_target & kernel_image passed as arguments to BuildKernel.
+
+* Wed Feb  8 2006 Juan Quintela <quintela at redhat.com>
+- removed SMP_ALTERNATIVES from smp kernel.
+
+* Wed Feb  8 2006 Juan Quintela <quintela at redhat.com>
+- merge with rawhide 1.1918.
+- add up, smp & kdump kernels.
+- add xen PAE kernels.
+
 * Wed Feb  8 2006 Dave Jones <davej at redhat.com>
 - 2.6.16rc2-git6
 

linux-2.6-crash-xen.patch:
 init-xen.c |    2 ++
 1 files changed, 2 insertions(+)

Index: linux-2.6-crash-xen.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/linux-2.6-crash-xen.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-crash-xen.patch	15 Oct 2005 01:07:29 -0000	1.1
+++ linux-2.6-crash-xen.patch	13 Feb 2006 21:17:47 -0000	1.2
@@ -1,10 +1,19 @@
---- linux-2.6.10/arch/xen/i386/mm/init.c.crash	2005-02-23 15:09:46.520537480 -0500
-+++ linux-2.6.10/arch/xen/i386/mm/init.c	2005-02-23 15:10:05.259476105 -0500
-@@ -244,6 +244,7 @@ static inline int page_is_ram(unsigned l
- 	}
- 	return 0;
- }
-+EXPORT_SYMBOL_GPL(page_is_ram);
+Fix up xen for crash driver in rawhide
+---
+
+ arch/i386/xen/mm/init.c |    2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/arch/i386/xen/mm/init.c b/arch/i386/xen/mm/init.c
+index 4c8c7ac..caf4afd 100644
+--- a/arch/i386/mm/init-xen.c
++++ b/arch/i386/mm/init-xen.c
+@@ -281,6 +281,8 @@ int page_is_ram(unsigned long pagenr)
+ 
+ #endif
  
++EXPORT_SYMBOL_GPL(page_is_ram);
++
  #ifdef CONFIG_HIGHMEM
  pte_t *kmap_pte;
+ pgprot_t kmap_prot;

linux-2.6-crashdump-common.patch:
 linux-2.6.12/Documentation/sysrq.txt         |    8 
 linux-2.6.12/arch/i386/kernel/nmi.c          |    1 
 linux-2.6.12/arch/i386/kernel/traps.c        |    3 
 linux-2.6.12/arch/i386/mm/init.c             |   47 +++++
 linux-2.6.12/arch/i386/mm/pgtable.c          |    3 
 linux-2.6.12/arch/ia64/kernel/process.c      |   30 ++-
 linux-2.6.12/arch/ia64/kernel/traps.c        |    6 
 linux-2.6.12/arch/ia64/mm/contig.c           |    3 
 linux-2.6.12/arch/ia64/mm/discontig.c        |    3 
 linux-2.6.12/arch/ia64/mm/init.c             |   90 +++++++++
 linux-2.6.12/arch/powerpc/kernel/process.c   |    1 
 linux-2.6.12/arch/powerpc/kernel/traps.c     |    3 
 linux-2.6.12/arch/powerpc/mm/mem.c           |   29 +++
 linux-2.6.12/arch/s390/kernel/traps.c        |    6 
 linux-2.6.12/arch/x86_64/kernel/process.c    |    2 
 linux-2.6.12/arch/x86_64/kernel/traps.c      |    6 
 linux-2.6.12/arch/x86_64/mm/init.c           |   32 +++
 linux-2.6.12/drivers/char/sysrq.c            |    2 
 linux-2.6.12/include/asm-generic/crashdump.h |   47 +++++
 linux-2.6.12/include/asm-i386/crashdump.h    |  123 +++++++++++++
 linux-2.6.12/include/asm-i386/kmap_types.h   |    4 
 linux-2.6.12/include/asm-ia64/crashdump.h    |   72 +++++++
 linux-2.6.12/include/asm-powerpc/crashdump.h |   61 ++++++
 linux-2.6.12/include/asm-x86_64/crashdump.h  |   86 +++++++++
 linux-2.6.12/include/linux/kernel.h          |   18 +
 linux-2.6.12/kernel/Makefile                 |    2 
 linux-2.6.12/kernel/dump.c                   |  246 +++++++++++++++++++++++++++
 linux-2.6.12/kernel/panic.c                  |    4 
 linux-2.6.12/kernel/printk.c                 |   20 ++
 linux-2.6.12/kernel/sched.c                  |    2 
 linux-2.6.13/arch/x86_64/mm/fault.c          |    1 
 linux-2.6.13/drivers/char/sysrq.c            |    5 
 32 files changed, 952 insertions(+), 14 deletions(-)

Index: linux-2.6-crashdump-common.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/linux-2.6-crashdump-common.patch,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- linux-2.6-crashdump-common.patch	26 Jan 2006 20:45:32 -0000	1.8
+++ linux-2.6-crashdump-common.patch	13 Feb 2006 21:17:47 -0000	1.9
@@ -239,14 +239,15 @@
 +#endif /* _ASM_X86_64_CRASHDUMP_H */
 --- linux-2.6.12/include/asm-i386/kmap_types.h.orig	2005-06-17 15:48:29.000000000 -0400
 +++ linux-2.6.12/include/asm-i386/kmap_types.h	2005-08-18 14:23:59.000000000 -0400
-@@ -23,7 +23,9 @@
+@@ -23,8 +23,10 @@
  D(10)	KM_IRQ1,
  D(11)	KM_SOFTIRQ0,
  D(12)	KM_SOFTIRQ1,
--D(13)	KM_TYPE_NR
-+D(13)	KM_CRASHDUMP,
-+D(14)	KM_UNUSED,
-+D(15)	KM_TYPE_NR
+ D(13)	KM_SWIOTLB,
+-D(14)	KM_TYPE_NR
++D(14)	KM_CRASHDUMP,
++D(15)	KM_UNUSED,
++D(16)	KM_TYPE_NR
  };
  
  #undef D

linux-2.6-execshield-fixes.patch:
 linux-2.6.15.i686/include/asm-i386/desc.h         |    2 +-
 linux-exec-shield-curr.q/arch/i386/kernel/traps.c |    2 +-
 linux-exec-shield-curr.q/fs/proc/base.c           |    2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

Index: linux-2.6-execshield-fixes.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/linux-2.6-execshield-fixes.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- linux-2.6-execshield-fixes.patch	17 Jan 2006 21:18:44 -0000	1.3
+++ linux-2.6-execshield-fixes.patch	13 Feb 2006 21:17:47 -0000	1.4
@@ -30,16 +30,15 @@
  #endif
  #ifdef CONFIG_SECURITY
  	E(PROC_TGID_ATTR,      "attr",    S_IFDIR|S_IRUGO|S_IXUGO),
-Index: linux-exec-shield-curr.q/include/asm-i386/desc.h
-===================================================================
---- linux-exec-shield-curr.q.orig/include/asm-i386/desc.h
-+++ linux-exec-shield-curr.q/include/asm-i386/desc.h
-@@ -168,7 +168,7 @@ static inline void set_user_cs(struct de
- }
+diff -uNp linux-2.6.15.i686/include/asm-i386/desc.h.orig linux-2.6.15.i686/include/asm-i386/desc.h
+--- linux-2.6.15.i686/include/asm-i386/desc.h.orig	2006-01-25 17:57:49.000000000 -0500
++++ linux-2.6.15.i686/include/asm-i386/desc.h	2006-01-25 18:00:02.000000000 -0500
+@@ -208,7 +208,7 @@ static inline void set_user_cs(struct de
  
+ #ifndef CONFIG_X86_XEN
  #define load_user_cs_desc(cpu, mm) \
 -    	per_cpu(cpu_gdt_table, (cpu))[GDT_ENTRY_DEFAULT_USER_CS] = (mm)->context.user_cs
-+    	get_cpu_gdt_table(cpu)[GDT_ENTRY_DEFAULT_USER_CS] = (mm)->context.user_cs
- 
- extern void arch_add_exec_range(struct mm_struct *mm, unsigned long limit);
- extern void arch_remove_exec_range(struct mm_struct *mm, unsigned long limit);
++ 	get_cpu_gdt_table(cpu)[GDT_ENTRY_DEFAULT_USER_CS] = (mm)->context.user_cs
+ #else
+ #define load_user_cs_desc(cpu, mm) \
+ 	HYPERVISOR_update_descriptor(virt_to_machine(&get_cpu_gdt_table(cpu)[GDT_ENTRY_DEFAULT_USER_CS]), (u64)(mm)->context.user_cs.a | ((u64)(mm)->context.user_cs.b) << 32);

linux-2.6-execshield-xen.patch:
 arch/i386/kernel/entry-xen.S                         |    8 +
 arch/i386/kernel/process-xen.c                       |   58 +++++++++++
 arch/i386/kernel/smp-xen.c                           |    2 
 arch/i386/kernel/traps-xen.c                         |   93 ++++++++++++++++++-
 arch/i386/mm/init-xen.c                              |   11 +-
 linux-2.6.14/include/asm-i386/desc.h                 |    5 +
 linux-2.6.15.noarch/arch/x86_64/kernel/setup64-xen.c |   23 ----
 7 files changed, 171 insertions(+), 29 deletions(-)

Index: linux-2.6-execshield-xen.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/linux-2.6-execshield-xen.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-execshield-xen.patch	15 Oct 2005 01:02:15 -0000	1.1
+++ linux-2.6-execshield-xen.patch	13 Feb 2006 21:17:47 -0000	1.2
@@ -1,78 +1,69 @@
-diff -urNp --exclude-from=/home/davej/.exclude linux-811/arch/xen/i386/kernel/cpu/common.c linux-812/arch/xen/i386/kernel/cpu/common.c
---- linux-811/arch/xen/i386/kernel/cpu/common.c
-+++ linux-812/arch/xen/i386/kernel/cpu/common.c
-@@ -400,6 +400,12 @@ void __init identify_cpu(struct cpuinfo_
- 	if (disable_pse)
- 		clear_bit(X86_FEATURE_PSE, c->x86_capability);
- 
-+	/* hack: disable SEP for non-NX cpus; SEP breaks Execshield. */
-+	#ifdef CONFIG_HIGHMEM64G
-+	if (!test_bit(X86_FEATURE_NX, c->x86_capability))
-+	#endif
-+		clear_bit(X86_FEATURE_SEP, c->x86_capability);
-+
- 	/* If the model name is still unset, do table lookup. */
- 	if ( !c->x86_model_id[0] ) {
- 		char *p;
-diff -urNp --exclude-from=/home/davej/.exclude linux-811/arch/xen/i386/kernel/entry.S linux-812/arch/xen/i386/kernel/entry.S
---- linux-811/arch/xen/i386/kernel/entry.S
-+++ linux-812/arch/xen/i386/kernel/entry.S
-@@ -234,7 +234,12 @@ sysenter_past_esp:
+Merge rawhide execshield diffs into xen subarch
+---
+
+ arch/i386/xen/kernel/entry.S              |    8 ++
+ arch/i386/xen/kernel/process.c            |   58 ++++++++++++++++++
+ arch/i386/xen/kernel/smp.c                |    2 +
+ arch/i386/xen/kernel/traps.c              |   93 ++++++++++++++++++++++++++++-
+ arch/i386/xen/mm/init.c                   |   11 +++
+ include/asm-i386/mach-xen/asm/desc.h      |   14 ++++
+ include/asm-i386/mach-xen/asm/mmu.h       |    2 +
+ include/asm-i386/mach-xen/asm/processor.h |    6 ++
+ 8 files changed, 187 insertions(+), 7 deletions(-)
+
+diff --git a/arch/i386/xen/kernel/entry.S b/arch/i386/xen/kernel/entry.S
+index 8e71c50..ced2bb8 100644
+--- a/arch/i386/kernel/entry-xen.S
++++ b/arch/i386/kernel/entry-xen.S
+@@ -233,8 +233,12 @@ sysenter_past_esp:
  	pushl %ebp
  	pushfl
  	pushl $(__USER_CS)
 -	pushl $SYSENTER_RETURN
+-
 +	/*
 +	 * Push current_thread_info()->sysenter_return to the stack.
 +	 * A tiny bit of offset fixup is necessary - 4*4 means the 4 words
 +	 * pushed above; +8 corresponds to copy_thread's esp0 setting.
 +	 */
 +	pushl (TI_sysenter_return-THREAD_SIZE+8+4*4)(%esp)
- 
  /*
   * Load the potential sixth argument from user stack.
-diff -urNp --exclude-from=/home/davej/.exclude linux-811/arch/xen/i386/kernel/process.c linux-812/arch/xen/i386/kernel/process.c
---- linux-811/arch/xen/i386/kernel/process.c
-+++ linux-812/arch/xen/i386/kernel/process.c
-@@ -55,6 +55,7 @@
- 
- #include <linux/irq.h>
- #include <linux/err.h>
-+#include <linux/random.h>
- 
- #include <asm/tlbflush.h>
- #include <asm/cpu.h>
-@@ -94,6 +95,52 @@ void enable_hlt(void)
- 
- EXPORT_SYMBOL(enable_hlt);
+  * Careful about security.
+diff --git a/arch/i386/xen/kernel/process.c b/arch/i386/xen/kernel/process.c
+index 55be738..dbd41a1 100644
+--- a/arch/i386/kernel/process-xen.c
++++ b/arch/i386/kernel/process-xen.c
+@@ -543,6 +543,8 @@ struct task_struct fastcall * __switch_t
+ #if 0 /* lazy fpu sanity check */
+ 	else BUG_ON(!(read_cr0() & 8));
+ #endif
++	if (next_p->mm)
++		load_user_cs_desc(cpu, next_p->mm);
  
-+void randomize_brk(unsigned long old_brk)
-+{
-+	unsigned long new_brk, range_start, range_end;
-+
-+	range_start = 0x08000000;
-+	if (current->mm->brk >= range_start)
-+		range_start = current->mm->brk;
-+	range_end = range_start + 0x02000000;
-+	new_brk = randomize_range(range_start, range_end, 0);
-+	if (new_brk)
-+		current->mm->brk = new_brk;
-+}
+ 	/*
+ 	 * Reload esp0.
+@@ -835,3 +837,59 @@ unsigned long arch_align_stack(unsigned 
+ 		sp -= get_random_int() % 8192;
+ 	return sp & ~0xf;
+ }
 +
 +void arch_add_exec_range(struct mm_struct *mm, unsigned long limit)
 +{
 +	if (limit > mm->context.exec_limit) {
 +		mm->context.exec_limit = limit;
 +		set_user_cs(&mm->context.user_cs, limit);
-+		if (mm == current->mm)
++		if (mm == current->mm) {
++			preempt_disable();
 +			load_user_cs_desc(smp_processor_id(), mm);
++			preempt_enable();
++		}
 +	}
 +}
-+
 +void arch_remove_exec_range(struct mm_struct *mm, unsigned long old_end)
 +{
 +	struct vm_area_struct *vma;
-+	unsigned long limit = 0;
++	unsigned long limit = PAGE_SIZE;
 +
 +	if (old_end == mm->context.exec_limit) {
 +		for (vma = mm->mmap; vma; vma = vma->vm_next)
@@ -81,8 +72,11 @@
 +
 +		mm->context.exec_limit = limit;
 +		set_user_cs(&mm->context.user_cs, limit);
-+		if (mm == current->mm)
++		if (mm == current->mm) {
++			preempt_disable();
 +			load_user_cs_desc(smp_processor_id(), mm);
++			preempt_enable();
++		}
 +	}
 +}
 +
@@ -92,55 +86,28 @@
 +	set_user_cs(&mm->context.user_cs, 0);
 +}
 +
- /* XXX XEN doesn't use default_idle(), poll_idle(). Use xen_idle() instead. */
- extern void stop_hz_timer(void);
- extern void start_hz_timer(void);
-@@ -566,6 +613,12 @@ struct task_struct fastcall * __switch_t
- 	}
- 
- 	/*
-+	 * Exec-shield CS adjustment.
-+	 */
-+	if (next_p->mm)
-+		load_user_cs_desc(cpu, next_p->mm);
++/*
++ * Generate random brk address between 128MB and 196MB. (if the layout
++ * allows it.)
++ */
++void randomize_brk(unsigned long old_brk)
++{
++	unsigned long new_brk, range_start, range_end;
 +
-+	/*
- 	 * Now maybe reload the debug registers
- 	 */
- 	if (unlikely(next->debugreg[7])) {
-diff -urNp --exclude-from=/home/davej/.exclude linux-811/arch/xen/i386/kernel/signal.c linux-812/arch/xen/i386/kernel/signal.c
---- linux-811/arch/xen/i386/kernel/signal.c
-+++ linux-812/arch/xen/i386/kernel/signal.c
-@@ -380,7 +380,7 @@ static void setup_frame(int sig, struct 
- 			goto give_sigsegv;
- 	}
- 
--	restorer = &__kernel_sigreturn;
-+	restorer = current->mm->context.vdso + (long)&__kernel_sigreturn;
- 	if (ka->sa.sa_flags & SA_RESTORER)
- 		restorer = ka->sa.sa_restorer;
- 
-@@ -475,7 +475,7 @@ static void setup_rt_frame(int sig, stru
- 		goto give_sigsegv;
- 
- 	/* Set up to return from userspace.  */
--	restorer = &__kernel_rt_sigreturn;
-+	restorer = current->mm->context.vdso + (long)&__kernel_rt_sigreturn;
- 	if (ka->sa.sa_flags & SA_RESTORER)
- 		restorer = ka->sa.sa_restorer;
- 	err |= __put_user(restorer, &frame->pretcode);
-diff -urNp --exclude-from=/home/davej/.exclude linux-811/arch/xen/i386/kernel/smp.c linux-812/arch/xen/i386/kernel/smp.c
---- linux-811/arch/xen/i386/kernel/smp.c
-+++ linux-812/arch/xen/i386/kernel/smp.c
-@@ -23,6 +23,7 @@
- 
- #include <asm/mtrr.h>
- #include <asm/tlbflush.h>
-+#include <asm/desc.h>
- #if 0
- #include <mach_apic.h>
- #endif
-@@ -289,6 +290,8 @@ irqreturn_t smp_invalidate_interrupt(int
++	range_start = 0x08000000;
++	if (current->mm->brk >= range_start)
++		range_start = current->mm->brk;
++	range_end = range_start + 0x02000000;
++	new_brk = randomize_range(range_start, range_end, 0);
++	if (new_brk)
++		current->mm->brk = new_brk;
++}
++
+diff --git a/arch/i386/xen/kernel/smp.c b/arch/i386/xen/kernel/smp.c
+index 855e088..230200c 100644
+--- a/arch/i386/kernel/smp-xen.c
++++ b/arch/i386/kernel/smp-xen.c
+@@ -277,6 +277,8 @@ irqreturn_t smp_invalidate_interrupt(int
  	unsigned long cpu;
  
  	cpu = get_cpu();
@@ -149,18 +116,17 @@
  
  	if (!cpu_isset(cpu, flush_cpumask))
  		goto out;
-diff -urNp --exclude-from=/home/davej/.exclude linux-811/arch/xen/i386/kernel/traps.c linux-812/arch/xen/i386/kernel/traps.c
---- linux-811/arch/xen/i386/kernel/traps.c
-+++ linux-812/arch/xen/i386/kernel/traps.c
-@@ -449,13 +449,91 @@ DO_ERROR(10, SIGSEGV, "invalid TSS", inv
- DO_ERROR(11, SIGBUS,  "segment not present", segment_not_present)
- DO_ERROR(12, SIGBUS,  "stack segment", stack_segment)
- DO_ERROR_INFO(17, SIGBUS, "alignment check", alignment_check, BUS_ADRALN, 0)
--DO_ERROR_INFO(32, SIGSEGV, "iret exception", iret_error, ILL_BADSTK, 0)
+diff --git a/arch/i386/xen/kernel/traps.c b/arch/i386/xen/kernel/traps.c
+index 0f7199b..878c084 100644
+--- a/arch/i386/kernel/traps-xen.c
++++ b/arch/i386/kernel/traps-xen.c
+@@ -459,11 +459,89 @@ DO_ERROR_INFO(17, SIGBUS, "alignment che
  #ifdef CONFIG_X86_MCE
  DO_ERROR(18, SIGBUS, "machine check", machine_check)
  #endif
- 
+-DO_ERROR_INFO(32, SIGSEGV, "iret exception", iret_error, ILL_BADSTK, 0)
++
++
 +/*
 + * lazy-check for CS validity on exec-shield binaries:
 + *
@@ -168,7 +134,7 @@
 + * Solar Designer <solar at openwall.com>. Thanks!
 + */
 +static int
-+check_lazy_exec_limit(int cpu, struct pt_regs * regs, long error_code)
++check_lazy_exec_limit(int cpu, struct pt_regs *regs, long error_code)
 +{
 +	struct desc_struct *desc1, *desc2;
 +	struct vm_area_struct *vma;
@@ -222,22 +188,22 @@
 + */
 +fastcall void do_iret_error(struct pt_regs *regs, long error_code)
 +{
-+	int ok;
-+	ok = check_lazy_exec_limit(get_cpu(), regs, error_code);
++	int ok = check_lazy_exec_limit(get_cpu(), regs, error_code);
 +	put_cpu();
 +	if (!ok && notify_die(DIE_TRAP, "iret exception", regs,
-+				error_code, 32, SIGSEGV) != NOTIFY_STOP) {
++			      error_code, 32, SIGSEGV) != NOTIFY_STOP) {
 +		siginfo_t info;
 +		info.si_signo = SIGSEGV;
 +		info.si_errno = 0;
 +		info.si_code = ILL_BADSTK;
 +		info.si_addr = 0;
 +		do_trap(32, SIGSEGV, "iret exception", 0, regs, error_code,
-+				&info);
++			&info);
 +	}
 +}
-+
- fastcall void do_general_protection(struct pt_regs * regs, long error_code)
+ 
+ fastcall void __kprobes do_general_protection(struct pt_regs * regs,
+ 					      long error_code)
  {
 +	int cpu = get_cpu();
 +	int ok;
@@ -245,7 +211,7 @@
  	/*
  	 * If we trapped on an LDT access then ensure that the default_ldt is
  	 * loaded, if nothing else. We load default_ldt lazily because LDT
-@@ -465,11 +543,18 @@ fastcall void do_general_protection(stru
+@@ -473,13 +551,22 @@ fastcall void __kprobes do_general_prote
  		unsigned long ldt;
  		__asm__ __volatile__ ("sldt %0" : "=r" (ldt));
  		if (ldt == 0) {
@@ -255,19 +221,55 @@
  		}
  	}
  
+-	current->thread.error_code = error_code;
+-	current->thread.trap_no = 13;
 +	ok = check_lazy_exec_limit(cpu, regs, error_code);
 +	put_cpu();
 +
 +	if (ok)
 +		return;
 +
++	if (print_fatal_signals) {
++		printk("#GPF(%ld[seg:%lx]) at %08lx, CPU#%d.\n", error_code, error_code/8, regs->eip, smp_processor_id());
++		printk(" exec_limit: %08lx, user_cs: %08lx/%08lx.\n", current->mm->context.exec_limit, current->mm->context.user_cs.a, current->mm->context.user_cs.b);
++	}
+ 
  	if (regs->eflags & VM_MASK)
  		goto gp_in_vm86;
+diff --git a/arch/i386/xen/mm/init.c b/arch/i386/xen/mm/init.c
+index f243508..4c8c7ac 100644
+--- a/arch/i386/mm/init-xen.c
++++ b/arch/i386/mm/init-xen.c
+@@ -274,7 +274,10 @@ int page_is_ram(unsigned long pagenr)
+ #else /* CONFIG_XEN */
+ 
+ #define page_kills_ppro(p)	0
+-#define page_is_ram(p)		1
++int page_is_ram(unsigned long pagenr)
++{
++	return 1;
++}
+ 
+ #endif
  
-diff -urNp --exclude-from=/home/davej/.exclude linux-811/arch/xen/i386/mm/init.c linux-812/arch/xen/i386/mm/init.c
---- linux-811/arch/xen/i386/mm/init.c
-+++ linux-812/arch/xen/i386/mm/init.c
-@@ -504,7 +504,10 @@ void __init paging_init(void)
+@@ -469,7 +472,7 @@ u64 __supported_pte_mask __read_mostly =
+  * Control non executable mappings.
+  *
+  * on      Enable
+- * off     Disable
++ * off     Disable (disables exec-shield too)
+  */
+ void __init noexec_setup(const char *str)
+ {
+@@ -479,6 +482,7 @@ void __init noexec_setup(const char *str
+ 	} else if (!strncmp(str,"off",3)) {
+ 		disable_nx = 1;
+ 		__supported_pte_mask &= ~_PAGE_NX;
++		exec_shield = 0;
+ 	}
+ }
+ 
+@@ -547,7 +551,10 @@ void __init paging_init(void)
  	set_nx();
  	if (nx_enabled)
  		printk("NX (Execute Disable) protection: active\n");
@@ -278,91 +280,60 @@
  
  	pagetable_init();
  
-diff -urNp --exclude-from=/home/davej/.exclude linux-811/fs/binfmt_elf.c linux-812/fs/binfmt_elf.c
---- linux-811/fs/binfmt_elf.c
-+++ linux-812/fs/binfmt_elf.c
-@@ -42,6 +42,7 @@
- #include <asm/uaccess.h>
- #include <asm/param.h>
- #include <asm/page.h>
-+#include <asm/pgalloc.h>
- 
- #include <linux/elf.h>
- 
-diff -urNp --exclude-from=/home/davej/.exclude linux-811/include/asm-xen/asm-i386/desc.h linux-812/include/asm-xen/asm-i386/desc.h
---- linux-811/include/asm-xen/asm-i386/desc.h
-+++ linux-812/include/asm-xen/asm-i386/desc.h
-@@ -141,6 +141,16 @@ static inline unsigned long get_desc_bas
- 	return base;
+--- linux-2.6.14/include/asm-i386/desc.h~	2006-01-06 17:09:44.000000000 -0500
++++ linux-2.6.14/include/asm-i386/desc.h	2006-01-06 17:22:41.000000000 -0500
+@@ -210,8 +210,13 @@
+ 	desc->b = (limit & 0xf0000) | 0x00c0fb00;
  }
  
-+static inline void set_user_cs(struct desc_struct *desc, unsigned long limit)
-+{
-+	limit = (limit - 1) / PAGE_SIZE;
-+	desc->a = limit & 0xffff;
-+	desc->b = (limit & 0xf0000) | 0x00c0fb00;
-+}
-+
++#ifndef CONFIG_X86_XEN
+ #define load_user_cs_desc(cpu, mm) \
+     	per_cpu(cpu_gdt_table, (cpu))[GDT_ENTRY_DEFAULT_USER_CS] = (mm)->context.user_cs
++#else
 +#define load_user_cs_desc(cpu, mm) \
-+	HYPERVISOR_update_descriptor(virt_to_machine(&get_cpu_gdt_table(cpu)[GDT_ENTRY_DEFAULT_USER_CS]), (u64)(mm)->context.user_cs.a | ((u64)(mm)->context.user_cs.b) << 32); 
-+
- #endif /* !__ASSEMBLY__ */
++	HYPERVISOR_update_descriptor(virt_to_machine(&get_cpu_gdt_table(cpu)[GDT_ENTRY_DEFAULT_USER_CS]), (u64)(mm)->context.user_cs.a | ((u64)(mm)->context.user_cs.b) << 32);
++#endif
  
- #endif
-diff -urNp --exclude-from=/home/davej/.exclude linux-811/include/asm-xen/asm-i386/mmu.h linux-812/include/asm-xen/asm-i386/mmu.h
---- linux-811/include/asm-xen/asm-i386/mmu.h
-+++ linux-812/include/asm-xen/asm-i386/mmu.h
-@@ -7,6 +7,9 @@
-  * we put the segment information here.
-  *
-  * cpu_vm_mask is used to optimize ldt flushing.
-+ *
-+ * exec_limit is used to track the range PROT_EXEC
-+ * mappings span.
-  */
- typedef struct { 
- 	int size;
-@@ -14,6 +17,9 @@ typedef struct { 
- 	void *ldt;
- 	unsigned pinned:1;
- 	struct list_head unpinned;
-+	struct desc_struct user_cs;
-+	unsigned long exec_limit;
-+	void *vdso;
- } mm_context_t;
- 
- extern struct list_head mm_unpinned;
-diff -urNp --exclude-from=/home/davej/.exclude linux-811/include/asm-xen/asm-i386/pgalloc.h linux-812/include/asm-xen/asm-i386/pgalloc.h
---- linux-811/include/asm-xen/asm-i386/pgalloc.h
-+++ linux-812/include/asm-xen/asm-i386/pgalloc.h
-@@ -58,4 +58,9 @@ extern void pte_free(struct page *pte);
- 
- #define check_pgt_cache()	do { } while (0)
- 
-+/* Exec-Shield dummy macros */
-+extern void arch_add_exec_range(struct mm_struct *mm, unsigned long limit);
-+extern void arch_remove_exec_range(struct mm_struct *mm, unsigned long limit);
-+extern void arch_flush_exec_range(struct mm_struct *mm);
-+
- #endif /* _I386_PGALLOC_H */
-diff -urNp --exclude-from=/home/davej/.exclude linux-811/include/asm-xen/asm-i386/processor.h linux-812/include/asm-xen/asm-i386/processor.h
---- linux-811/include/asm-xen/asm-i386/processor.h
-+++ linux-812/include/asm-xen/asm-i386/processor.h
-@@ -511,6 +511,9 @@ static inline void load_esp0(struct tss_
- 	regs->xcs = __USER_CS;					\
- 	regs->eip = new_eip;					\
- 	regs->esp = new_esp;					\
-+	preempt_disable();					\
-+	load_user_cs_desc(smp_processor_id(), current->mm);	\
-+	preempt_enable();					\
- } while (0)
+ extern void arch_add_exec_range(struct mm_struct *mm, unsigned long limit);
+ extern void arch_remove_exec_range(struct mm_struct *mm, unsigned long limit);
+diff -urNp --exclude-from=/home/mitica/quintela/config/misc/dontdiff linux-2.6.15.orig/arch/x86_64/kernel/setup64-xen.c linux-2.6.15.noarch/arch/x86_64/kernel/setup64-xen.c
+--- linux-2.6.15.orig/arch/x86_64/kernel/setup64-xen.c	2006-02-10 20:25:28.000000000 +0100
++++ linux-2.6.15.noarch/arch/x86_64/kernel/setup64-xen.c	2006-02-10 21:27:22.000000000 +0100
+@@ -51,7 +51,7 @@ Control non executable mappings for 64bi
+ on	Enable(default)
+ off	Disable
+ */ 
+-int __init nonx_setup(char *str)
++void __init nonx_setup(const char *str)
+ {
+ 	if (!strncmp(str, "on", 2)) {
+                 __supported_pte_mask |= _PAGE_NX; 
+@@ -60,28 +60,7 @@ int __init nonx_setup(char *str)
+ 		do_not_nx = 1;
+ 		__supported_pte_mask &= ~_PAGE_NX;
+         }
+-	return 0;
+-} 
+-__setup("noexec=", nonx_setup);	/* parsed early actually */
+-
+-int force_personality32 = READ_IMPLIES_EXEC;
+-
+-/* noexec32=on|off
+-Control non executable heap for 32bit processes.
+-To control the stack too use noexec=off
+-
+-on	PROT_READ does not imply PROT_EXEC for 32bit processes
+-off	PROT_READ implies PROT_EXEC (default)
+-*/
+-static int __init nonx32_setup(char *str)
+-{
+-	if (!strcmp(str, "on"))
+-		force_personality32 &= ~READ_IMPLIES_EXEC;
+-	else if (!strcmp(str, "off"))
+-		force_personality32 |= READ_IMPLIES_EXEC;
+-	return 0;
+ }
+-__setup("noexec32=", nonx32_setup);
  
  /*
-@@ -700,4 +703,7 @@ extern void select_idle_routine(const st
- 
- extern unsigned long boot_option_idle_override;
- 
-+#define __HAVE_ARCH_ALIGN_STACK
-+extern unsigned long arch_align_stack(unsigned long sp);
-+
- #endif /* __ASM_I386_PROCESSOR_H */
+  * Great future plan:

linux-2.6-xen-vdso-note.patch:
 vsyscall-note-xen.S |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

Index: linux-2.6-xen-vdso-note.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/linux-2.6-xen-vdso-note.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-vdso-note.patch	15 Oct 2005 01:02:15 -0000	1.1
+++ linux-2.6-xen-vdso-note.patch	13 Feb 2006 21:17:47 -0000	1.2
@@ -1,84 +1,9 @@
---- linux-2.6/arch/xen/i386/kernel/vsyscall-note.S
-+++ linux-2.6/arch/xen/i386/kernel/vsyscall-note.S
-@@ -0,0 +1,32 @@
-+/*
-+ * This supplies .note.* sections to go into the PT_NOTE inside the vDSO text.
-+ * Here we can supply some information useful to userland.
-+ * First we get the vanilla i386 note that supplies the kernel version info.
-+ */
-+
-+#include "../../../i386/kernel/vsyscall-note.S"
-+
-+/*
-+ * Now we add a special note telling glibc's dynamic linker a fake hardware
-+ * flavor that it will use to choose the search path for libraries in the
-+ * same way it uses real hardware capabilities like "mmx".
-+ * We supply "nosegneg" as the fake capability, to indicate that we
-+ * do not like negative offsets in instructions using segment overrides,
-+ * since we implement those inefficiently.  This makes it possible to
-+ * install libraries optimized to avoid those access patterns in someplace
-+ * like /lib/i686/tls/nosegneg.  Note that an /etc/ld.so.conf.d/file
-+ * corresponding to the bits here is needed to make ldconfig work right.
-+ * It should contain:
-+ *	hwcap 0 nosegneg
-+ * to match the mapping of bit to name that we give here.
-+ */
-+#define NOTE_KERNELCAP_BEGIN(ncaps, mask) \
-+	ASM_ELF_NOTE_BEGIN(".note.kernelcap", "a", "GNU", 2) \
-+	.long ncaps, mask
-+#define NOTE_KERNELCAP(bit, name) \
-+	.byte bit; .asciz name
-+#define NOTE_KERNELCAP_END ASM_ELF_NOTE_END
-+
-+NOTE_KERNELCAP_BEGIN(1, 1)
-+NOTE_KERNELCAP(0, "nosegneg")
-+NOTE_KERNELCAP_END
---- linux-2.6.11/include/asm-xen/asm-i386/page.h.vdso	2005-04-27 10:33:03.000000000 -0400
-+++ linux-2.6.11/include/asm-xen/asm-i386/page.h	2005-04-27 10:33:19.000000000 -0400
-@@ -200,6 +200,8 @@ extern int sysctl_legacy_va_layout;
- 
- #define devmem_is_allowed(x) 1
- 
-+#define __HAVE_ARCH_GATE_AREA 1
-+
- #endif /* __KERNEL__ */
- 
- #endif /* _I386_PAGE_H */
---- linux-2.6.12/arch/xen/i386/kernel/ldt.c.vdso	2005-08-19 10:50:02.000000000 -0400
-+++ linux-2.6.12/arch/xen/i386/kernel/ldt.c	2005-08-21 11:01:21.000000000 -0400
-@@ -101,8 +101,9 @@
- 	struct mm_struct * old_mm;
- 	int retval = 0;
- 
--	memset(&mm->context, 0, sizeof(mm->context));
- 	init_MUTEX(&mm->context.sem);
-+	mm->context.size = 0;
-+	mm->context.pinned = 0;
- 	old_mm = current->mm;
- 	if (old_mm && old_mm->context.size > 0) {
- 		down(&old_mm->context.sem);
---- linux-2.6.12/arch/xen/i386/kernel/Makefile.vdso	2005-08-22 13:38:36.000000000 -0400
-+++ linux-2.6.12/arch/xen/i386/kernel/Makefile	2005-08-22 13:42:00.000000000 -0400
-@@ -69,7 +69,7 @@
+--- linux-2.6.14/arch/i386/kernel/vsyscall-note-xen.S~	2006-01-06 17:26:37.000000000 -0500
++++ linux-2.6.14/arch/i386/kernel/vsyscall-note-xen.S	2006-01-06 17:32:11.000000000 -0500
+@@ -28,5 +28,5 @@
+ #define NOTE_KERNELCAP_END ASM_ELF_NOTE_END
  
- $(obj)/vsyscall-int80.so $(obj)/vsyscall-sysenter.so: \
- $(obj)/vsyscall-%.so: $(src)/vsyscall.lds \
--		      $(obj)/vsyscall-%.o FORCE
-+		      $(obj)/vsyscall-%.o $(obj)/vsyscall-note.o FORCE
- 	$(call if_changed,syscall)
- 
- # We also create a special relocatable object that should mirror the symbol
-@@ -81,11 +81,11 @@
- 
- SYSCFLAGS_vsyscall-syms.o = -r
- $(obj)/vsyscall-syms.o: $(src)/vsyscall.lds \
--			$(obj)/vsyscall-sysenter.o FORCE
-+			$(obj)/vsyscall-sysenter.o $(obj)/vsyscall-note.o FORCE
- 	$(call if_changed,syscall)
- 
- c-link	:=
--s-link	:= vsyscall-int80.o vsyscall-sysenter.o vsyscall-sigreturn.o vsyscall.lds.o syscall_table.o
-+s-link	:= vsyscall-int80.o vsyscall-sysenter.o vsyscall-sigreturn.o vsyscall.lds.o vsyscall-note.o syscall_table.o
- 
- $(patsubst %.o,$(obj)/%.c,$(c-obj-y) $(c-obj-m) $(c-link)) $(patsubst %.o,$(obj)/%.S,$(s-obj-y) $(s-link)):
- 	@ln -fsn $(srctree)/arch/i386/kernel/$(notdir $@) $@
+ NOTE_KERNELCAP_BEGIN(1, 1)
+-NOTE_KERNELCAP(1, "nosegneg")  /* Change 1 back to 0 when glibc is fixed! */
++NOTE_KERNELCAP(0, "nosegneg")
+ NOTE_KERNELCAP_END


Index: sources
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/sources,v
retrieving revision 1.291
retrieving revision 1.292
diff -u -r1.291 -r1.292
--- sources	13 Feb 2006 03:11:41 -0000	1.291
+++ sources	13 Feb 2006 21:17:47 -0000	1.292
@@ -1,2 +1,4 @@
 cdf95e00f5111e31f78e1d97304d9522  linux-2.6.15.tar.bz2
 ecfd157754bfdfa6dd03d28c8dc9b369  patch-2.6.16-rc3.bz2
+30f4ef37dbc4d0bce9366e8716e8b51b  xen-20060208.tar.bz2
+3d429736212d795ad28806945066d697  patch-2.6.16-rc3-git1.bz2


Index: upstream
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/upstream,v
retrieving revision 1.266
retrieving revision 1.267
diff -u -r1.266 -r1.267
--- upstream	13 Feb 2006 16:13:18 -0000	1.266
+++ upstream	13 Feb 2006 21:17:47 -0000	1.267
@@ -1,2 +1,3 @@
 linux-2.6.15.tar.bz2
 patch-2.6.16-rc3.bz2
+patch-2.6.16-rc3-git1.bz2


--- linux-2.6.14-intel-cache-build.patch DELETED ---




More information about the fedora-cvs-commits mailing list