From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Egger, Christoph" Subject: Re: [PATCH] x86/p2m: also clear defer_nested_flush on error Date: Tue, 15 Apr 2014 16:50:22 +0200 Message-ID: <534D472E.3060407@amazon.de> References: <534D59DF02000078000090A1@nat28.tlf.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1Wa4iU-0004AW-OF for xen-devel@lists.xenproject.org; Tue, 15 Apr 2014 14:52:07 +0000 In-Reply-To: <534D59DF02000078000090A1@nat28.tlf.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Jan Beulich , xen-devel Cc: Tim Deegan List-Id: xen-devel@lists.xenproject.org On 15.04.14 16:10, Jan Beulich wrote: > 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 Nice cleanup! Reviewed-by: Christoph Egger > > --- 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 *p > 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; > }