From 63ffe9b07eed7a2cc7dfc3d02d51c70b29bd389b Mon Sep 17 00:00:00 2001 From: "kfraser@localhost.localdomain" Date: Fri, 10 Nov 2006 17:47:15 +0000 Subject: [PATCH] If domain_crash_synchronous() is called in the context of a multicall, the (physical) CPU this was executing on did not get its multicall state cleared and would reject any further multicalls, likely leading to crashing dom0 at some point. Signed-off-by: Jan Beulich --- xen/common/domain.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/xen/common/domain.c b/xen/common/domain.c index 08327a37fd..2eac2ed7ed 100644 --- a/xen/common/domain.c +++ b/xen/common/domain.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -256,6 +257,10 @@ void __domain_crash(struct domain *d) void __domain_crash_synchronous(void) { __domain_crash(current->domain); + + /* Flush multicall state before dying. */ + this_cpu(mc_state).flags = 0; + for ( ; ; ) do_softirq(); } -- 2.30.2