android_kernel_google_msm/include
David Vrabel 0b80fa4b24 xen/events: don't bind non-percpu VIRQs with percpu chip
commit 77bb3dfdc0d554befad58fdefbc41be5bc3ed38a 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>
[lizf: Backported to 3.4: adjust filename]
Signed-off-by: Zefan Li <lizefan@huawei.com>
2015-09-18 09:20:42 +08:00
..
acpi ACPICA: Utilities: split IO address types from data type models. 2015-09-18 09:20:30 +08:00
asm-generic
crypto
drm drm/radeon: remove invalid pci id 2015-02-02 17:05:06 +08:00
keys
linux libata: Ignore spurious PHY event on LPM policy change 2015-09-18 09:20:37 +08:00
math-emu
media
misc
mtd
net net: sctp: fix skb_over_panic when receiving malformed ASCONF chunks 2015-04-14 17:33:57 +08:00
pcmcia
rdma
rxrpc
scsi SCSI: add 1024 max sectors black list flag 2015-09-18 09:20:33 +08:00
sound ALSA: emu10k1: Emu10k2 32 bit DMA mode 2015-09-18 09:20:34 +08:00
target
trace tracing: Fix syscall_*regfunc() vs copy_process() race 2014-07-06 18:49:20 -07:00
video
xen xen/events: don't bind non-percpu VIRQs with percpu chip 2015-09-18 09:20:42 +08:00
Kbuild