linux/drivers/misc
Andrew Donnellan 14a3ae34bf cxl: Prevent read/write to AFU config space while AFU not configured
During EEH recovery, we deconfigure all AFUs whilst leaving the
corresponding vPHB and virtual PCI device in place.

If something attempts to interact with the AFU's PCI config space (e.g.
running lspci) after the AFU has been deconfigured and before it's
reconfigured, cxl_pcie_{read,write}_config() will read invalid values from
the deconfigured struct cxl_afu and proceed to Oops when they try to
dereference pointers that have been set to NULL during deconfiguration.

Add a rwsem to struct cxl_afu so we can prevent interaction with config
space while the AFU is deconfigured.

Reported-by: Pradipta Ghosh <pradghos@in.ibm.com>
Suggested-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com>
Cc: stable@vger.kernel.org # v4.9+
Signed-off-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
Signed-off-by: Vaibhav Jain <vaibhav@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2017-01-25 13:34:24 +11:00
..
altera-stapl
c2port
cb710
cxl cxl: Prevent read/write to AFU config space while AFU not configured 2017-01-25 13:34:24 +11:00
echo
eeprom Merge branch 'i2c/for-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2016-10-07 14:12:21 -07:00
genwqe genwqe: use pci_irq_allocate_vectors 2016-10-31 04:00:09 -06:00
ibmasm Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
lis3lv02d
mei mei: bus: enable OS version only for SPT and newer 2017-01-11 07:43:57 +01:00
mic mm: replace get_user_pages() write/force parameters with gup_flags 2016-10-19 08:11:43 -07:00
sgi-gru mm: use vmf->address instead of of vmf->virtual_address 2016-12-14 16:04:09 -08:00
sgi-xp net: use core MTU range checking in misc drivers 2016-10-20 14:51:10 -04:00
ti-st
vmw_vmci VMCI: Doorbell create and destroy fixes 2016-10-28 08:26:21 -04:00
ad525x_dpot-i2c.c
ad525x_dpot-spi.c
ad525x_dpot.c
ad525x_dpot.h
apds990x.c
apds9802als.c
arm-charlcd.c
atmel-ssc.c
atmel_tclib.c
bh1770glc.c
cs5535-mfgpt.c
ds1682.c
dummy-irq.c
enclosure.c
fsa9480.c
hmc6352.c
hpilo.c
hpilo.h
ics932s401.c
ioc4.c
isl29003.c
isl29020.c
Kconfig
kgdbts.c
lattice-ecp3-config.c
lkdtm.h lkdtm: Add tests for struct list corruption 2016-10-31 13:01:58 -07:00
lkdtm_bugs.c Char/Misc driver patches for 4.10-rc1 2016-12-13 12:11:01 -08:00
lkdtm_core.c lkdtm: Add tests for struct list corruption 2016-10-31 13:01:58 -07:00
lkdtm_heap.c
lkdtm_perms.c lkdtm: Do not use flush_icache_range() on user addresses 2016-11-10 15:34:56 +01:00
lkdtm_rodata.c
lkdtm_usercopy.c
Makefile
panel.c
pch_phub.c
phantom.c
pti.c
qcom-coincell.c
spear13xx_pcie_gadget.c
sram.c misc: sram: remove useless #ifdef 2016-11-30 15:43:25 +01:00
ti_dac7512.c
tifm_7xx1.c
tifm_core.c
tsl2550.c
vexpress-syscfg.c
vmw_balloon.c