From e326b878b21931ec6f4b6c70c762c578255d2809 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Tue, 15 Apr 2014 15:10:07 +0100 Subject: [PATCH] x86/p2m: also clear defer_nested_flush on error While presumably benign (domain creation ought to fail when P2M setup fails) let's be on the safe side and clear the flag as intended. And actually, the code can be streamlined quite a bit by recognizing that the only difference between the success and error cases is the message printed in each case. With that, a stray spin_unlock() also goes away. Signed-off-by: Jan Beulich Reviewed-by: Andrew Cooper Reviewed-by: Christoph Egger Acked-by: Tim Deegan --- xen/arch/x86/mm/p2m.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/xen/arch/x86/mm/p2m.c b/xen/arch/x86/mm/p2m.c index 712c134eee..1d0528b6cd 100644 --- a/xen/arch/x86/mm/p2m.c +++ b/xen/arch/x86/mm/p2m.c @@ -435,18 +435,12 @@ int p2m_alloc_table(struct p2m_domain *p2m) p2m->defer_nested_flush = 1; rc = p2m_set_entry(p2m, 0, _mfn(INVALID_MFN), PAGE_ORDER_4K, p2m_invalid, p2m->default_access); - if ( rc ) - goto error; p2m->defer_nested_flush = 0; - - P2M_PRINTK("p2m table initialised for slot zero\n"); - p2m_unlock(p2m); - return 0; - - spin_unlock(&p2m->domain->page_alloc_lock); - error: - P2M_PRINTK("failed to initialise p2m table for slot zero. rc:%d\n", rc); p2m_unlock(p2m); + if ( !rc ) + P2M_PRINTK("p2m table initialised for slot zero\n"); + else + P2M_PRINTK("failed to initialise p2m table for slot zero (%d)\n", rc); return rc; } -- 2.30.2