All of lore.kernel.org
 help / color / mirror / Atom feed
From: Keith Busch <keith.busch@intel.com>
To: Lukas Wunner <lukas@wunner.de>
Cc: linux-pci@vger.kernel.org, Bjorn Helgaas <bhelgaas@google.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Wei Zhang <wzhang@fb.com>, Austin Bolen <Austin.Bolen@dell.com>,
	Christoph Hellwig <hch@infradead.org>
Subject: Re: [PATCHv6 3/5] pci: No config access for disconnected devices
Date: Fri, 10 Feb 2017 13:38:52 -0500	[thread overview]
Message-ID: <20170210183852.GD12778@localhost.localdomain> (raw)
In-Reply-To: <20170208060410.GA1026@wunner.de>

On Wed, Feb 08, 2017 at 07:04:10AM +0100, Lukas Wunner wrote:
> On Tue, Feb 07, 2017 at 02:32:35PM -0500, Keith Busch wrote:
> > If we've  detected the PCI device is disconnected, there is no need to
> > attempt to access its config space since we know the operation will
> > fail. This patch has all the config reads and writes return -ENODEV
> > error immediately when in such a state.
> > 
> > If a config read is sent to a disconnected device, the value will be
> > set to all 1's. This is the same as what hardware is expected to return
> > when accessing a removed device, but software can do this faster without
> > relying on hardware.
> > 
> > Signed-off-by: Keith Busch <keith.busch@intel.com>
> > Reviewed-by: Christoph Hellwig <hch@lst.de>
> > ---
> >  drivers/pci/access.c | 18 ++++++++++++++++++
> >  1 file changed, 18 insertions(+)
> > 
> > diff --git a/drivers/pci/access.c b/drivers/pci/access.c
> > index d37b2ed..d63e9dd 100644
> > --- a/drivers/pci/access.c
> > +++ b/drivers/pci/access.c
> > @@ -892,12 +892,20 @@ EXPORT_SYMBOL(pcie_capability_clear_and_set_dword);
> >  
> >  int pci_read_config_byte(const struct pci_dev *dev, int where, u8 *val)
> >  {
> > +	if (pci_dev_is_disconnected(dev)) {
> 
> You used to have unlikely() here up until v4 but dropped it in v5.
> Why?  Seemed sensible to me.

Didn't mean to remove the unlikely. The micro-optimization isn't in a
performance path, but I'll build it back in.

  reply	other threads:[~2017-02-10 18:30 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-07 19:32 [PATCHv6 0/5] Limiting PCI access Keith Busch
2017-02-07 19:32 ` [PATCHv6 1/5] pci: Export pci device config accessors Keith Busch
2017-02-07 19:32 ` [PATCHv6 2/5] pci: Add device disconnected state Keith Busch
2017-02-07 19:32 ` [PATCHv6 3/5] pci: No config access for disconnected devices Keith Busch
2017-02-08  6:04   ` Lukas Wunner
2017-02-10 18:38     ` Keith Busch [this message]
2017-02-10 19:54       ` Greg Kroah-Hartman
2017-02-10 20:54         ` Keith Busch
2017-02-07 19:32 ` [PATCHv6 4/5] pci/msix: Skip disabling " Keith Busch
2017-02-07 19:32 ` [PATCHv6 5/5] pci: Quick return for pci_device_is_present Keith Busch
2017-03-29 18:01 ` [PATCHv6 0/5] Limiting PCI access Wei Zhang
2017-03-30  3:56 ` Bjorn Helgaas
2017-03-30  4:10   ` Wei Zhang

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=20170210183852.GD12778@localhost.localdomain \
    --to=keith.busch@intel.com \
    --cc=Austin.Bolen@dell.com \
    --cc=bhelgaas@google.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hch@infradead.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=lukas@wunner.de \
    --cc=wzhang@fb.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.