From: Greg KH <greg@kroah.com>
To: Brian King <brking@us.ibm.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: userspace pci config space accesses
Date: Wed, 28 Apr 2004 16:38:13 -0700 [thread overview]
Message-ID: <20040428233812.GA365@kroah.com> (raw)
In-Reply-To: <40903DBD.1000704@us.ibm.com>
On Wed, Apr 28, 2004 at 06:26:53PM -0500, Brian King wrote:
> 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.
Yes, a driver shouldn't mess with that lock anyway. I was pointing out
that there is already a lock to prevent reading and writing config
errors from happening.
> >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.
Ick. It sounds like "clean state" isn't always true if userspace can
mess the device up by simply reading its config space :)
Worse case thing, stop the whole machine while doing BIST if you want to
prevent this from happening (not that I'm actually suggesting you do it,
but if you really think it's the only way...)
Is there any way you can not run BIST all the time, except when
explicitly asked for from the user?
thanks,
greg k-h
next prev parent reply other threads:[~2004-04-28 23:39 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-04-28 21:49 userspace pci config space accesses Brian King
2004-04-28 22:52 ` Greg KH
2004-04-28 23:26 ` Brian King
2004-04-28 23:38 ` Greg KH [this message]
2004-04-29 0:38 ` Brian King
2004-04-29 10:11 ` Arjan van de Ven
2004-05-01 5:50 ` Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20040428233812.GA365@kroah.com \
--to=greg@kroah.com \
--cc=brking@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox