From: Cornelia Huck <cohuck@redhat.com>
To: qemu-devel@nongnu.org
Cc: borntraeger@de.ibm.com, agraf@suse.de, thuth@redhat.com,
david@redhat.com, pmorel@linux.vnet.ibm.com,
zyimin@linux.vnet.ibm.com, Cornelia Huck <cohuck@redhat.com>
Subject: [Qemu-devel] [PATCH v4 6/9] s390x/sclp: properly guard pci-specific functions
Date: Fri, 4 Aug 2017 13:29:43 +0200 [thread overview]
Message-ID: <20170804112946.5247-7-cohuck@redhat.com> (raw)
In-Reply-To: <20170804112946.5247-1-cohuck@redhat.com>
If we do not provide zpci, pci reconfiguration via sclp is not available
either. Don't indicate it in the sclp facilities and return an invalid
command if the guest tries to issue pci configure/deconfigure.
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
---
hw/s390x/sclp.c | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/hw/s390x/sclp.c b/hw/s390x/sclp.c
index 9253dbbc64..d0104cd784 100644
--- a/hw/s390x/sclp.c
+++ b/hw/s390x/sclp.c
@@ -59,6 +59,7 @@ static void read_SCP_info(SCLPDevice *sclp, SCCB *sccb)
int rnsize, rnmax;
int slots = MIN(machine->ram_slots, s390_get_memslot_count(kvm_state));
IplParameterBlock *ipib = s390_ipl_get_iplb();
+ uint64_t sclp_facilities = SCLP_HAS_CPU_INFO;
CPU_FOREACH(cpu) {
cpu_count++;
@@ -79,8 +80,10 @@ static void read_SCP_info(SCLPDevice *sclp, SCCB *sccb)
prepare_cpu_entries(sclp, read_info->entries, cpu_count);
- read_info->facilities = cpu_to_be64(SCLP_HAS_CPU_INFO |
- SCLP_HAS_PCI_RECONFIG);
+ if (s390_has_feat(S390_FEAT_ZPCI)) {
+ sclp_facilities |= SCLP_HAS_PCI_RECONFIG;
+ }
+ read_info->facilities = cpu_to_be64(sclp_facilities);
/* Memory Hotplug is only supported for the ccw machine type */
if (mhd) {
@@ -385,10 +388,18 @@ static void sclp_execute(SCLPDevice *sclp, SCCB *sccb, uint32_t code)
sclp_c->unassign_storage(sclp, sccb);
break;
case SCLP_CMDW_CONFIGURE_PCI:
- s390_pci_sclp_configure(sccb);
+ if (s390_has_feat(S390_FEAT_ZPCI)) {
+ s390_pci_sclp_configure(sccb);
+ } else {
+ sccb->h.response_code = cpu_to_be16(SCLP_RC_INVALID_SCLP_COMMAND);
+ }
break;
case SCLP_CMDW_DECONFIGURE_PCI:
- s390_pci_sclp_deconfigure(sccb);
+ if (s390_has_feat(S390_FEAT_ZPCI)) {
+ s390_pci_sclp_deconfigure(sccb);
+ } else {
+ sccb->h.response_code = cpu_to_be16(SCLP_RC_INVALID_SCLP_COMMAND);
+ }
break;
default:
efc->command_handler(ef, sccb, code);
--
2.13.3
next prev parent reply other threads:[~2017-08-04 14:47 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-04 11:29 [Qemu-devel] [PATCH v4 0/9] s390x: zPCI detangling Cornelia Huck
2017-08-04 11:29 ` [Qemu-devel] [PATCH v4 1/9] kvm: remove hard dependency on pci Cornelia Huck
2017-08-04 11:29 ` [Qemu-devel] [PATCH v4 2/9] s390x/pci: add stubs Cornelia Huck
2017-08-04 11:29 ` [Qemu-devel] [PATCH v4 3/9] s390x: chsc nt2 events are pci-only Cornelia Huck
2017-08-04 11:29 ` [Qemu-devel] [PATCH v4 4/9] s390x/pci: do not advertise pci on non-pci builds Cornelia Huck
2017-08-04 13:21 ` David Hildenbrand
2017-08-04 11:29 ` [Qemu-devel] [PATCH v4 5/9] s390x/ccw: create s390 phb conditionally Cornelia Huck
2017-08-04 13:20 ` David Hildenbrand
2017-08-07 10:00 ` Cornelia Huck
2017-08-07 10:21 ` David Hildenbrand
2017-08-07 11:11 ` Cornelia Huck
2017-08-04 11:29 ` Cornelia Huck [this message]
2017-08-04 11:29 ` [Qemu-devel] [PATCH v4 7/9] s390x/pci: fence off instructions for non-pci Cornelia Huck
2017-08-04 13:17 ` David Hildenbrand
2017-08-07 9:52 ` Cornelia Huck
2017-08-07 14:17 ` David Hildenbrand
2017-08-04 11:29 ` [Qemu-devel] [PATCH v4 8/9] s390x/kvm: msi route fixup " Cornelia Huck
2017-08-04 13:18 ` David Hildenbrand
2017-08-07 9:54 ` Cornelia Huck
2017-08-04 11:29 ` [Qemu-devel] [PATCH v4 9/9] s390x: refine pci dependencies Cornelia Huck
2017-08-04 13:25 ` David Hildenbrand
2017-08-04 14:59 ` [Qemu-devel] [PATCH v4 0/9] s390x: zPCI detangling Cornelia Huck
2017-08-08 9:15 ` Cornelia Huck
2017-08-08 9:29 ` Thomas Huth
2017-08-08 9:46 ` Cornelia Huck
2017-08-08 10:42 ` Thomas Huth
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=20170804112946.5247-7-cohuck@redhat.com \
--to=cohuck@redhat.com \
--cc=agraf@suse.de \
--cc=borntraeger@de.ibm.com \
--cc=david@redhat.com \
--cc=pmorel@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=thuth@redhat.com \
--cc=zyimin@linux.vnet.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).