From: Dario Faggioli Date: Thu, 25 Jul 2019 17:51:19 +0000 (+0200) Subject: xen: sched: refactor the ASSERTs around vcpu_deassing() X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=refs%2Fheads%2Frel%2Fsched%2Fnull-fix-vcpu-hotplug-v2;p=people%2Fdariof%2Fxen.git xen: sched: refactor the ASSERTs around vcpu_deassing() It is all the time that we call vcpu_deassing() that the vcpu _must_ be assigned to a pCPU, and hence that such pCPU can't be free. Therefore, move the ASSERT-s which check for these properties in that function, where they belong better. Signed-off-by: Dario Faggioli Reviewed-by: George Dunlap --- diff --git a/xen/common/sched_null.c b/xen/common/sched_null.c index 1bbcaf92b9..c72335e5fa 100644 --- a/xen/common/sched_null.c +++ b/xen/common/sched_null.c @@ -368,6 +368,8 @@ static bool vcpu_deassign(struct null_private *prv, struct vcpu *v) struct null_vcpu *wvc; ASSERT(list_empty(&null_vcpu(v)->waitq_elem)); + ASSERT(per_cpu(npc, v->processor).vcpu == v); + ASSERT(!cpumask_test_cpu(v->processor, &prv->cpus_free)); per_cpu(npc, cpu).vcpu = NULL; cpumask_set_cpu(cpu, &prv->cpus_free); @@ -529,9 +531,6 @@ static void null_vcpu_remove(const struct scheduler *ops, struct vcpu *v) goto out; } - ASSERT(per_cpu(npc, v->processor).vcpu == v); - ASSERT(!cpumask_test_cpu(v->processor, &prv->cpus_free)); - vcpu_deassign(prv, v); out: