From: Bjorn Helgaas <helgaas@kernel.org>
To: Haiyang Zhang <haiyangz@linux.microsoft.com>
Cc: linux-hyperv@vger.kernel.org, netdev@vger.kernel.org,
"K. Y. Srinivasan" <kys@microsoft.com>,
Haiyang Zhang <haiyangz@microsoft.com>,
Wei Liu <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>,
Long Li <longli@microsoft.com>,
Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Bjorn Helgaas <bhelgaas@google.com>,
Simon Horman <horms@kernel.org>,
Shradha Gupta <shradhagupta@linux.microsoft.com>,
Dipayaan Roy <dipayanroy@linux.microsoft.com>,
Erni Sri Satya Vennela <ernis@linux.microsoft.com>,
linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org,
paulros@microsoft.com
Subject: Re: [PATCH net-next] net: mana: Add handler for sriov configure
Date: Fri, 8 May 2026 17:37:32 -0500 [thread overview]
Message-ID: <20260508223732.GA25113@bhelgaas> (raw)
In-Reply-To: <20260508220412.15138-1-haiyangz@linux.microsoft.com>
On Fri, May 08, 2026 at 03:04:06PM -0700, Haiyang Zhang wrote:
> From: Haiyang Zhang <haiyangz@microsoft.com>
>
> Add callback function for the pci_driver, sriov_configure.
>
> Also disable VF autoprobe when it runs as PF driver on bare metal,
> since the hardware side may not have the VF ready immediately.
>
> Export pci_vf_drivers_autoprobe() so the driver can toggle the VF
> autoprobe flag.
Technically pci_vf_drivers_autoprobe() doesn't *toggle* the autoprobe
flag. That would mean setting it to the opposite of its current
value.
Here I would say "so the driver can prevent autoprobing of the VFs",
which is the intent.
Out of curiosity, how do the VFs eventually get probed? I guess
there's some other mechanism that tells you when they're ready, and
you manually use sysfs 'sriov_drivers_autoprobe' to enable probing,
then bind drivers to them via sysfs?
The prevention of autoprobing sounds like a critical part of this
change; might be worth saying something in the subject, because "add
sriov configure" doesn't include much information.
> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
I assume this would go via a net tree since that's where the bulk of
the changes are.
> ---
> .../net/ethernet/microsoft/mana/gdma_main.c | 20 +++++++++++++++++++
> drivers/pci/iov.c | 1 +
> 2 files changed, 21 insertions(+)
>
> diff --git a/drivers/net/ethernet/microsoft/mana/gdma_main.c b/drivers/net/ethernet/microsoft/mana/gdma_main.c
> index 3bc3fff55999..767f11d5b351 100644
> --- a/drivers/net/ethernet/microsoft/mana/gdma_main.c
> +++ b/drivers/net/ethernet/microsoft/mana/gdma_main.c
> @@ -2094,6 +2094,11 @@ static int mana_gd_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>
> gc->numa_node = dev_to_node(&pdev->dev);
> gc->is_pf = mana_is_pf(pdev->device);
> +
> + /* Disable VF autoprobe on BM */
> + if (gc->is_pf)
> + pci_vf_drivers_autoprobe(pdev, false);
> +
> gc->bar0_va = bar0_va;
> gc->dev = &pdev->dev;
> xa_init(&gc->irq_contexts);
> @@ -2262,6 +2267,20 @@ static void mana_gd_shutdown(struct pci_dev *pdev)
> pci_disable_device(pdev);
> }
>
> +static int mana_sriov_configure(struct pci_dev *pdev, int numvfs)
> +{
> + int err = 0;
> +
> + dev_info(&pdev->dev, "Requested num VFs: %d\n", numvfs);
> +
> + if (numvfs > 0)
> + err = pci_enable_sriov(pdev, numvfs);
> + else
> + pci_disable_sriov(pdev);
> +
> + return err ? err : numvfs;
> +}
> +
> static const struct pci_device_id mana_id_table[] = {
> { PCI_DEVICE(PCI_VENDOR_ID_MICROSOFT, MANA_PF_DEVICE_ID) },
> { PCI_DEVICE(PCI_VENDOR_ID_MICROSOFT, MANA_VF_DEVICE_ID) },
> @@ -2276,6 +2295,7 @@ static struct pci_driver mana_driver = {
> .suspend = mana_gd_suspend,
> .resume = mana_gd_resume,
> .shutdown = mana_gd_shutdown,
> + .sriov_configure = mana_sriov_configure,
> };
>
> static int __init mana_driver_init(void)
> diff --git a/drivers/pci/iov.c b/drivers/pci/iov.c
> index 91ac4e37ecb9..5a701f44b8fd 100644
> --- a/drivers/pci/iov.c
> +++ b/drivers/pci/iov.c
> @@ -1127,6 +1127,7 @@ void pci_vf_drivers_autoprobe(struct pci_dev *dev, bool auto_probe)
> if (dev->is_physfn)
> dev->sriov->drivers_autoprobe = auto_probe;
> }
> +EXPORT_SYMBOL_GPL(pci_vf_drivers_autoprobe);
>
> /**
> * pci_iov_bus_range - find bus range used by Virtual Function
> --
> 2.34.1
>
next prev parent reply other threads:[~2026-05-08 22:37 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-08 22:04 [PATCH net-next] net: mana: Add handler for sriov configure Haiyang Zhang
2026-05-08 22:37 ` Bjorn Helgaas [this message]
2026-05-08 22:47 ` [EXTERNAL] " Haiyang Zhang
2026-05-08 23:10 ` Bjorn Helgaas
2026-05-13 18:47 ` Leon Romanovsky
2026-05-13 19:05 ` Bjorn Helgaas
2026-05-09 22:05 ` sashiko-bot
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=20260508223732.GA25113@bhelgaas \
--to=helgaas@kernel.org \
--cc=andrew+netdev@lunn.ch \
--cc=bhelgaas@google.com \
--cc=davem@davemloft.net \
--cc=decui@microsoft.com \
--cc=dipayanroy@linux.microsoft.com \
--cc=edumazet@google.com \
--cc=ernis@linux.microsoft.com \
--cc=haiyangz@linux.microsoft.com \
--cc=haiyangz@microsoft.com \
--cc=horms@kernel.org \
--cc=kuba@kernel.org \
--cc=kys@microsoft.com \
--cc=linux-hyperv@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=longli@microsoft.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=paulros@microsoft.com \
--cc=shradhagupta@linux.microsoft.com \
--cc=wei.liu@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 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.