From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andres Lagar-Cavilla Subject: [PATCH] x86/mm: Fix locking on hap enable failure Date: Fri, 13 Apr 2012 17:18:06 -0400 Message-ID: <15a3c740419f53702b0c.1334351886@xdev.gridcentric.ca> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: andres@gridcentric.ca, tim@xen.org List-Id: xen-devel@lists.xenproject.org xen/arch/x86/mm/hap/hap.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) If enabling hap fails due to out of memory, the locking on the clean up path is broken. Signed-off-by: Andres Lagar-Cavilla diff -r 8ec52231c03d -r 15a3c740419f xen/arch/x86/mm/hap/hap.c --- a/xen/arch/x86/mm/hap/hap.c +++ b/xen/arch/x86/mm/hap/hap.c @@ -585,13 +585,14 @@ int hap_enable(struct domain *d, u32 mod unsigned int r; paging_lock(d); r = hap_set_allocation(d, 256, NULL); - paging_unlock(d); if ( r != 0 ) { hap_set_allocation(d, 0, NULL); + paging_unlock(d); rv = -ENOMEM; goto out; } + paging_unlock(d); } /* Allow p2m and log-dirty code to borrow our memory */