Commit faf3bfcb authored by Matthew Rosato's avatar Matthew Rosato Committed by Christian Borntraeger
Browse files

vfio-pci/zdev: add function handle to clp base capability



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: default avatarChristian Borntraeger <borntraeger@linux.ibm.com>
Reviewed-by: default avatarPierre Morel <pmorel@linux.ibm.com>
Signed-off-by: default avatarMatthew Rosato <mjrosato@linux.ibm.com>
Acked-by: default avatarAlex Williamson <alex.williamson@redhat.com>
Link: https://lore.kernel.org/r/20220606203325.110625-19-mjrosato@linux.ibm.com


Signed-off-by: default avatarChristian Borntraeger <borntraeger@linux.ibm.com>
parent 8061d1c3
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -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));
+3 −0
Original line number Diff line number Diff line
@@ -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 */
};

/**