The compiler can't fold because of the write to *perr in the first hunk. No functional change, but slightly better compiled code.
Signed-off-by: Andrew Cooper <andrew.coop...@citrix.com> --- CC: Juergen Gross <jgr...@suse.com> CC: Dario Faggioli <dfaggi...@suse.com> --- xen/common/cpupool.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/xen/common/cpupool.c b/xen/common/cpupool.c index 4d3adbdd8d..d66b541a94 100644 --- a/xen/common/cpupool.c +++ b/xen/common/cpupool.c @@ -236,10 +236,8 @@ static struct cpupool *cpupool_create( { if ( (*q)->cpupool_id == poolid ) { - spin_unlock(&cpupool_lock); - free_cpupool_struct(c); *perr = -EEXIST; - return NULL; + goto err; } c->next = *q; } @@ -253,11 +251,7 @@ static struct cpupool *cpupool_create( { c->sched = scheduler_alloc(sched_id, perr); if ( c->sched == NULL ) - { - spin_unlock(&cpupool_lock); - free_cpupool_struct(c); - return NULL; - } + goto err; } c->gran = opt_sched_granularity; @@ -270,6 +264,11 @@ static struct cpupool *cpupool_create( *perr = 0; return c; + + err: + spin_unlock(&cpupool_lock); + free_cpupool_struct(c); + return NULL; } /* * destroys the given cpupool -- 2.11.0 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel