diff --git a/xen/common/ioreq.c b/xen/common/ioreq.c index f5fd30ce12..4b321a5c61 100644 --- a/xen/common/ioreq.c +++ b/xen/common/ioreq.c @@ -595,7 +595,7 @@ static int ioreq_server_init(struct ioreq_server *s, rc = ioreq_server_alloc_rangesets(s, id); if ( rc ) - return rc; + goto fail_rangesets; s->bufioreq_handling = bufioreq_handling; @@ -614,6 +614,7 @@ static int ioreq_server_init(struct ioreq_server *s, ioreq_server_free_rangesets(s); + fail_rangesets: put_domain(s->emulator); return rc; }