Commit 97253eee authored by David Vrabel's avatar David Vrabel Committed by Konrad Rzeszutek Wilk

xen/events: bind all new interdomain events to VCPU0

Commit fc087e10 (xen/events: remove
unnecessary init_evtchn_cpu_bindings()) causes a regression.

The kernel-side VCPU binding was not being correctly set for newly
allocated or bound interdomain events.  In ARM guests where 2-level
events were used, this would result in no interdomain events being
handled because the kernel-side VCPU masks would all be clear.

x86 guests would work because the irq affinity was set during irq
setup and this would set the correct kernel-side VCPU binding.

Fix this by properly initializing the kernel-side VCPU binding in
bind_evtchn_to_irq().
Reported-and-tested-by: default avatarJulien Grall <julien.grall@linaro.org>
Signed-off-by: default avatarDavid Vrabel <david.vrabel@citrix.com>
Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
parent afca5013
...@@ -862,6 +862,8 @@ int bind_evtchn_to_irq(unsigned int evtchn) ...@@ -862,6 +862,8 @@ int bind_evtchn_to_irq(unsigned int evtchn)
irq = ret; irq = ret;
goto out; goto out;
} }
/* New interdomain events are bound to VCPU 0. */
bind_evtchn_to_cpu(evtchn, 0);
} else { } else {
struct irq_info *info = info_for_irq(irq); struct irq_info *info = info_for_irq(irq);
WARN_ON(info == NULL || info->type != IRQT_EVTCHN); WARN_ON(info == NULL || info->type != IRQT_EVTCHN);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment