linux/drivers/xen
David Vrabel 84ca7a8e45 xen/events: initialize local per-cpu mask for all possible events
The sizeof() argument in init_evtchn_cpu_bindings() is incorrect
resulting in only the first 64 (or 32 in 32-bit guests) ports having
their bindings being initialized to VCPU 0.

In most cases this does not cause a problem as request_irq() will set
the irq affinity which will set the correct local per-cpu mask.
However, if the request_irq() is called on a VCPU other than 0, there
is a window between the unmasking of the event and the affinity being
set were an event may be lost because it is not locally unmasked on
any VCPU. If request_irq() is called on VCPU 0 then local irqs are
disabled during the window and the race does not occur.

Fix this by initializing all NR_EVENT_CHANNEL bits in the local
per-cpu masks.

Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
CC: stable@vger.kernel.org
2013-08-20 10:13:02 -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
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
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: initialize local per-cpu mask for all possible events 2013-08-20 10:13:02 -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 xen: clean up asm/xen/hypervisor.h 2008-12-16 21:50:31 +01:00
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
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