summaryrefslogtreecommitdiffstats
path: root/queue-3.0/xen-smp-warn-user-why-they-keel-over-nosmp-or-noapic-and-what-to-use-instead.patch
diff options
context:
space:
mode:
Diffstat (limited to 'queue-3.0/xen-smp-warn-user-why-they-keel-over-nosmp-or-noapic-and-what-to-use-instead.patch')
-rw-r--r--queue-3.0/xen-smp-warn-user-why-they-keel-over-nosmp-or-noapic-and-what-to-use-instead.patch52
1 files changed, 52 insertions, 0 deletions
diff --git a/queue-3.0/xen-smp-warn-user-why-they-keel-over-nosmp-or-noapic-and-what-to-use-instead.patch b/queue-3.0/xen-smp-warn-user-why-they-keel-over-nosmp-or-noapic-and-what-to-use-instead.patch
new file mode 100644
index 0000000000..cb08918393
--- /dev/null
+++ b/queue-3.0/xen-smp-warn-user-why-they-keel-over-nosmp-or-noapic-and-what-to-use-instead.patch
@@ -0,0 +1,52 @@
+From ed467e69f16e6b480e2face7bc5963834d025f91 Mon Sep 17 00:00:00 2001
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Date: Thu, 1 Sep 2011 09:48:27 -0400
+Subject: xen/smp: Warn user why they keel over - nosmp or noapic and what to use instead.
+
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+
+commit ed467e69f16e6b480e2face7bc5963834d025f91 upstream.
+
+We have hit a couple of customer bugs where they would like to
+use those parameters to run an UP kernel - but both of those
+options turn of important sources of interrupt information so
+we end up not being able to boot. The correct way is to
+pass in 'dom0_max_vcpus=1' on the Xen hypervisor line and
+the kernel will patch itself to be a UP kernel.
+
+Fixes bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=637308
+
+Acked-by: Ian Campbell <Ian.Campbell@eu.citrix.com>
+Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/x86/xen/smp.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+--- a/arch/x86/xen/smp.c
++++ b/arch/x86/xen/smp.c
+@@ -32,6 +32,7 @@
+ #include <xen/page.h>
+ #include <xen/events.h>
+
++#include <xen/hvc-console.h>
+ #include "xen-ops.h"
+ #include "mmu.h"
+
+@@ -207,6 +208,15 @@ static void __init xen_smp_prepare_cpus(
+ unsigned cpu;
+ unsigned int i;
+
++ if (skip_ioapic_setup) {
++ char *m = (max_cpus == 0) ?
++ "The nosmp parameter is incompatible with Xen; " \
++ "use Xen dom0_max_vcpus=1 parameter" :
++ "The noapic parameter is incompatible with Xen";
++
++ xen_raw_printk(m);
++ panic(m);
++ }
+ xen_init_lock_cpu(0);
+
+ smp_store_cpu_info(0);