linux/drivers
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
..
accessibility
acpi ACPICA: Utilities: Cleanup to remove useless ACPI_PRINTF/FORMAT_xxx helpers. 2015-05-17 09:53:51 -07:00
amba
ata sata_dwc_460ex: fix resource leak on error path 2015-01-29 17:40:50 -08:00
atm
auxdisplay
base driver core: bus: Goto appropriate labels on failure in bus_add_device 2015-05-06 21:59:21 +02:00
bcma Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2014-01-30 17:20:32 -08:00
block rbd: end I/O the entire obj_request on error 2015-05-13 05:16:57 -07:00
bluetooth Bluetooth: ath3k: Add support Atheros AR5B195 combo Mini PCIe card 2015-05-06 21:59:17 +02:00
bus bus: mvebu-mbus: fix support of MBus window 13 2015-01-29 17:40:49 -08:00
cdrom Merge branch 'for-3.14/drivers' of git://git.kernel.dk/linux-block 2014-01-30 11:40:10 -08:00
char tpm/ibmvtpm: Additional LE support for tpm_ibmvtpm_send 2015-03-26 15:06:54 +01:00
clk clk: qcom: fix RCG M/N counter configuration 2015-05-06 21:59:18 +02:00
clocksource clocksource: efm32: Fix a NULL pointer dereference 2015-04-13 14:02:59 +02:00
connector net: Use netlink_ns_capable to verify the permisions of netlink messages 2014-06-26 15:15:38 -04:00
cpufreq cpufreq: s3c: remove incorrect __init annotations 2015-03-06 14:43:24 -08:00
cpuidle cpuidle: remove state_count field from struct cpuidle_device 2015-04-19 10:11:08 +02:00
crypto crypto: omap-aes - Fix support for unequal lengths 2015-05-06 21:59:20 +02:00
dca
devfreq Merge branches 'pm-cpufreq' and 'pm-devfreq' 2014-01-29 11:48:23 +01:00
dio
dma dmaengine: omap-dma: Fix memory leak when terminating running transfer 2015-04-19 10:11:07 +02:00
edac sb_edac: avoid INTERNAL ERROR message in EDAC with unspecified channel 2015-04-29 10:31:56 +02:00
eisa Revert "EISA: Initialize device before its resources" 2014-01-17 14:57:29 -07:00
extcon extcon: max14577: Properly handle regmap_irq_get_virq error 2014-06-30 20:11:52 -07:00
firewire firewire: cdev: prevent kernel stack leaking into ioctl arguments 2014-11-21 09:23:02 -08:00
firmware efi: Small leak on error in runtime map code 2015-03-18 13:31:33 +01:00
fmc drivers/fmc/fmc-write-eeprom.c: fix decimal permissions 2014-02-25 15:25:43 -08:00
gpio gpio: sysfs: fix memory leaks and device hotplug 2015-05-17 09:53:49 -07:00
gpu drm/radeon: more strictly validate the UVD codec 2015-05-17 09:53:50 -07:00
hid HID: fixup the conflicting keyboard mappings quirk 2015-03-18 13:31:33 +01:00
hsi
hv Drivers: hv: vmbus: Don't wait after requesting offers 2015-05-13 05:17:00 -07:00
hwmon hwmon: (ds1621) Update zbits after conversion rate change 2014-10-05 14:52:19 -07:00
hwspinlock
i2c i2c: core: Export bus recovery functions 2015-05-06 21:59:19 +02:00
ide drivers: ide: Include appropriate header file in ide-pio-blacklist.c 2014-01-28 23:35:09 -08:00
idle ACPI and power management updates for 3.14-rc1 2014-01-24 15:51:02 -08:00
iio iio: imu: Use iio_trigger_get for indio_dev->trig assignment 2015-04-19 10:11:07 +02:00
infiniband RDMA/CMA: Canonize IPv4 on IPV6 sockets properly 2015-05-17 09:53:49 -07:00
input Input: elantech - fix absolute mode setting on some ASUS laptops 2015-05-06 21:59:14 +02:00
iommu iommu/vt-d: Fix an off-by-one bug in __domain_mapping() 2015-01-16 06:59:31 -08:00
ipack
irqchip irqchip: gic: Fix core ID calculation when topology is read from DT 2014-07-28 08:06:02 -07:00
isdn isdnloop: several buffer overflows 2014-04-14 06:50:04 -07:00
leds leds: leds-pwm: properly clean up after probe failure 2014-06-07 10:28:18 -07:00
lguest lguest: fix out-by-one error in address checking. 2015-06-06 08:19:32 -07:00
macintosh Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2014-01-27 21:11:26 -08:00
mailbox drivers/mailbox/omap: make mbox->irq signed for error handling 2014-01-23 16:36:53 -08:00
md Revert "dm crypt: fix deadlock when async crypto algorithm returns -EBUSY" 2015-05-17 09:53:49 -07:00
media stk1160: Make sure current buffer is released 2015-05-06 21:59:19 +02:00
memory memory: mvebu-devbus: fix the conversion of the bus width 2014-06-07 10:28:22 -07:00
memstick memstick: mspro_block: add missing curly braces 2015-05-06 21:59:21 +02:00
message mptfusion: enable no_write_same for vmware scsi disks 2014-10-30 09:38:20 -07:00
mfd mfd: kempld-core: Fix callback return value check 2015-04-13 14:03:04 +02:00
misc mei: make device disabled on stop unconditionally 2015-03-18 13:31:27 +01:00
mmc mmc: sh_mmcif: Fix timeout value for command request 2015-05-17 09:53:51 -07:00
mtd UBI: fix soft lockup in ubi_check_volume() 2015-05-13 05:17:00 -07:00
net wl18xx: show rx_frames_per_rates as an array as it really is 2015-05-06 21:59:20 +02:00
nfc NFC: microread: Potential overflows in microread_target_discovered() 2014-10-05 14:52:18 -07:00
ntb
nubus
of of/irq: Fix of_irq_parse_one() returned error codes 2015-04-13 14:03:01 +02:00
oprofile
parisc
parport parport: fix menu breakage 2014-07-31 12:52:56 -07:00
pci PCI/AER: Avoid info leak in __print_tlp_header() 2015-04-19 10:11:05 +02:00
pcmcia PCI changes for the v3.14 merge window: 2014-01-22 16:39:28 -08:00
phy phy: Find the right match in devm_phy_destroy() 2015-04-13 14:03:01 +02:00
pinctrl pinctrl: Don't just pretend to protect pinctrl_maps, do it for real 2015-05-17 09:53:50 -07:00
platform compal-laptop: Fix leaking hwmon device 2015-05-13 05:17:00 -07:00
pnp ACPI / PNP: Fix acpi_pnp_match() 2014-08-07 14:52:37 -07:00
power power_supply: lp8788-charger: Fix leaked power supply on probe fail 2015-05-06 21:59:11 +02:00
powercap
pps
ps3
ptp
pwm pwm: lp3943: Fix potential memory leak during request 2014-02-26 15:45:12 +01:00
rapidio rapidio/tsi721_dma: fix failure to obtain transaction descriptor 2014-08-07 14:52:37 -07:00
regulator regulator: core: Fix enable GPIO reference counting 2015-03-26 15:06:56 +01:00
remoteproc
reset
rpmsg
rtc drivers/rtc/rtc-isl12057.c: fix masking of register values 2015-01-16 06:59:29 -08:00
s390 crypto: prefix module autoloading with "crypto-" 2015-01-29 17:40:50 -08:00
sbus bbc-i2c: Fix BBC I2C envctrl on SunBlade 2000 2014-08-14 09:38:26 +08:00
scsi qla2xxx: remove redundant declaration in 'qla_gbl.h' 2015-06-06 08:19:31 -07:00
sfi
sh
sn
spi spi: spidev: fix possible arithmetic overflow for multi-transfer message 2015-05-06 21:59:10 +02:00
ssb Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2014-01-30 17:20:32 -08:00
staging staging, rtl8192e, LLVMLinux: Remove unused inline prototype 2015-06-06 08:19:31 -07:00
target target/file: Fix SG table for prot_buf initialization 2015-05-06 21:59:17 +02:00
tc
thermal tick/powerclamp: Remove tick_nohz_idle abuse 2015-01-27 08:18:55 -08:00
tty xen/events: don't bind non-percpu VIRQs with percpu chip 2015-06-06 08:19:32 -07:00
uio
usb usb: gadget: printer: enqueue printer's response for setup request 2015-05-13 05:16:59 -07:00
uwb uwb: init beacon cache entry before registering uwb device 2014-10-05 14:52:14 -07:00
vfio vfio-pci: Fix the check on pci device type in vfio_pci_probe() 2015-01-27 08:18:56 -08:00
vhost vhost-scsi: Add missing virtio-scsi -> TCM attribute conversion 2015-01-27 08:18:58 -08:00
video video/logo: prevent use of logos after they have been freed 2015-01-27 08:18:55 -08:00
virt
virtio virtio_pci: fix virtio spec compliance on restore 2014-11-14 08:59:50 -08:00
vlynq drivers/vlynq/vlynq.c: fix another resource size off by 1 error 2014-01-23 16:36:55 -08:00
vme VME: Correct read/write alignment algorithm 2014-02-07 08:16:14 -08:00
w1 w1: fix w1_send_slave dropping a slave id 2014-05-06 07:59:26 -07:00
watchdog watchdog: kempld-wdt: Use the correct value when configuring the prescaler with the watchdog 2014-07-06 18:57:27 -07:00
xen xen/events: don't bind non-percpu VIRQs with percpu chip 2015-06-06 08:19:32 -07:00
zorro
Kconfig
Makefile