aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeir Fraser <keir@xensource.com>2007-05-07 13:58:42 +0100
committerKeir Fraser <keir@xensource.com>2007-05-07 13:58:42 +0100
commit21bff006dad730c0b27239b55ef5aca6b0ddb655 (patch)
tree5b53d24c37e965774d8da52a1e80d54ca595349c
parent52fbe1b9749c2f5b2c964b74b19545551d1e5e9b (diff)
downloadxen-21bff006dad730c0b27239b55ef5aca6b0ddb655.tar.gz
xen-21bff006dad730c0b27239b55ef5aca6b0ddb655.tar.bz2
xen-21bff006dad730c0b27239b55ef5aca6b0ddb655.zip
ia64, linux: Import linux git changeset 5ee7737379b1d7f0c977c0f1661fbaf01a8d4721
Without this, IA64 vcpu hot plug/remove or domain save/restore cause kernel panic. Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
-rw-r--r--patches/linux-2.6.18/git-5ee7737379b1d7f0c977c0f1661fbaf01a8d4721.patch28
-rw-r--r--patches/linux-2.6.18/series1
2 files changed, 29 insertions, 0 deletions
diff --git a/patches/linux-2.6.18/git-5ee7737379b1d7f0c977c0f1661fbaf01a8d4721.patch b/patches/linux-2.6.18/git-5ee7737379b1d7f0c977c0f1661fbaf01a8d4721.patch
new file mode 100644
index 0000000000..4d5169af2f
--- /dev/null
+++ b/patches/linux-2.6.18/git-5ee7737379b1d7f0c977c0f1661fbaf01a8d4721.patch
@@ -0,0 +1,28 @@
+--- ./arch/ia64/kernel/smp.c.orig 2007-05-02 19:00:01.000000000 +0900
++++ ./arch/ia64/kernel/smp.c 2007-05-02 19:04:32.000000000 +0900
+@@ -328,10 +328,14 @@ int
+ smp_call_function (void (*func) (void *info), void *info, int nonatomic, int wait)
+ {
+ struct call_data_struct data;
+- int cpus = num_online_cpus()-1;
++ int cpus;
+
+- if (!cpus)
++ spin_lock(&call_lock);
++ cpus = num_online_cpus()-1;
++ if (!cpus) {
++ spin_unlock(&call_lock);
+ return 0;
++ }
+
+ /* Can deadlock when called with interrupts disabled */
+ WARN_ON(irqs_disabled());
+@@ -343,8 +347,6 @@ smp_call_function (void (*func) (void *i
+ if (wait)
+ atomic_set(&data.finished, 0);
+
+- spin_lock(&call_lock);
+-
+ call_data = &data;
+ mb(); /* ensure store to call_data precedes setting of IPI_CALL_FUNC */
+ send_IPI_allbutself(IPI_CALL_FUNC);
diff --git a/patches/linux-2.6.18/series b/patches/linux-2.6.18/series
index a3597cd5a0..1362cfca48 100644
--- a/patches/linux-2.6.18/series
+++ b/patches/linux-2.6.18/series
@@ -21,3 +21,4 @@ git-c06cb8b1c4d25e5b4d7a2d7c2462619de1e0dbc4.patch
softlockup-no-idle-hz.patch
allow-i386-crash-kernels-to-handle-x86_64-dumps.patch
allow-i386-crash-kernels-to-handle-x86_64-dumps-fix.patch
+git-5ee7737379b1d7f0c977c0f1661fbaf01a8d4721.patch