Re: userspace pci config space accesses

From: Brian King
Date: Wed Apr 28 2004 - 18:33:03 EST


Greg KH wrote:
On Wed, Apr 28, 2004 at 04:49:02PM -0500, Brian King wrote:

I recently ran into a problem where lspci was trying to read pci config space
of a pci adapter while the device driver for that adapter was running BIST
on it. On ppc64, this resulted in a PCI error and puts the slot into an error state making it unusable for the remainder of that system boot.
Should there be some blocking in place so that userspace pci config
reads will not occur in these windows or is using tools like lspci
user beware?


There already is a pci_config_lock that should be grabbed when accessing
pci config space. It sounds like the driver needs to play a bit nicer
when it's running a self test :)

Found the lock. Unfortunately, its not exported, so a device driver can't use
it without changing that. Additionally, its a spinlock, and it takes 2 seconds
to complete BIST, which seems a bit too long to hold a spinlock.

What driver is doing this?

The ipr driver, a scsi device driver for ppc64.

http://marc.theaimsgroup.com/?l=linux-scsi&m=108144942527994&w=2

The driver runs BIST at device initialization time to ensure that the device
is in a clean state. It will also run BIST on module unload, and in various
error scenarios.


--
Brian King
eServer Storage I/O
IBM Linux Technology Center

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/