From: kfraser@localhost.localdomain Date: Fri, 10 Nov 2006 17:47:15 +0000 (+0000) Subject: If domain_crash_synchronous() is called in the context of a multicall, X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~15551^2~24 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=63ffe9b07eed7a2cc7dfc3d02d51c70b29bd389b;p=xen.git 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 --- 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(); }