[PATCH 01/24] xen: disable preempt for leave_lazy_mmu

Jeremy Fitzhardinge
2009-03-13T08:14:11Z

From: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>

xen_mc_flush() requires preemption to be disabled for its own sanity,
so disable it while we're flushing.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
---
arch/x86/xen/mmu.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index 185b547..eceff87 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -1812,8 +1812,10 @@ __init void xen_post_allocator_init(void)

static void xen_leave_lazy_mmu(void)
{
+ preempt_disable();
xen_mc_flush();
paravirt_leave_lazy_mmu();
+ preempt_enable();
}

const struct pv_mmu_ops xen_mmu_ops __initdata = {
--
1.6.0.6