kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Alex Williamson <alex.williamson@redhat.com>
To: Yishai Hadas <yishaih@nvidia.com>
Cc: <bhelgaas@google.com>, <corbet@lwn.net>,
	<diana.craciun@oss.nxp.com>, <kwankhede@nvidia.com>,
	<eric.auger@redhat.com>, <masahiroy@kernel.org>,
	<michal.lkml@markovi.net>, <linux-pci@vger.kernel.org>,
	<linux-doc@vger.kernel.org>, <kvm@vger.kernel.org>,
	<linux-s390@vger.kernel.org>, <linux-kbuild@vger.kernel.org>,
	<mgurtovoy@nvidia.com>, <jgg@nvidia.com>, <maorg@nvidia.com>,
	<leonro@nvidia.com>
Subject: Re: [PATCH V2 06/12] vfio/pci: Split the pci_driver code out of vfio_pci_core.c
Date: Thu, 19 Aug 2021 15:12:35 -0600	[thread overview]
Message-ID: <20210819151235.6fe61269.alex.williamson@redhat.com> (raw)
In-Reply-To: <20210818151606.202815-7-yishaih@nvidia.com>

On Wed, 18 Aug 2021 18:16:00 +0300
Yishai Hadas <yishaih@nvidia.com> wrote:
> +
> +static int vfio_pci_sriov_configure(struct pci_dev *pdev, int nr_virtfn)
> +{
> +	might_sleep();

vfio_pci_core_sriov_configure() retained the might_sleep(), it
shouldn't be needed here.

> +
> +	if (!enable_sriov)
> +		return -ENOENT;
> +
> +	return vfio_pci_core_sriov_configure(pdev, nr_virtfn);
> +}
...
> @@ -509,7 +449,7 @@ static struct vfio_pci_core_device *get_pf_vdev(struct vfio_pci_core_device *vde
>  	if (!pf_dev)
>  		return NULL;
>  
> -	if (pci_dev_driver(physfn) != &vfio_pci_driver) {
> +	if (pci_dev_driver(physfn) != pci_dev_driver(vdev->pdev)) {

I think this means that the PF and VF must use the same vfio-pci
"variant" driver, it's too bad we're not enabling vfio-pci to own the
PF while vfio-vendor-foo-pci owns the VF since our SR-IOV security
model remains in the core.  We can work on that later though, no loss
of functionality here.

...
> @@ -1795,12 +1723,12 @@ static int vfio_pci_bus_notifier(struct notifier_block *nb,
>  		pci_info(vdev->pdev, "Captured SR-IOV VF %s driver_override\n",
>  			 pci_name(pdev));
>  		pdev->driver_override = kasprintf(GFP_KERNEL, "%s",
> -						  vfio_pci_ops.name);
> +						  vdev->vdev.ops->name);
>  	} else if (action == BUS_NOTIFY_BOUND_DRIVER &&
>  		   pdev->is_virtfn && physfn == vdev->pdev) {
>  		struct pci_driver *drv = pci_dev_driver(pdev);
>  
> -		if (drv && drv != &vfio_pci_driver)
> +		if (drv && drv != pci_dev_driver(vdev->pdev))
>  			pci_warn(vdev->pdev,
>  				 "VF %s bound to driver %s while PF bound to vfio-pci\n",

"vfio-pci" is hardcoded in this comment.  There are a few other user
visible instances of this in vfio-pci-core.c as well:

MODULE_PARM_DESC(disable_vga, "Disable VGA resource access through vfio-pci");

                ret = pci_request_selected_regions(pdev,
                                                   1 << index, "vfio-pci");

                        pci_info_ratelimited(vdev->pdev,
                                "VF token incorrectly provided, PF not bound to vfio-pci\n");

We should try to fix or reword as many of these as we reasonably can.
Thanks,

Alex


  reply	other threads:[~2021-08-19 21:12 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-18 15:15 [PATCH V2 00/12] Introduce vfio_pci_core subsystem Yishai Hadas
2021-08-18 15:15 ` [PATCH V2 01/12] vfio/pci: Rename vfio_pci.c to vfio_pci_core.c Yishai Hadas
2021-08-18 15:15 ` [PATCH V2 02/12] vfio/pci: Rename vfio_pci_private.h to vfio_pci_core.h Yishai Hadas
2021-08-18 15:15 ` [PATCH V2 03/12] vfio/pci: Rename vfio_pci_device to vfio_pci_core_device Yishai Hadas
2021-08-18 15:15 ` [PATCH V2 04/12] vfio/pci: Rename ops functions to fit core namings Yishai Hadas
2021-08-18 15:15 ` [PATCH V2 05/12] vfio/pci: Include vfio header in vfio_pci_core.h Yishai Hadas
2021-08-18 15:16 ` [PATCH V2 06/12] vfio/pci: Split the pci_driver code out of vfio_pci_core.c Yishai Hadas
2021-08-19 21:12   ` Alex Williamson [this message]
2021-08-19 21:38     ` Alex Williamson
2021-08-19 22:36     ` Jason Gunthorpe
2021-08-18 15:16 ` [PATCH V2 07/12] vfio/pci: Move igd initialization to vfio_pci.c Yishai Hadas
2021-08-18 15:16 ` [PATCH V2 08/12] vfio/pci: Move module parameters " Yishai Hadas
2021-08-18 15:16 ` [PATCH V2 09/12] PCI: Add 'override_only' bitmap to struct pci_device_id Yishai Hadas
2021-08-19 15:15   ` Bjorn Helgaas
2021-08-19 16:16     ` Yishai Hadas
2021-08-19 16:39       ` Bjorn Helgaas
2021-08-19 19:57         ` Max Gurtovoy
2021-08-19 22:19           ` Alex Williamson
2021-08-18 15:16 ` [PATCH V2 10/12] vfio: Use select for eventfd Yishai Hadas
2021-08-18 15:16 ` [PATCH V2 11/12] vfio: Use kconfig if XX/endif blocks instead of repeating 'depends on' Yishai Hadas
2021-08-18 15:16 ` [PATCH V2 12/12] vfio/pci: Introduce vfio_pci_core.ko Yishai Hadas

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=20210819151235.6fe61269.alex.williamson@redhat.com \
    --to=alex.williamson@redhat.com \
    --cc=bhelgaas@google.com \
    --cc=corbet@lwn.net \
    --cc=diana.craciun@oss.nxp.com \
    --cc=eric.auger@redhat.com \
    --cc=jgg@nvidia.com \
    --cc=kvm@vger.kernel.org \
    --cc=kwankhede@nvidia.com \
    --cc=leonro@nvidia.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=maorg@nvidia.com \
    --cc=masahiroy@kernel.org \
    --cc=mgurtovoy@nvidia.com \
    --cc=michal.lkml@markovi.net \
    --cc=yishaih@nvidia.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 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).