From: Jeremy Fitzhardinge Date: Fri, 6 Feb 2009 21:38:56 +0000 (-0800) Subject: x86, xen: do multicall callbacks with interrupts disabled X-Git-Tag: firefly_0821_release~14004^2~37^2~2^7 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=c99608637eac8834d830496c462c054137772122;p=firefly-linux-kernel-4.4.55.git x86, xen: do multicall callbacks with interrupts disabled We can't call the callbacks after enabling interrupts, as we may get a nested multicall call, which would cause a great deal of havok. Signed-off-by: Jeremy Fitzhardinge Signed-off-by: Ingo Molnar --- diff --git a/arch/x86/xen/multicalls.c b/arch/x86/xen/multicalls.c index 6cffd5532b91..8bff7e7c290b 100644 --- a/arch/x86/xen/multicalls.c +++ b/arch/x86/xen/multicalls.c @@ -170,8 +170,6 @@ void xen_mc_flush(void) } else BUG_ON(b->argidx != 0); - local_irq_restore(flags); - for (i = 0; i < b->cbidx; i++) { struct callback *cb = &b->callbacks[i]; @@ -179,6 +177,8 @@ void xen_mc_flush(void) } b->cbidx = 0; + local_irq_restore(flags); + WARN_ON(ret); }