linux/drivers/pci
Brian King e04b0ea2e0 [PATCH] PCI: Block config access during BIST
Some PCI adapters (eg.  ipr scsi adapters) 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 is an attempt to close that exposure by introducing some
blocking code in the PCI code.  When blocked, writes will be humored and reads
will return the cached value.  Ben Herrenschmidt has also mentioned that he
plans to use this in PPC power management.

Signed-off-by: Brian King <brking@us.ibm.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

 drivers/pci/access.c    |   89 ++++++++++++++++++++++++++++++++++++++++++++++++
 drivers/pci/pci-sysfs.c |   20 +++++-----
 drivers/pci/pci.h       |    7 +++
 drivers/pci/proc.c      |   28 +++++++--------
 drivers/pci/syscall.c   |   14 +++----
 include/linux/pci.h     |    7 +++
 6 files changed, 134 insertions(+), 31 deletions(-)
2005-10-28 15:36:58 -07:00
..
hotplug [PATCH] PCI Hotplug: Fix buffer overrun in rpadlpar_sysfs.c 2005-09-22 07:58:25 -07:00
pcie [PATCH] DRIVER MODEL: Get rid of the obsolete tri-level suspend/resume callbacks 2005-10-28 09:52:56 -07:00
.gitignore Add some basic .gitignore files 2005-10-18 08:26:15 -07:00
access.c [PATCH] PCI: Block config access during BIST 2005-10-28 15:36:58 -07:00
bus.c [PATCH] PCI: Add pci_walk_bus function to PCI core (nonrecursive) 2005-09-08 15:04:30 -07:00
hotplug.c [PATCH] PCI: remove unused "scratch" 2005-09-22 07:58:24 -07:00
Kconfig [PATCH] PCI: remove CONFIG_PCI_NAMES 2005-09-08 14:57:23 -07:00
Makefile [PATCH] Make sparc64 use setup-res.c 2005-09-08 14:57:25 -07:00
msi.c [PATCH] PCI/libata INTx cleanup 2005-09-08 15:07:08 -07:00
msi.h [PATCH] x86/x86_64: deferred handling of writes to /proc/irqxx/smp_affinity 2005-09-07 16:57:15 -07:00
pci-acpi.c [ACPI] gut acpi_pci_choose_state() to avoid conflict 2005-07-11 23:54:14 -04:00
pci-driver.c [PATCH] PCI: start paying attention to a lot of pci function return values 2005-09-08 14:57:25 -07:00
pci-sysfs.c [PATCH] PCI: Block config access during BIST 2005-10-28 15:36:58 -07:00
pci.c [PATCH] pci: only call pci_restore_bars at boot 2005-09-14 09:37:17 -07:00
pci.h [PATCH] PCI: Block config access during BIST 2005-10-28 15:36:58 -07:00
probe.c [PATCH] pci: fixup parent subordinate busnr 2005-09-23 08:05:16 -07:00
proc.c [PATCH] PCI: Block config access during BIST 2005-10-28 15:36:58 -07:00
quirks.c [PATCH] PCI: ICH6 ACPI and GPIO quirk 2005-10-28 15:36:58 -07:00
remove.c [PATCH] acpi bridge hotadd: Make the PCI remove routines safe for failed hot-plug 2005-06-27 21:52:41 -07:00
rom.c [PATCH] Fix PCI ROM mapping 2005-09-01 10:50:29 -07:00
search.c [IA64] hotplug/ia64: SN Hotplug Driver - pci_find_next_bus export 2005-07-06 15:28:40 -07:00
setup-bus.c cardbus: limit IO windows to 256 bytes 2005-10-23 16:31:16 -07:00
setup-irq.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
setup-res.c [PATCH] Make sparc64 use setup-res.c 2005-09-08 14:57:25 -07:00
syscall.c [PATCH] PCI: Block config access during BIST 2005-10-28 15:36:58 -07:00