From: Cornelia Huck <cohuck@redhat.com>
To: Pierre Morel <pmorel@linux.ibm.com>
Cc: pasic@linux.vnet.ibm.com, mst@redhat.com, qemu-s390x@nongnu.org,
david@redhat.com, walling@linux.ibm.com, qemu-devel@nongnu.org,
borntraeger@de.ibm.com, alex.williamson@redhat.com,
pbonzini@redhat.com, rth@twiddle.net
Subject: Re: [Qemu-devel] [PATCH 3/5] s390: vfio_pci: Use a PCI Group structure
Date: Tue, 14 May 2019 13:49:04 +0200 [thread overview]
Message-ID: <20190514134904.67decb8b.cohuck@redhat.com> (raw)
In-Reply-To: <1557499133-24169-4-git-send-email-pmorel@linux.ibm.com>
On Fri, 10 May 2019 16:38:51 +0200
Pierre Morel <pmorel@linux.ibm.com> wrote:
> We use a S390PCIGroup structure to hold the information
> related to zPCI Function group.
>
> This allows us to be ready to support multiple groups and to retrieve
> the group information from the host.
What if there is no host to retrieve information from?
>
> Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
> ---
> hw/s390x/s390-pci-bus.c | 42 ++++++++++++++++++++++++++++++++++++++++++
> hw/s390x/s390-pci-bus.h | 11 ++++++++++-
> hw/s390x/s390-pci-inst.c | 22 +++++++++++++---------
> 3 files changed, 65 insertions(+), 10 deletions(-)
> diff --git a/hw/s390x/s390-pci-inst.c b/hw/s390x/s390-pci-inst.c
> index be28962..8147847 100644
> --- a/hw/s390x/s390-pci-inst.c
> +++ b/hw/s390x/s390-pci-inst.c
> @@ -284,21 +284,25 @@ int clp_service_call(S390CPU *cpu, uint8_t r2, uintptr_t ra)
> stq_p(&resquery->edma, ZPCI_EDMA_ADDR);
> stl_p(&resquery->fid, pbdev->fid);
> stw_p(&resquery->pchid, 0);
> - stw_p(&resquery->ug, 1);
> + stw_p(&resquery->ug, ZPCI_DEFAULT_FN_GRP);
> stl_p(&resquery->uid, pbdev->uid);
> stw_p(&resquery->hdr.rsp, CLP_RC_OK);
> break;
> }
> case CLP_QUERY_PCI_FNGRP: {
> ClpRspQueryPciGrp *resgrp = (ClpRspQueryPciGrp *)resh;
> - resgrp->fr = 1;
> - stq_p(&resgrp->dasm, 0);
> - stq_p(&resgrp->msia, ZPCI_MSI_ADDR);
> - stw_p(&resgrp->mui, DEFAULT_MUI);
> - stw_p(&resgrp->i, 128);
> - stw_p(&resgrp->maxstbl, 128);
> - resgrp->version = 0;
>
> + ClpReqQueryPciGrp *reqgrp = (ClpReqQueryPciGrp *)reqh;
> + S390PCIGroup *grp;
> +
> + grp = s390_grp_find(reqgrp->g);
> + if (!grp) {
> + /* We do not allow access to unknown groups */
> + /* The group must have been obtained with a vfio device */
What about non-vfio devices? How does this whole feature work for
emulated devices?
> + stw_p(&resgrp->hdr.rsp, CLP_RC_QUERYPCIFG_PFGID);
> + goto out;
> + }
> + memcpy(resgrp, &grp->zpci_grp, sizeof(ClpRspQueryPciGrp));
> stw_p(&resgrp->hdr.rsp, CLP_RC_OK);
> break;
> }
> @@ -752,7 +756,7 @@ int pcistb_service_call(S390CPU *cpu, uint8_t r1, uint8_t r3, uint64_t gaddr,
> }
> /* Length must be greater than 8, a multiple of 8 */
> /* and not greater than maxstbl */
> - if ((len <= 8) || (len % 8) || (len > pbdev->maxstbl)) {
> + if ((len <= 8) || (len % 8) || (len > pbdev->pci_grp->zpci_grp.maxstbl)) {
> goto specification_error;
> }
> /* Do not cross a 4K-byte boundary */
next prev parent reply other threads:[~2019-05-14 11:50 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-10 14:38 [Qemu-devel] [PATCH 0/5] Retrieving zPCI specific info from QEMU Pierre Morel
2019-05-10 14:38 ` [Qemu-devel] [PATCH 1/5] vfio: vfio_iommu_type1: linux header place holder Pierre Morel
2019-05-12 18:22 ` Michael S. Tsirkin
2019-05-16 8:51 ` Pierre Morel
2019-05-10 14:38 ` [Qemu-devel] [PATCH 2/5] s390: PCI: Creation a header dedicated to PCI CLP Pierre Morel
2019-05-10 14:38 ` [Qemu-devel] [PATCH 3/5] s390: vfio_pci: Use a PCI Group structure Pierre Morel
2019-05-14 11:49 ` Cornelia Huck [this message]
2019-05-16 8:55 ` Pierre Morel
2019-05-10 14:38 ` [Qemu-devel] [PATCH 4/5] s390: vfio_pci: Use a PCI Function structure Pierre Morel
2019-05-10 14:38 ` [Qemu-devel] [PATCH 5/5] s390: vfio_pci: Get zPCI function info from host Pierre Morel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190514134904.67decb8b.cohuck@redhat.com \
--to=cohuck@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=david@redhat.com \
--cc=mst@redhat.com \
--cc=pasic@linux.vnet.ibm.com \
--cc=pbonzini@redhat.com \
--cc=pmorel@linux.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=rth@twiddle.net \
--cc=walling@linux.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.