Message ID | 20220404181726.60291-10-mjrosato@linux.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | s390x/pci: zPCI interpretation support | expand |
On 4/4/22 20:17, Matthew Rosato wrote: > The maximum supported store block length might be different depending > on whether the instruction is interpretively executed (firmware-reported > maximum) or handled via userspace intercept (host kernel API maximum). > Choose the best available value during group creation. > > Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com> Reviewed-by: Pierre Morel <pmorel@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 985980f021..212dd053f7 100644 > --- a/hw/s390x/s390-pci-vfio.c > +++ b/hw/s390x/s390-pci-vfio.c > @@ -213,7 +213,11 @@ static void s390_pci_read_group(S390PCIBusDevice *pbdev, > resgrp->msia = cap->msi_addr; > resgrp->mui = cap->mui; > resgrp->i = cap->noi; > - resgrp->maxstbl = cap->maxstbl; > + if (pbdev->interp && hdr->version >= 2) { > + resgrp->maxstbl = cap->imaxstbl; > + } else { > + resgrp->maxstbl = cap->maxstbl; > + } > resgrp->version = cap->version; > resgrp->dtsm = ZPCI_DTSM; > } >
On 4/4/22 20:17, Matthew Rosato wrote: > The maximum supported store block length might be different depending > on whether the instruction is interpretively executed (firmware-reported > maximum) or handled via userspace intercept (host kernel API maximum). > Choose the best available value during group creation. > > Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com> Reviewed-by: Pierre Morel <pmorel@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 985980f021..212dd053f7 100644 > --- a/hw/s390x/s390-pci-vfio.c > +++ b/hw/s390x/s390-pci-vfio.c > @@ -213,7 +213,11 @@ static void s390_pci_read_group(S390PCIBusDevice *pbdev, > resgrp->msia = cap->msi_addr; > resgrp->mui = cap->mui; > resgrp->i = cap->noi; > - resgrp->maxstbl = cap->maxstbl; > + if (pbdev->interp && hdr->version >= 2) { > + resgrp->maxstbl = cap->imaxstbl; > + } else { > + resgrp->maxstbl = cap->maxstbl; > + } > resgrp->version = cap->version; > resgrp->dtsm = ZPCI_DTSM; > } >
On 4/4/22 20:17, Matthew Rosato wrote: > The maximum supported store block length might be different depending > on whether the instruction is interpretively executed (firmware-reported > maximum) or handled via userspace intercept (host kernel API maximum). > Choose the best available value during group creation. > > Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com> Reviewed-by: Pierre Morel <pmorel@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 985980f021..212dd053f7 100644 > --- a/hw/s390x/s390-pci-vfio.c > +++ b/hw/s390x/s390-pci-vfio.c > @@ -213,7 +213,11 @@ static void s390_pci_read_group(S390PCIBusDevice *pbdev, > resgrp->msia = cap->msi_addr; > resgrp->mui = cap->mui; > resgrp->i = cap->noi; > - resgrp->maxstbl = cap->maxstbl; > + if (pbdev->interp && hdr->version >= 2) { > + resgrp->maxstbl = cap->imaxstbl; > + } else { > + resgrp->maxstbl = cap->maxstbl; > + } > resgrp->version = cap->version; > resgrp->dtsm = ZPCI_DTSM; > } >
diff --git a/hw/s390x/s390-pci-vfio.c b/hw/s390x/s390-pci-vfio.c index 985980f021..212dd053f7 100644 --- a/hw/s390x/s390-pci-vfio.c +++ b/hw/s390x/s390-pci-vfio.c @@ -213,7 +213,11 @@ static void s390_pci_read_group(S390PCIBusDevice *pbdev, resgrp->msia = cap->msi_addr; resgrp->mui = cap->mui; resgrp->i = cap->noi; - resgrp->maxstbl = cap->maxstbl; + if (pbdev->interp && hdr->version >= 2) { + resgrp->maxstbl = cap->imaxstbl; + } else { + resgrp->maxstbl = cap->maxstbl; + } resgrp->version = cap->version; resgrp->dtsm = ZPCI_DTSM; }
The maximum supported store block length might be different depending on whether the instruction is interpretively executed (firmware-reported maximum) or handled via userspace intercept (host kernel API maximum). Choose the best available value during group creation. Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com> --- hw/s390x/s390-pci-vfio.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)