diff mbox series

[11/12] s390x/pci: use dtsm provided from vfio capabilities for interpreted devices

Message ID 20211207210425.150923-12-mjrosato@linux.ibm.com (mailing list archive)
State New, archived
Headers show
Series s390x/pci: zPCI interpretation support | expand

Commit Message

Matthew Rosato Dec. 7, 2021, 9:04 p.m. UTC
When using the IOAT assist via interpretation, we should advertise what
the host driver supports, not QEMU.

Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com>
---
 hw/s390x/s390-pci-vfio.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Pierre Morel Dec. 15, 2021, 7:47 a.m. UTC | #1
On 12/7/21 22:04, Matthew Rosato wrote:
> When using the IOAT assist via interpretation, we should advertise what
> the host driver supports, not QEMU.
> 
> Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com>
> ---
>   hw/s390x/s390-pci-vfio.c | 6 +++++-
>   1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/s390x/s390-pci-vfio.c b/hw/s390x/s390-pci-vfio.c
> index 6fc03a858a..c9269683f5 100644
> --- a/hw/s390x/s390-pci-vfio.c
> +++ b/hw/s390x/s390-pci-vfio.c
> @@ -336,7 +336,11 @@ static void s390_pci_read_group(S390PCIBusDevice *pbdev,
>           resgrp->i = cap->noi;
>           resgrp->maxstbl = cap->maxstbl;
>           resgrp->version = cap->version;
> -        resgrp->dtsm = ZPCI_DTSM;
> +        if (hdr->version >= 2 && pbdev->interp) {
> +            resgrp->dtsm = cap->dtsm;
> +        } else {
> +            resgrp->dtsm = ZPCI_DTSM;
> +        }
>       }
>   }
>   
> 
Reviewed-by: Pierre Morel <pmorel@linux.ibm.com>
diff mbox series

Patch

diff --git a/hw/s390x/s390-pci-vfio.c b/hw/s390x/s390-pci-vfio.c
index 6fc03a858a..c9269683f5 100644
--- a/hw/s390x/s390-pci-vfio.c
+++ b/hw/s390x/s390-pci-vfio.c
@@ -336,7 +336,11 @@  static void s390_pci_read_group(S390PCIBusDevice *pbdev,
         resgrp->i = cap->noi;
         resgrp->maxstbl = cap->maxstbl;
         resgrp->version = cap->version;
-        resgrp->dtsm = ZPCI_DTSM;
+        if (hdr->version >= 2 && pbdev->interp) {
+            resgrp->dtsm = cap->dtsm;
+        } else {
+            resgrp->dtsm = ZPCI_DTSM;
+        }
     }
 }