From: Lukas Wunner <lukas@wunner.de>
To: Mika Westerberg <mika.westerberg@linux.intel.com>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
Ashok Raj <ashok.raj@intel.com>,
Keith Busch <keith.busch@intel.com>,
Yinghai Lu <yinghai@kernel.org>, Sinan Kaya <okaya@kernel.org>,
linux-pci@vger.kernel.org,
Alexandru Gagniuc <mr.nuke.me@gmail.com>
Subject: Re: [PATCH] PCI: pciehp: Differentiate between surprise and safe removal
Date: Wed, 1 Aug 2018 19:15:12 +0200 [thread overview]
Message-ID: <20180801171512.GA28440@wunner.de> (raw)
In-Reply-To: <20180801164358.GI2534@lahna.fi.intel.com>
On Wed, Aug 01, 2018 at 07:43:58PM +0300, Mika Westerberg wrote:
> On Tue, Jul 31, 2018 at 07:50:37AM +0200, Lukas Wunner wrote:
> > -static void remove_board(struct slot *p_slot)
> > +static void remove_board(struct slot *p_slot, bool safe_removal)
> > {
> > struct controller *ctrl = p_slot->ctrl;
> >
> > - pciehp_unconfigure_device(p_slot);
> > + pciehp_unconfigure_device(p_slot, safe_removal);
>
> Below we turn off power to the slot if it has power controller. Even if
> we disable slot from sysfs, I think it ends up being inaccessible after
> power is turned off. I wonder if we should mark the devices disconnected
> in that case as well?
>
> >
> > if (POWER_CTRL(ctrl)) {
> > pciehp_power_off_slot(p_slot);
No, when pciehp_unconfigure_device() returns, the PCI devices below
the hotplug bridge are unbound and removed from the system. They're
gone, so the bit set in their pci_dev struct would no longer be
accessible anyway. Unless of course something is holding a ref on
the pci_dev, but that would seem to be a bug. (Accessing a device
that's already removed from the system, that is.)
Calling pci_dev_set_disconnected() only gives the PCI core and the
driver bound to the device an indication that's it's inaccessible,
so any code paths during unbound and PCI device teardown can skip
accesses. (Because pci_dev_is_disconnected() is currently scoped
to the PCI core, the disconnected status can only be queried from
drivers that live in the PCI core, such as portdrv and all the
port services drivers.) After the pci_dev is removed from the
hierarchy, accessing it seems at least questionable.
Does this make things clearer? Shout if it not. :-)
Thanks,
Lukas
next prev parent reply other threads:[~2018-08-01 17:15 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-31 5:50 [PATCH] PCI: pciehp: Differentiate between surprise and safe removal Lukas Wunner
2018-08-01 16:43 ` Mika Westerberg
2018-08-01 17:15 ` Lukas Wunner [this message]
2018-08-01 19:09 ` Alex G.
2018-08-02 7:20 ` Mika Westerberg
2018-08-02 7:29 ` gokul cg
2018-08-02 8:46 ` Lukas Wunner
2018-08-02 12:28 ` gokul cg
2018-08-02 15:07 ` Lukas Wunner
2018-08-02 17:09 ` Thomas Tai
2018-08-06 18:33 ` gokul cg
2018-08-07 14:26 ` Thomas Tai
2018-08-07 15:30 ` Thomas Tai
2018-08-08 9:59 ` gokul cg
2018-08-08 11:21 ` gokul cg
2018-08-08 20:49 ` Thomas Tai
2018-09-04 17:53 ` Bjorn Helgaas
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=20180801171512.GA28440@wunner.de \
--to=lukas@wunner.de \
--cc=ashok.raj@intel.com \
--cc=helgaas@kernel.org \
--cc=keith.busch@intel.com \
--cc=linux-pci@vger.kernel.org \
--cc=mika.westerberg@linux.intel.com \
--cc=mr.nuke.me@gmail.com \
--cc=okaya@kernel.org \
--cc=yinghai@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;
as well as URLs for NNTP newsgroup(s).