On Mon, 6 Jun 2022 16:33:23 -0400 Matthew Rosato <mjrosato@xxxxxxxxxxxxx> wrote: > When doing load/store interpretation, the maximum store block length is > determined by the underlying firmware, not the host kernel API. Reflect > that in the associated Query PCI Function Group clp capability and let > userspace decide which is appropriate to present to the guest. > > Reviewed-by: Pierre Morel <pmorel@xxxxxxxxxxxxx> > Signed-off-by: Matthew Rosato <mjrosato@xxxxxxxxxxxxx> > --- > drivers/vfio/pci/vfio_pci_zdev.c | 6 ++++-- > include/uapi/linux/vfio_zdev.h | 4 ++++ > 2 files changed, 8 insertions(+), 2 deletions(-) Acked-by: Alex Williamson <alex.williamson@xxxxxxxxxx> > diff --git a/drivers/vfio/pci/vfio_pci_zdev.c b/drivers/vfio/pci/vfio_pci_zdev.c > index 4f28cdd7ecd1..e163aa9f6144 100644 > --- a/drivers/vfio/pci/vfio_pci_zdev.c > +++ b/drivers/vfio/pci/vfio_pci_zdev.c > @@ -45,14 +45,16 @@ static int zpci_group_cap(struct zpci_dev *zdev, struct vfio_info_cap *caps) > { > struct vfio_device_info_cap_zpci_group cap = { > .header.id = VFIO_DEVICE_INFO_CAP_ZPCI_GROUP, > - .header.version = 1, > + .header.version = 2, > .dasm = zdev->dma_mask, > .msi_addr = zdev->msi_addr, > .flags = VFIO_DEVICE_INFO_ZPCI_FLAG_REFRESH, > .mui = zdev->fmb_update, > .noi = zdev->max_msi, > .maxstbl = ZPCI_MAX_WRITE_SIZE, > - .version = zdev->version > + .version = zdev->version, > + .reserved = 0, > + .imaxstbl = zdev->maxstbl > }; > > 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 78c022af3d29..77f2aff1f27e 100644 > --- a/include/uapi/linux/vfio_zdev.h > +++ b/include/uapi/linux/vfio_zdev.h > @@ -50,6 +50,10 @@ struct vfio_device_info_cap_zpci_group { > __u16 noi; /* Maximum number of MSIs */ > __u16 maxstbl; /* Maximum Store Block Length */ > __u8 version; /* Supported PCI Version */ > + /* End of version 1 */ > + __u8 reserved; > + __u16 imaxstbl; /* Maximum Interpreted Store Block Length */ > + /* End of version 2 */ > }; > > /**