Boris Ostrovsky
ff1e22e7a6
xen/events: Mask a moving irq
...
Moving an unmasked irq may result in irq handler being invoked on both
source and target CPUs.
With 2-level this can happen as follows:
On source CPU:
evtchn_2l_handle_events() ->
generic_handle_irq() ->
handle_edge_irq() ->
eoi_pirq():
irq_move_irq(data);
/***** WE ARE HERE *****/
if (VALID_EVTCHN(evtchn))
clear_evtchn(evtchn);
If at this moment target processor is handling an unrelated event in
evtchn_2l_handle_events()'s loop it may pick up our event since target's
cpu_evtchn_mask claims that this event belongs to it *and* the event is
unmasked and still pending. At the same time, source CPU will continue
executing its own handle_edge_irq().
With FIFO interrupt the scenario is similar: irq_move_irq() may result
in a EVTCHNOP_unmask hypercall which, in turn, may make the event
pending on the target CPU.
We can avoid this situation by moving and clearing the event while
keeping event masked.
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: stable@vger.kernel.org
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
2016-04-04 11:18:00 +01:00
..
events
xen/events: Mask a moving irq
2016-04-04 11:18:00 +01:00
xen-pciback
xen: features and fixes for 4.6-rc0
2016-03-22 12:55:17 -07:00
xenbus
xen: features and fixes for 4.6-rc0
2016-03-22 12:55:17 -07:00
xenfs
xen: audit usages of module.h ; remove unnecessary instances
2016-03-21 15:13:32 +00:00
acpi.c
xen: rename dom0_op to platform_op
2015-12-21 14:40:55 +00:00
balloon.c
xen: features and fixes for 4.6-rc0
2016-03-22 12:55:17 -07:00
biomerge.c
xen/biomerge: Don't allow biovec's to be merged when Linux is not using 4KB pages
2015-10-23 14:20:36 +01:00
cpu_hotplug.c
xen, cpu_hotplug: call device_offline instead of cpu_down
2015-10-23 14:20:48 +01:00
dbgp.c
efi.c
xen: rename dom0_op to platform_op
2015-12-21 14:40:55 +00:00
evtchn.c
xen/evtchn: dynamically grow pending event channel ring
2015-11-26 18:49:54 +00:00
fallback.c
features.c
xen: audit usages of module.h ; remove unnecessary instances
2016-03-21 15:13:32 +00:00
gntalloc.c
Merge branch 'akpm' (patches from Andrew)
2015-09-10 18:19:42 -07:00
gntdev.c
xen/gntdev: add ioctl for grant copy
2016-01-07 13:21:53 +00:00
grant-table.c
xen: audit usages of module.h ; remove unnecessary instances
2016-03-21 15:13:32 +00:00
Kconfig
xen_balloon: support memory auto onlining policy
2016-03-15 16:55:16 -07:00
Makefile
xen: move xen_setup_runstate_info and get_runstate_snapshot to drivers/xen/time.c
2015-12-21 14:40:52 +00:00
manage.c
xen: Use correctly the Xen memory terminologies
2015-09-08 18:03:49 +01:00
mcelog.c
xen/mce: fix up xen_late_init_mcelog() error handling
2015-03-16 14:49:15 +00:00
pci.c
xen/pci: Try harder to get PXM information for Xen
2015-04-15 10:57:28 +01:00
pcpu.c
xen: rename dom0_op to platform_op
2015-12-21 14:40:55 +00:00
platform-pci.c
drivers/xen: make platform-pci.c explicitly non-modular
2016-03-21 15:14:04 +00:00
preempt.c
xen/preempt: use need_resched() instead of should_resched()
2015-08-20 12:24:14 +01:00
privcmd.c
xen/privcmd: Add support for Linux 64KB page granularity
2015-10-23 14:20:42 +01:00
privcmd.h
swiotlb-xen.c
xen/swiotlb: Add support for 64KB page granularity
2015-10-23 14:20:43 +01:00
sys-hypervisor.c
drivers/xen: make sys-hypervisor.c explicitly non-modular
2016-03-21 15:14:03 +00:00
time.c
xen/time: use READ_ONCE
2015-12-21 14:41:00 +00:00
tmem.c
cleancache: constify cleancache_ops structure
2016-01-27 09:09:57 -05:00
xen-acpi-cpuhotplug.c
xen: rename dom0_op to platform_op
2015-12-21 14:40:55 +00:00
xen-acpi-memhotplug.c
ACPICA: Resources: Provide common part for struct acpi_resource_address structures.
2015-01-26 16:09:56 +01:00
xen-acpi-pad.c
xen: rename dom0_op to platform_op
2015-12-21 14:40:55 +00:00
xen-acpi-processor.c
xen: rename dom0_op to platform_op
2015-12-21 14:40:55 +00:00
xen-balloon.c
drivers/xen: make [xen-]ballon explicitly non-modular
2016-03-21 15:13:44 +00:00
xen-scsiback.c
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
2016-03-22 12:41:14 -07:00
xen-selfballoon.c
xen: audit usages of module.h ; remove unnecessary instances
2016-03-21 15:13:32 +00:00
xen-stub.c
xlate_mmu.c
xen/privcmd: Add support for Linux 64KB page granularity
2015-10-23 14:20:42 +01:00