linux_dsm_epyc7002/drivers/misc
Ira Snyder 6c15d7afbb carma-fpga: fix race between data dumping and DMA callback
When the system is under heavy load, we occasionally saw a problem where
the system would get a legitimate interrupt when they should be
disabled.

This was caused by the data_dma_cb() DMA callback unconditionally
re-enabling FPGA interrupts even when data dumping is disabled. When
data dumping was re-enabled, the irq handler would fire while a DMA was
in progress. The "BUG_ON(priv->inflight != NULL);" during the second
invocation of the DMA callback caused the system to crash.

To fix the issue, the priv->enabled boolean is moved under the
protection of the priv->lock spinlock. The DMA callback checks the
boolean to know whether to re-enable FPGA interrupts before it returns.

Now that it is fixed, the driver keeps FPGA interrupts disabled when it
expects that they are disabled, fixing the bug.

Signed-off-by: Ira W. Snyder <iws@ovro.caltech.edu>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2012-02-27 11:33:59 +11:00
..
altera-stapl
c2port c2port: fix build error for duramar2150 due to missing header. 2012-01-24 16:21:01 -08:00
carma carma-fpga: fix race between data dumping and DMA callback 2012-02-27 11:33:59 +11:00
cb710 mmc: cb710 core: Add missing spin_lock_init for irq_lock of struct cb710_chip 2012-02-02 16:28:14 -08:00
eeprom eeprom_93cx6: Add write support 2011-11-26 14:59:39 -05:00
ibmasm misc latin1 to utf8 conversions 2012-01-02 13:04:55 +01:00
iwmc3200top module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
lis3lv02d module_param: check type correctness for module_param_array 2012-01-13 09:32:16 +10:30
sgi-gru switch procfs to umode_t use 2012-01-03 22:54:56 -05:00
sgi-xp
ti-st drivers:misc: ti-st: DEBUG uart, baud rate mods 2012-01-04 15:21:04 -08:00
ab8500-pwm.c mfd: Unify abx500 headers in mfd/abx500 2012-01-09 00:37:39 +01:00
ad525x_dpot-i2c.c misc: ad525x_dpot: Add support for SPI module device table matching 2011-11-18 11:27:02 -08:00
ad525x_dpot-spi.c misc: ad525x_dpot: Add support for SPI module device table matching 2011-11-18 11:27:02 -08:00
ad525x_dpot.c misc: ad525x_dpot: Add support for SPI module device table matching 2011-11-18 11:27:02 -08:00
ad525x_dpot.h Merge branch 'char-misc-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc 2012-01-09 12:08:59 -08:00
apds990x.c
apds9802als.c
arm-charlcd.c
atmel_pwm.c
atmel_tclib.c
atmel-ssc.c
bh1770glc.c
bh1780gli.c
bmp085.c BMP085: Remove redundant semi-colon from return statement 2012-01-04 15:21:56 -08:00
cs5535-mfgpt.c cs5535-mfgpt: don't call __init function from __devinit 2012-02-02 16:28:13 -08:00
ds1682.c
enclosure.c
ep93xx_pwm.c
fsa9480.c
hmc6352.c
hpilo.c
hpilo.h
ics932s401.c
ioc4.c
isl29003.c
isl29020.c isl29020: Remove a redundant semi-colon from return statement 2012-01-04 15:21:56 -08:00
Kconfig drivers: misc: Remove MISC_DEVICES config option 2012-01-24 16:24:02 -08:00
kgdbts.c
lkdtm.c lkdtm: avoid calling lkdtm_do_action() with spinlock held 2012-02-03 16:16:41 -08:00
Makefile misc: Add driver support for MAX8997 MUIC 2012-01-09 00:37:32 +01:00
max8997-muic.c misc: Remove max8997-muic sysfs attributes 2012-01-09 00:37:42 +01:00
pch_phub.c
phantom.c
pti.c
spear13xx_pcie_gadget.c
ti_dac7512.c
tifm_7xx1.c
tifm_core.c
tsl2550.c
vmw_balloon.c vmw_balloon: fix for a -Wuninitialized warning 2012-02-02 16:28:13 -08:00