From: Collin Walling <walling@linux.ibm.com>
To: qemu-devel@nongnu.org, qemu-s390x@nongnu.org
Cc: thuth@redhat.com, frankja@linux.ibm.com, david@redhat.com,
cohuck@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com,
mst@redhat.com, pbonzini@redhat.com, sumanthk@linux.ibm.com,
mihajlov@linux.ibm.com, rth@twiddle.net
Subject: [PATCH v6 5/8] s390/sclp: use cpu offset to locate cpu entries
Date: Tue, 15 Sep 2020 15:44:13 -0400 [thread overview]
Message-ID: <20200915194416.107460-6-walling@linux.ibm.com> (raw)
In-Reply-To: <20200915194416.107460-1-walling@linux.ibm.com>
The start of the CPU entry region in the Read SCP Info response data is
denoted by the offset_cpu field. As such, QEMU needs to begin creating
entries at this address.
This is in preparation for when Read SCP Info inevitably introduces new
bytes that push the start of the CPUEntry field further away.
Read CPU Info is unlikely to ever change, so let's not bother
accounting for the offset there.
Signed-off-by: Collin Walling <walling@linux.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
---
hw/s390x/sclp.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/hw/s390x/sclp.c b/hw/s390x/sclp.c
index 0d54075309..1df67c99bf 100644
--- a/hw/s390x/sclp.c
+++ b/hw/s390x/sclp.c
@@ -89,6 +89,8 @@ static void read_SCP_info(SCLPDevice *sclp, SCCB *sccb)
int rnsize, rnmax;
IplParameterBlock *ipib = s390_ipl_get_iplb();
int required_len = SCCB_REQ_LEN(ReadInfo, machine->possible_cpus->len);
+ int offset_cpu = offsetof(ReadInfo, entries);
+ CPUEntry *entries_start = (void *)sccb + offset_cpu;
if (be16_to_cpu(sccb->h.length) < required_len) {
sccb->h.response_code = cpu_to_be16(SCLP_RC_INSUFFICIENT_SCCB_LENGTH);
@@ -96,9 +98,9 @@ static void read_SCP_info(SCLPDevice *sclp, SCCB *sccb)
}
/* CPU information */
- prepare_cpu_entries(machine, read_info->entries, &cpu_count);
+ prepare_cpu_entries(machine, entries_start, &cpu_count);
read_info->entries_cpu = cpu_to_be16(cpu_count);
- read_info->offset_cpu = cpu_to_be16(offsetof(ReadInfo, entries));
+ read_info->offset_cpu = cpu_to_be16(offset_cpu);
read_info->highest_cpu = cpu_to_be16(machine->smp.max_cpus - 1);
read_info->ibc_val = cpu_to_be32(s390_get_ibc_val());
--
2.26.2
next prev parent reply other threads:[~2020-09-15 19:48 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-15 19:44 [PATCH v6 0/8] s390: Extended-Length SCCB & DIAGNOSE 0x318 Collin Walling
2020-09-15 19:44 ` [PATCH v6 1/8] s390/sclp: get machine once during read scp/cpu info Collin Walling
2020-09-15 19:44 ` [PATCH v6 2/8] s390/sclp: rework sclp boundary checks Collin Walling
2020-09-16 7:10 ` Thomas Huth
2020-09-16 16:12 ` Collin Walling
2020-09-15 19:44 ` [PATCH v6 3/8] s390/sclp: read sccb from mem based on provided length Collin Walling
2020-09-16 8:00 ` Thomas Huth
2020-09-15 19:44 ` [PATCH v6 4/8] s390/sclp: check sccb len before filling in data Collin Walling
2020-09-15 19:44 ` Collin Walling [this message]
2020-09-15 19:44 ` [PATCH v6 6/8] s390/sclp: add extended-length sccb support for kvm guest Collin Walling
2020-09-15 19:44 ` [PATCH v6 7/8] s390/kvm: header sync for diag318 Collin Walling
2020-09-16 15:52 ` Cornelia Huck
2020-09-16 16:11 ` Collin Walling
2020-09-15 19:44 ` [PATCH v6 8/8] s390: guest support for diagnose 0x318 Collin Walling
2020-09-16 8:11 ` Thomas Huth
2020-09-16 8:21 ` David Hildenbrand
2020-09-15 19:57 ` [PATCH v6 0/8] s390: Extended-Length SCCB & DIAGNOSE 0x318 no-reply
2020-09-16 6:37 ` Cornelia Huck
2020-09-16 15:53 ` Cornelia Huck
2020-09-16 17:15 ` Collin Walling
2020-09-25 15:13 ` Collin Walling
2020-09-25 15:18 ` Cornelia Huck
2020-09-25 15:32 ` Claudio Imbrenda
2020-09-25 15:43 ` Cornelia Huck
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=20200915194416.107460-6-walling@linux.ibm.com \
--to=walling@linux.ibm.com \
--cc=borntraeger@de.ibm.com \
--cc=cohuck@redhat.com \
--cc=david@redhat.com \
--cc=frankja@linux.ibm.com \
--cc=mihajlov@linux.ibm.com \
--cc=mst@redhat.com \
--cc=pasic@linux.ibm.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=rth@twiddle.net \
--cc=sumanthk@linux.ibm.com \
--cc=thuth@redhat.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).