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.
If 3.0.3 gets rev'd at some point, I'd like to request inclusion of this
patch as being security relevant.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
Index: 2006-10-30/xen/common/domain.c
===================================================================
--- 2006-10-30.orig/xen/common/domain.c 2006-11-08 12:07:40.000000000 +0100
+++ 2006-10-30/xen/common/domain.c 2006-11-08 12:08:55.000000000 +0100
@@ -22,6 +22,7 @@
#include <xen/delay.h>
#include <xen/shutdown.h>
#include <xen/percpu.h>
+#include <xen/multicall.h>
#include <asm/debugger.h>
#include <public/sched.h>
#include <public/vcpu.h>
@@ -242,6 +243,7 @@ void __domain_crash(struct domain *d)
printk("Domain %d (vcpu#%d) crashed on cpu#%d:\n",
d->domain_id, current->vcpu_id, smp_processor_id());
show_execution_state(guest_cpu_user_regs());
+ this_cpu(mc_state).flags = 0;
}
else
{
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|