linux/drivers/xen
David Vrabel 4704fe4f03 xen/events: mask events when changing their VCPU binding
When a event is being bound to a VCPU there is a window between the
EVTCHNOP_bind_vpcu call and the adjustment of the local per-cpu masks
where an event may be lost.  The hypervisor upcalls the new VCPU but
the kernel thinks that event is still bound to the old VCPU and
ignores it.

There is even a problem when the event is being bound to the same VCPU
as there is a small window beween the clear_bit() and set_bit() calls
in bind_evtchn_to_cpu().  When scanning for pending events, the kernel
may read the bit when it is momentarily clear and ignore the event.

Avoid this by masking the event during the whole bind operation.

Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
CC: stable@vger.kernel.org
2013-08-20 10:13:04 -04:00
..
xen-pciback xen: Convert printks to pr_<level> 2013-06-28 11:19:58 -04:00
xenbus xenbus: frontend resume cleanup 2013-07-29 09:32:31 -04:00
xenfs xen: Convert printks to pr_<level> 2013-06-28 11:19:58 -04:00
acpi.c xen/acpi/sleep: Enable ACPI sleep via the __acpi_os_prepare_sleep 2012-05-07 15:33:18 -04:00
balloon.c xen: Convert printks to pr_<level> 2013-06-28 11:19:58 -04:00
biomerge.c xen: using EXPORT_SYMBOL requires including export.h 2012-01-18 15:37:49 -08:00
cpu_hotplug.c xen: Convert printks to pr_<level> 2013-06-28 11:19:58 -04:00
dbgp.c xen: dbgp: Fix warning when CONFIG_PCI is not enabled. 2012-10-19 15:19:37 -04:00
events.c xen/events: mask events when changing their VCPU binding 2013-08-20 10:13:04 -04:00
evtchn.c xen/evtchn: avoid a deadlock when unbinding an event channel 2013-07-30 09:21:14 -04:00
fallback.c xen-pciback: notify hypervisor about devices intended to be assigned to guests 2013-03-22 10:20:55 -04:00
features.c
gntalloc.c xen: Convert printks to pr_<level> 2013-06-28 11:19:58 -04:00
gntdev.c xen: Convert printks to pr_<level> 2013-06-28 11:19:58 -04:00
grant-table.c xen: Convert printks to pr_<level> 2013-06-28 11:19:58 -04:00
Kconfig xen/tmem: do not allow XEN_TMEM on ARM64 2013-07-30 13:44:02 -04:00
Makefile xen/arm: enable PV control for ARM 2013-07-29 09:35:11 -04:00
manage.c xen: Convert printks to pr_<level> 2013-06-28 11:19:58 -04:00
mcelog.c xen: Convert printks to pr_<level> 2013-06-28 11:19:58 -04:00
pci.c xen/pci: Check for PCI bridge before using it. 2012-05-30 10:16:35 -04:00
pcpu.c xen: Convert printks to pr_<level> 2013-06-28 11:19:58 -04:00
platform-pci.c Drivers: xen: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
privcmd.c xen: Convert printks to pr_<level> 2013-06-28 11:19:58 -04:00
privcmd.h xen: Add privcmd device driver 2011-12-16 13:29:31 -05:00
swiotlb-xen.c xen: Convert printks to pr_<level> 2013-06-28 11:19:58 -04:00
sys-hypervisor.c xen: sysfs: fix build warning. 2012-10-19 15:17:51 -04:00
tmem.c xen: Convert printks to pr_<level> 2013-06-28 11:19:58 -04:00
xen-acpi-cpuhotplug.c xen: Convert printks to pr_<level> 2013-06-28 11:19:58 -04:00
xen-acpi-memhotplug.c xen: Convert printks to pr_<level> 2013-06-28 11:19:58 -04:00
xen-acpi-pad.c xen: Convert printks to pr_<level> 2013-06-28 11:19:58 -04:00
xen-acpi-processor.c xen: Convert printks to pr_<level> 2013-06-28 11:19:58 -04:00
xen-balloon.c xen: Convert printks to pr_<level> 2013-06-28 11:19:58 -04:00
xen-selfballoon.c xen: Convert printks to pr_<level> 2013-06-28 11:19:58 -04:00
xen-stub.c xen/acpi: remove redundant acpi/acpi_drivers.h include 2013-03-11 13:53:02 -04:00
xencomm.c xen: Convert printks to pr_<level> 2013-06-28 11:19:58 -04:00