• Brian King's avatar
    [PATCH] PCI: Block config access during BIST · e04b0ea2
    Brian King authored
    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: default avatarBrian King <brking@us.ibm.com>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarGreg 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(-)
    e04b0ea2
pci.h 3.5 KB