]> xenbits.xensource.com Git - xen.git/commitdiff
x86/soft-reset: Drop gfn reference after calling get_gfn_query()
authorAndrew Cooper <andrew.cooper3@citrix.com>
Fri, 1 Feb 2019 11:02:15 +0000 (12:02 +0100)
committerJan Beulich <jbeulich@suse.com>
Fri, 1 Feb 2019 11:02:15 +0000 (12:02 +0100)
get_gfn_query() internally takes the p2m lock, and this error path leaves it
locked.

This wasn't included in XSA-277 because the error path can only be triggered
by a carefully timed phymap operation concurrent with the domain being paused
and the toolstack issuing DOMCTL_soft_reset.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
master commit: e7969e917cef276318f722a607985a2e896aeb94
master date: 2018-11-22 17:58:46 +0000

xen/arch/x86/domain.c

index 2ca496994d2d2f3209456fc4c95da2f673fd2de8..61f6671872776539922e4acffa5adce42347b351 100644 (file)
@@ -916,7 +916,7 @@ int arch_domain_soft_reset(struct domain *d)
         printk(XENLOG_G_ERR "Failed to get Dom%d's shared_info GFN (%lx)\n",
                d->domain_id, gfn);
         ret = -EINVAL;
-        goto exit_put_page;
+        goto exit_put_gfn;
     }
 
     new_page = alloc_domheap_page(d, 0);