b30197d2c0
IPR scsi adapter have an exposure today in that they issue BIST to the adapter to reset the card. If, during the time it takes to complete BIST, userspace attempts to access PCI config space, the host bus bridge will master abort the access since the ipr adapter does not respond on the PCI bus for a brief period of time when running BIST. On PPC64 hardware, this master abort results in the host PCI bridge isolating that PCI device from the rest of the system, making the device unusable until Linux is rebooted. This patch makes use of some newly added PCI layer APIs that allow for protection from userspace accessing config space of a device in scenarios such as this. Signed-off-by: Brian King <brking@us.ibm.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: James Bottomley <James.Bottomley@steeleye.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> drivers/scsi/ipr.c | 2 ++ 1 file changed, 2 insertions(+) |
||
---|---|---|
.. | ||
aacraid | ||
aic7xxx | ||
aic7xxx_old | ||
arm | ||
dpt | ||
ibmvscsi | ||
lpfc | ||
megaraid | ||
pcmcia | ||
qla2xxx | ||
sym53c8xx_2 | ||
3w-9xxx.c | ||
3w-9xxx.h | ||
3w-xxxx.c | ||
3w-xxxx.h | ||
53c7xx_d.h_shipped | ||
53c7xx_u.h_shipped | ||
53c7xx.c | ||
53c7xx.h | ||
53c7xx.scr | ||
53c700_d.h_shipped | ||
53c700.c | ||
53c700.h | ||
53c700.scr | ||
a100u2w.c | ||
a100u2w.h | ||
a2091.c | ||
a2091.h | ||
a3000.c | ||
a3000.h | ||
advansys.c | ||
advansys.h | ||
aha152x.c | ||
aha152x.h | ||
aha1542.c | ||
aha1542.h | ||
aha1740.c | ||
aha1740.h | ||
ahci.c | ||
aic7xxx_old.c | ||
amiga7xx.c | ||
amiga7xx.h | ||
ata_piix.c | ||
atari_dma_emul.c | ||
atari_NCR5380.c | ||
atari_scsi.c | ||
atari_scsi.h | ||
atp870u.c | ||
atp870u.h | ||
blz1230.c | ||
blz2060.c | ||
BusLogic.c | ||
BusLogic.h | ||
bvme6000.c | ||
bvme6000.h | ||
ch.c | ||
constants.c | ||
cpqfcTS.h | ||
cpqfcTSchip.h | ||
cpqfcTScontrol.c | ||
cpqfcTSi2c.c | ||
cpqfcTSinit.c | ||
cpqfcTSioctl.h | ||
cpqfcTSstructs.h | ||
cpqfcTStrigger.c | ||
cpqfcTStrigger.h | ||
cpqfcTSworker.c | ||
cyberstorm.c | ||
cyberstormII.c | ||
dc395x.c | ||
dc395x.h | ||
dec_esp.c | ||
dmx3191d.c | ||
dpt_i2o.c | ||
dpti.h | ||
dtc.c | ||
dtc.h | ||
eata_generic.h | ||
eata_pio.c | ||
eata_pio.h | ||
eata.c | ||
esp.c | ||
esp.h | ||
fastlane.c | ||
fcal.c | ||
fcal.h | ||
fd_mcs.c | ||
fdomain.c | ||
fdomain.h | ||
FlashPoint.c | ||
g_NCR5380_mmio.c | ||
g_NCR5380.c | ||
g_NCR5380.h | ||
gdth_ioctl.h | ||
gdth_kcompat.h | ||
gdth_proc.c | ||
gdth_proc.h | ||
gdth.c | ||
gdth.h | ||
gvp11.c | ||
gvp11.h | ||
hosts.c | ||
hosts.h | ||
ibmmca.c | ||
ibmmca.h | ||
ide-scsi.c | ||
imm.c | ||
imm.h | ||
in2000.c | ||
in2000.h | ||
initio.c | ||
initio.h | ||
ipr.c | ||
ipr.h | ||
ips.c | ||
ips.h | ||
jazz_esp.c | ||
Kconfig | ||
lasi700.c | ||
libata-core.c | ||
libata-scsi.c | ||
libata.h | ||
mac53c94.c | ||
mac53c94.h | ||
mac_esp.c | ||
mac_scsi.c | ||
mac_scsi.h | ||
Makefile | ||
mca_53c9x.c | ||
megaraid.c | ||
megaraid.h | ||
mesh.c | ||
mesh.h | ||
mvme16x.c | ||
mvme16x.h | ||
mvme147.c | ||
mvme147.h | ||
ncr53c8xx.c | ||
ncr53c8xx.h | ||
NCR53c406a.c | ||
NCR53C9x.c | ||
NCR53C9x.h | ||
NCR5380.c | ||
NCR5380.h | ||
NCR_D700.c | ||
NCR_D700.h | ||
NCR_Q720.c | ||
NCR_Q720.h | ||
nsp32_debug.c | ||
nsp32_io.h | ||
nsp32.c | ||
nsp32.h | ||
oktagon_esp.c | ||
oktagon_io.S | ||
osst_detect.h | ||
osst_options.h | ||
osst.c | ||
osst.h | ||
pas16.c | ||
pas16.h | ||
pci2000.h | ||
pdc_adma.c | ||
pluto.c | ||
pluto.h | ||
ppa.c | ||
ppa.h | ||
psi240i.c | ||
psi240i.h | ||
psi_chip.h | ||
ql1040_fw.h | ||
ql1280_fw.h | ||
ql12160_fw.h | ||
qla1280.c | ||
qla1280.h | ||
qlogicfas408.c | ||
qlogicfas408.h | ||
qlogicfas.c | ||
qlogicfc_asm.c | ||
qlogicfc.c | ||
qlogicisp_asm.c | ||
qlogicisp.c | ||
qlogicpti_asm.c | ||
qlogicpti.c | ||
qlogicpti.h | ||
raid_class.c | ||
sata_mv.c | ||
sata_nv.c | ||
sata_promise.c | ||
sata_promise.h | ||
sata_qstor.c | ||
sata_sil24.c | ||
sata_sil.c | ||
sata_sis.c | ||
sata_svw.c | ||
sata_sx4.c | ||
sata_uli.c | ||
sata_via.c | ||
sata_vsc.c | ||
script_asm.pl | ||
scsi_debug.c | ||
scsi_debug.h | ||
scsi_devinfo.c | ||
scsi_error.c | ||
scsi_ioctl.c | ||
scsi_lib.c | ||
scsi_logging.h | ||
scsi_module.c | ||
scsi_priv.h | ||
scsi_proc.c | ||
scsi_scan.c | ||
scsi_sysctl.c | ||
scsi_sysfs.c | ||
scsi_transport_fc.c | ||
scsi_transport_iscsi.c | ||
scsi_transport_sas.c | ||
scsi_transport_spi.c | ||
scsi_typedefs.h | ||
scsi.c | ||
scsi.h | ||
scsicam.c | ||
sd.c | ||
seagate.c | ||
seagate.h | ||
sg.c | ||
sgiwd93.c | ||
sgiwd93.h | ||
sim710.c | ||
sr_ioctl.c | ||
sr_vendor.c | ||
sr.c | ||
sr.h | ||
st_options.h | ||
st.c | ||
st.h | ||
sun3_NCR5380.c | ||
sun3_scsi_vme.c | ||
sun3_scsi.c | ||
sun3_scsi.h | ||
sun3x_esp.c | ||
sym53c8xx_comm.h | ||
sym53c8xx_defs.h | ||
sym53c416.c | ||
sym53c416.h | ||
t128.c | ||
t128.h | ||
tmscsim.c | ||
tmscsim.h | ||
u14-34f.c | ||
ultrastor.c | ||
ultrastor.h | ||
wd33c93.c | ||
wd33c93.h | ||
wd7000.c | ||
zalon.c |