Ian Munsie
ee41d11d53
cxl: Change contexts_lock to a mutex to fix sleep while atomic bug
...
We had a known sleep while atomic bug if a CXL device was forcefully
unbound while it was in use. This could occur as a result of EEH, or
manually induced with something like this while the device was in use:
echo 0000:01:00.0 > /sys/bus/pci/drivers/cxl-pci/unbind
The issue was that in this code path we iterated over each context and
forcefully detached it with the contexts_lock spin lock held, however
the detach also needed to take the spu_mutex, and call schedule.
This patch changes the contexts_lock to a mutex so that we are not in
atomic context while doing the detach, thereby avoiding the sleep while
atomic.
Also delete the related TODO comment, which suggested an alternate
solution which turned out to not be workable.
Cc: stable@vger.kernel.org
Signed-off-by: Ian Munsie <imunsie@au1.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2014-12-12 13:06:47 +11:00
..
altera-stapl
altera-stapl: replace strnicmp with strncasecmp
2014-10-14 02:18:25 +02:00
c2port
carma
Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma
2014-10-18 18:11:04 -07:00
cb710
cxl
cxl: Change contexts_lock to a mutex to fix sleep while atomic bug
2014-12-12 13:06:47 +11:00
echo
eeprom
EEPROM: Introduce the use of devm_kzalloc
2014-09-23 23:04:17 -07:00
fuse
soc/tegra: Add efuse driver for Tegra
2014-07-17 14:36:01 +02:00
genwqe
GenWQE: Support blocking when DDCB queue is busy
2014-09-23 23:15:47 -07:00
ibmasm
lis3lv02d
mei
Char/Misc driver patches for 3.18-rc1
2014-10-08 06:55:41 -04:00
mic
virtio: unify config_changed handling
2014-10-15 10:24:54 +10:30
sgi-gru
Merge branch 'x86-uv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next
2014-06-03 15:48:23 -07:00
sgi-xp
net: set name_assign_type in alloc_netdev()
2014-07-15 16:12:48 -07:00
ti-st
misc: st_core: Protect unsigned value against becoming negative
2014-09-23 23:14:28 -07:00
vmw_vmci
PCI changes for the v3.18 merge window:
2014-10-09 15:03:49 -04:00
ad525x_dpot-i2c.c
ad525x_dpot-spi.c
ad525x_dpot.c
ad525x_dpot.h
apds990x.c
apds9802als.c
arm-charlcd.c
misc: arm-charlcd: add DT probe support
2014-05-03 19:26:25 -04:00
atmel-ssc.c
ASoC: atmel-ssc: distinguish whether SSC supports fslen ext
2014-06-21 11:37:32 +01:00
atmel_tclib.c
ARM: at91/tclib: mask interruptions at shutdown and probe
2014-09-08 10:54:03 +02:00
bh1770glc.c
misc: bh1770glc: Use managed functions
2014-07-22 16:28:11 -07:00
bh1780gli.c
misc: bh1780: Introduce the use of devm_kzalloc
2014-07-27 11:10:42 -07:00
bmp085-i2c.c
bmp085-spi.c
bmp085.c
bmp085.h
cs5535-mfgpt.c
ds1682.c
misc: (ds1682) replace obsolete simple_strtoull() with kstrtoull()
2014-05-03 19:26:24 -04:00
dummy-irq.c
Add MODULE_DESCRIPTION to dummy-irq.c and lkdtm.c in drivers/misc
2014-07-09 14:19:34 -07:00
enclosure.c
fsa9480.c
hmc6352.c
hpilo.c
hpilo.h
ics932s401.c
ioc4.c
misc: ioc4: Use ktime_get_ns()
2014-07-23 15:01:43 -07:00
isl29003.c
isl29020.c
Kconfig
cxl: Add base builtin support
2014-10-08 20:15:56 +11:00
kgdbts.c
lattice-ecp3-config.c
misc: lattice-ecp3-config: Add missing MODULE_FIRMWARE()
2014-09-23 23:04:17 -07:00
lkdtm.c
Add MODULE_DESCRIPTION to dummy-irq.c and lkdtm.c in drivers/misc
2014-07-09 14:19:34 -07:00
Makefile
cxl: Add base builtin support
2014-10-08 20:15:56 +11:00
pch_phub.c
phantom.c
pti.c
spear13xx_pcie_gadget.c
pcie-gadget-spear: use devm_ functions
2014-09-23 23:04:17 -07:00
sram.c
ti_dac7512.c
tifm_7xx1.c
tifm_core.c
tsl2550.c
vexpress-syscfg.c
misc: vexpress: Fix sparse non static symbol warnings
2014-07-22 16:28:11 -07:00
vmw_balloon.c
MAINTAINERS: add entry for VMware Balloon driver
2014-06-20 11:47:33 -07:00