The commit "move domain to cpupool0 before destroying it" make Xen crashes
when a domain is destroyed with d->vcpus allocated but no VCPU initialized.
Assertion '!cpumask_empty(dom_cpumask)' failed at domain.c:452
Xen call trace:
[<
00207bd8>] domain_update_node_affinity+0x10c/0x238 (PC)
[<
00000004>]
00000004 (LR)
[<
00226870>] sched_move_domain+0x3cc/0x42c
[<
0020925c>] domain_kill+0xc8/0x178
[<
00206a0c>] do_domctl+0xaac/0x15e4
[<
002529c0>] do_trap_hypervisor+0xc5c/0xf94
[<
002559f0>] return_from_trap+0/0x4
Bail out early if there is d->VCPU is not allocated or VCPU 0 has not been
initialized.
Signed-off-by: Julien Grall <julien.grall@linaro.org>
struct vcpu *v;
unsigned int cpu;
+ /* Do we have vcpus already? If not, no need to update node-affinity. */
+ if ( !d->vcpu || !d->vcpu[0] )
+ return;
+
if ( !zalloc_cpumask_var(&dom_cpumask) )
return;
if ( !zalloc_cpumask_var(&dom_cpumask_soft) )
SCHED_OP(old_ops, free_vdata, vcpudata);
}
- /* Do we have vcpus already? If not, no need to update node-affinity */
- if ( d->vcpu )
- domain_update_node_affinity(d);
+ domain_update_node_affinity(d);
domain_unpause(d);