[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 5/8] s390/sclp: use cpu offset to locate cpu entries
From: |
Collin Walling |
Subject: |
[PATCH v4 5/8] s390/sclp: use cpu offset to locate cpu entries |
Date: |
Wed, 24 Jun 2020 16:23:09 -0400 |
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. Note that the length of the Read SCP Info data
(data_len) denotes the same value as the cpu offset.
This is in preparation of 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: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
---
hw/s390x/sclp.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/hw/s390x/sclp.c b/hw/s390x/sclp.c
index 1feba6f692..518f630938 100644
--- a/hw/s390x/sclp.c
+++ b/hw/s390x/sclp.c
@@ -108,13 +108,14 @@ static void read_SCP_info(SCLPDevice *sclp, SCCB *sccb)
int rnsize, rnmax;
IplParameterBlock *ipib = s390_ipl_get_iplb();
int offset_cpu = get_read_scp_info_offset_cpu();
+ CPUEntry *entries_start = (void *)sccb + offset_cpu;
if (!sccb_verify_length(sccb, machine->possible_cpus->len, offset_cpu)) {
return;
}
/* 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(offset_cpu);
read_info->highest_cpu = cpu_to_be16(machine->smp.max_cpus - 1);
--
2.26.2
- [PATCH v4 0/8] s390: Extended-Length SCCB & DIAGNOSE 0x318, Collin Walling, 2020/06/24
- [PATCH v4 5/8] s390/sclp: use cpu offset to locate cpu entries,
Collin Walling <=
- [PATCH v4 1/8] s390/sclp: get machine once during read scp/cpu info, Collin Walling, 2020/06/24
- [PATCH v4 6/8] s390/sclp: add extended-length sccb support for kvm guest, Collin Walling, 2020/06/24
- [PATCH v4 4/8] s390/sclp: read sccb from mem based on sccb length, Collin Walling, 2020/06/24
- [PATCH v4 7/8] s390/kvm: header sync for diag318, Collin Walling, 2020/06/24
- [PATCH v4 8/8] s390: guest support for diagnose 0x318, Collin Walling, 2020/06/24
- [PATCH v4 3/8] s390/sclp: rework sclp boundary and length checks, Collin Walling, 2020/06/24
- [PATCH v4 2/8] s390/sclp: check sccb len before filling in data, Collin Walling, 2020/06/24