linux/include
David Vrabel 8d3cbb9096 xen/events: don't bind non-percpu VIRQs with percpu chip
commit 77bb3dfdc0 upstream.

A non-percpu VIRQ (e.g., VIRQ_CONSOLE) may be freed on a different
VCPU than it is bound to.  This can result in a race between
handle_percpu_irq() and removing the action in __free_irq() because
handle_percpu_irq() does not take desc->lock.  The interrupt handler
sees a NULL action and oopses.

Only use the percpu chip/handler for per-CPU VIRQs (like VIRQ_TIMER).

  # cat /proc/interrupts | grep virq
   40:      87246          0  xen-percpu-virq      timer0
   44:          0          0  xen-percpu-virq      debug0
   47:          0      20995  xen-percpu-virq      timer1
   51:          0          0  xen-percpu-virq      debug1
   69:          0          0   xen-dyn-virq      xen-pcpu
   74:          0          0   xen-dyn-virq      mce
   75:         29          0   xen-dyn-virq      hvc_console

Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-06-06 08:19:32 -07:00
..
acpi ACPICA: Tables: Change acpi_find_root_pointer() to use acpi_physical_address. 2015-05-17 09:53:51 -07:00
asm-generic nosave: consolidate __nosave_{begin,end} in <asm/sections.h> 2015-05-06 21:59:21 +02:00
clocksource
crypto
drm drm/radeon: remove invalid pci id 2014-11-14 09:00:12 -08:00
dt-bindings pinctrl: dra: dt-bindings: Fix output pull up/down 2014-11-21 09:23:02 -08:00
keys
kvm ARM: KVM: fix non-VGIC compilation 2014-03-06 09:47:42 +01:00
linux nilfs2: fix sanity check of btree level in nilfs_btree_root_broken() 2015-05-17 09:53:49 -07:00
math-emu
media media: vb2: fix VBI/poll regression 2014-10-09 12:21:27 -07:00
memory
misc
net ipv6: protect skb->sk accesses from recursive dereference inside the stack 2015-04-29 10:31:46 +02:00
pcmcia
ras
rdma IB/core: Don't resolve passive side RoCE L2 address in CMA REQ handler 2014-05-06 07:59:28 -07:00
rxrpc
scsi scsi: do not issue SCSI RSOC command to Promise Vtrak E610f 2014-09-17 09:19:14 -07:00
sound ASoC: dapm: Enable autodisable on SOC_DAPM_SINGLE_TLV_AUTODISABLE 2015-05-13 05:16:56 -07:00
target target: Fix COMPARE_AND_WRITE with SG_TO_MEM_NOALLOC handling 2015-05-06 21:59:17 +02:00
trace mm: when stealing freepages, also take pages created by splitting buddy page 2015-03-18 13:31:23 +01:00
uapi in6: fix conflict with glibc 2015-01-27 08:18:53 -08:00
video
xen xen/events: don't bind non-percpu VIRQs with percpu chip 2015-06-06 08:19:32 -07:00
Kbuild