[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20220628085943.5d4d5646.alex.williamson@redhat.com>
Date: Tue, 28 Jun 2022 08:59:43 -0600
From: Alex Williamson <alex.williamson@...hat.com>
To: Matthew Rosato <mjrosato@...ux.ibm.com>
Cc: linux-s390@...r.kernel.org, cohuck@...hat.com,
schnelle@...ux.ibm.com, farman@...ux.ibm.com, pmorel@...ux.ibm.com,
borntraeger@...ux.ibm.com, hca@...ux.ibm.com, gor@...ux.ibm.com,
gerald.schaefer@...ux.ibm.com, agordeev@...ux.ibm.com,
svens@...ux.ibm.com, frankja@...ux.ibm.com, david@...hat.com,
imbrenda@...ux.ibm.com, vneethv@...ux.ibm.com,
oberpar@...ux.ibm.com, freude@...ux.ibm.com, thuth@...hat.com,
pasic@...ux.ibm.com, pbonzini@...hat.com, corbet@....net,
jgg@...dia.com, kvm@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-doc@...r.kernel.org
Subject: Re: [PATCH v9 18/21] vfio-pci/zdev: add function handle to clp base
capability
On Mon, 6 Jun 2022 16:33:22 -0400
Matthew Rosato <mjrosato@...ux.ibm.com> wrote:
> The function handle is a system-wide unique identifier for a zPCI
> device. With zPCI instruction interpretation, the host will no
> longer be executing the zPCI instructions on behalf of the guest.
> As a result, the guest needs to use the real function handle in
> order for firmware to associate the instruction with the proper
> PCI function. Let's provide that handle to the guest.
>
> Reviewed-by: Christian Borntraeger <borntraeger@...ux.ibm.com>
> Reviewed-by: Pierre Morel <pmorel@...ux.ibm.com>
> Signed-off-by: Matthew Rosato <mjrosato@...ux.ibm.com>
> ---
> drivers/vfio/pci/vfio_pci_zdev.c | 5 +++--
> include/uapi/linux/vfio_zdev.h | 3 +++
> 2 files changed, 6 insertions(+), 2 deletions(-)
Acked-by: Alex Williamson <alex.williamson@...hat.com>
> diff --git a/drivers/vfio/pci/vfio_pci_zdev.c b/drivers/vfio/pci/vfio_pci_zdev.c
> index 686f2e75e392..4f28cdd7ecd1 100644
> --- a/drivers/vfio/pci/vfio_pci_zdev.c
> +++ b/drivers/vfio/pci/vfio_pci_zdev.c
> @@ -24,14 +24,15 @@ static int zpci_base_cap(struct zpci_dev *zdev, struct vfio_info_cap *caps)
> {
> struct vfio_device_info_cap_zpci_base cap = {
> .header.id = VFIO_DEVICE_INFO_CAP_ZPCI_BASE,
> - .header.version = 1,
> + .header.version = 2,
> .start_dma = zdev->start_dma,
> .end_dma = zdev->end_dma,
> .pchid = zdev->pchid,
> .vfn = zdev->vfn,
> .fmb_length = zdev->fmb_length,
> .pft = zdev->pft,
> - .gid = zdev->pfgid
> + .gid = zdev->pfgid,
> + .fh = zdev->fh
> };
>
> return vfio_info_add_capability(caps, &cap.header, sizeof(cap));
> diff --git a/include/uapi/linux/vfio_zdev.h b/include/uapi/linux/vfio_zdev.h
> index b4309397b6b2..78c022af3d29 100644
> --- a/include/uapi/linux/vfio_zdev.h
> +++ b/include/uapi/linux/vfio_zdev.h
> @@ -29,6 +29,9 @@ struct vfio_device_info_cap_zpci_base {
> __u16 fmb_length; /* Measurement Block Length (in bytes) */
> __u8 pft; /* PCI Function Type */
> __u8 gid; /* PCI function group ID */
> + /* End of version 1 */
> + __u32 fh; /* PCI function handle */
> + /* End of version 2 */
> };
>
> /**
Powered by blists - more mailing lists