Re: [PATCH 1/1] pci: Block config access during BIST (resend)

From: Andi Kleen
Date: Tue Jan 11 2005 - 12:50:17 EST


On Tue, Jan 11, 2005 at 02:37:40PM +0000, Alan Cox wrote:
> On Llu, 2005-01-10 at 22:57, Brian King wrote:
> > > For this I would add a semaphore or a lock bit to pci_dev.
> > > Probably a simple flag is good enough that is checked by sysfs/proc
> > > and return EBUSY when set.
> >
> > How about something like this... (only compile tested at this point)
>
>
> User space does not expect to get dumped with -EBUSY randomly on PCI

I think it's a reasonable thing to do. If you prefer you could fake a
0xffffffff read, that would look like busy or non existing hardware.
But the errno would seem to be cleaner to me.

There may be other reasons to have error codes here in the future
too - e.g. with the upcomming support for real PCI error handling
it would make a lot of sense to return EIO in some cases. User space
will just have to cope with that.

> accesses. Not a viable option in that form _but_ making them sleep would
> work - even with a simple global wait queue
> for the pci_unblock_.. path
>
> ie add the following (oh and uninlined probably for compatcness)
>
> static int pci_user_wait_access(struct pci_dev *pdev) {
> wait_event(&pci_ucfg_wait, dev->block_ucfg_access == 0);
> }

I don't like this very much. What happens when the device
doesn't get out of BIST for some reason?

I think it's better to keep this simple, and an error is fine for that.

-Andi
-
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/