27 lines
969 B
Diff
27 lines
969 B
Diff
|
# Commit b9ae60907e6dbc686403e52a7e61a6f856401a1b
|
||
|
# Date 2014-06-10 12:04:08 +0200
|
||
|
# Author Juergen Gross <jgross@suse.com>
|
||
|
# Committer Jan Beulich <jbeulich@suse.com>
|
||
|
avoid crash on HVM domain destroy with PCI passthrough
|
||
|
|
||
|
c/s bac6334b5 "move domain to cpupool0 before destroying it" introduced a
|
||
|
problem when destroying a HVM domain with PCI passthrough enabled. The
|
||
|
moving of the domain to cpupool0 includes moving the pirqs to the cpupool0
|
||
|
cpus, but the event channel infrastructure already is unusable for the
|
||
|
domain. So just avoid moving pirqs for dying domains.
|
||
|
|
||
|
Signed-off-by: Juergen Gross <jgross@suse.com>
|
||
|
|
||
|
--- a/xen/common/schedule.c
|
||
|
+++ b/xen/common/schedule.c
|
||
|
@@ -297,7 +297,8 @@ int sched_move_domain(struct domain *d,
|
||
|
spin_unlock_irq(lock);
|
||
|
|
||
|
v->sched_priv = vcpu_priv[v->vcpu_id];
|
||
|
- evtchn_move_pirqs(v);
|
||
|
+ if ( !d->is_dying )
|
||
|
+ evtchn_move_pirqs(v);
|
||
|
|
||
|
new_p = cpumask_cycle(new_p, c->cpu_valid);
|
||
|
|