From: Bjorn Helgaas <helgaas@kernel.org>
To: Vincent Liu <vincent.liu@nutanix.com>
Cc: gregkh@linuxfoundation.org, dakr@kernel.org,
linux-kernel@vger.kernel.org, rafael@kernel.org,
bhelgaas@google.com, linux-pci@vger.kernel.org
Subject: Re: [PATCH v2] driver core: Check drivers_autoprobe for all added devices
Date: Tue, 14 Oct 2025 15:07:01 -0500 [thread overview]
Message-ID: <20251014200701.GA859701@bhelgaas> (raw)
In-Reply-To: <20251013181459.517736-1-vincent.liu@nutanix.com>
On Mon, Oct 13, 2025 at 07:14:59PM +0100, Vincent Liu wrote:
> When a device is hot-plugged, the drivers_autoprobe sysfs attribute is
> not checked. This means that drivers_autoprobe is not working as
> intended, e.g. hot-plugged PCIe devices will still be autoprobed and
> bound to drivers even with drivers_autoprobe disabled.
>
> Make sure all devices check drivers_autoprobe by pushing the
> drivers_autoprobe check into device_initial_probe. This will only
> affect devices on the PCI bus for now as device_initial_probe is only
> called by pci_bus_add_device and bus_probe_device (but bus_probe_device
> already checks for autoprobe).
> In particular for the PCI devices, only
> hot-plugged PCIe devices/VFs should be affected as the default value of
> pci/drivers_autoprobe remains 1 and can only be cleared from userland.
I'm not sure what this last sentence is telling us. Does
"pci/drivers_autoprobe" refer to struct pci_sriov.drivers_autoprobe?
If so, can you elaborate on the connection with struct
subsys_private.drivers_autoprobe, which this patch tests? I don't see
anything in this patch related to pci_sriov.
As far as I can tell, this patch is generic with respect to
conventional PCI vs PCIe. If so, I'd use "PCI" everywhere instead of
a mix of PCI and PCIe.
> Any future callers of device_initial_probe will respsect the
> drivers_autoprobe sysfs attribute, but this should be the intended
> purpose of drivers_autoprobe.
Add "()" after function names to make them easily recognizable as
functions.
s/respsect/respect/
s/but this should be the/which is the/ # maybe? not sure what you intend
> Signed-off-by: Vincent Liu <vincent.liu@nutanix.com>
> ---
> v1->v2: Change commit subject to include driver core (no code change)
> https://lore.kernel.org/20251001151508.1684592-1-vincent.liu@nutanix.com
> ---
> drivers/base/bus.c | 3 +--
> drivers/base/dd.c | 10 +++++++++-
> 2 files changed, 10 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/base/bus.c b/drivers/base/bus.c
> index 5e75e1bce551..320e155c6be7 100644
> --- a/drivers/base/bus.c
> +++ b/drivers/base/bus.c
> @@ -533,8 +533,7 @@ void bus_probe_device(struct device *dev)
> if (!sp)
> return;
>
> - if (sp->drivers_autoprobe)
> - device_initial_probe(dev);
> + device_initial_probe(dev);
>
> mutex_lock(&sp->mutex);
> list_for_each_entry(sif, &sp->interfaces, node)
> diff --git a/drivers/base/dd.c b/drivers/base/dd.c
> index 13ab98e033ea..37fc57e44e54 100644
> --- a/drivers/base/dd.c
> +++ b/drivers/base/dd.c
> @@ -1077,7 +1077,15 @@ EXPORT_SYMBOL_GPL(device_attach);
>
> void device_initial_probe(struct device *dev)
> {
> - __device_attach(dev, true);
> + struct subsys_private *sp = bus_to_subsys(dev->bus);
> +
> + if (!sp)
> + return;
> +
> + if (sp->drivers_autoprobe)
> + __device_attach(dev, true);
> +
> + subsys_put(sp);
> }
>
> /*
> --
> 2.43.7
>
next prev parent reply other threads:[~2025-10-14 20:07 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-01 15:15 [PATCH] PCI: Check drivers_autoprobe for all added devices Vincent Liu
2025-10-02 5:55 ` Greg Kroah-Hartman
2025-10-02 12:04 ` [PATCH] driver core: " Vincent Liu
2025-10-13 18:14 ` [PATCH v2] driver core: " Vincent Liu
2025-10-14 5:14 ` Greg KH
2025-10-14 12:10 ` Vincent Liu
2025-10-21 12:49 ` Vincent Liu
2025-10-22 10:32 ` Greg KH
2025-10-14 20:07 ` Bjorn Helgaas [this message]
2025-10-15 10:23 ` Vincent Liu
2025-10-15 16:53 ` Bjorn Helgaas
2025-10-22 12:07 ` [PATCH v3] " Vincent Liu
2025-11-04 13:16 ` Vincent Liu
2025-11-20 17:00 ` [PATCH v3 RESEND] " Vincent Liu
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=20251014200701.GA859701@bhelgaas \
--to=helgaas@kernel.org \
--cc=bhelgaas@google.com \
--cc=dakr@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=rafael@kernel.org \
--cc=vincent.liu@nutanix.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.