s390x/sclp: fixup highest CPU address
authorChristian Borntraeger <borntraeger@de.ibm.com>
Tue, 19 Dec 2017 08:28:07 +0000 (09:28 +0100)
committerCornelia Huck <cohuck@redhat.com>
Mon, 22 Jan 2018 10:04:52 +0000 (11:04 +0100)
The highest cpu address is not the same as max_cpus. max_cpus
counts from 1 while the cpu address starts at 0.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: Jason J. Herne <jjherne@linux.vnet.ibm.com>
Message-Id: <20171219082807.84494-1-borntraeger@de.ibm.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
hw/s390x/sclp.c

index 9be0cb80ad6e028543494ed2bc435aabdc97984e..21351ffffc224af4d6aaeb5245163906a0d51fea 100644 (file)
@@ -67,7 +67,7 @@ static void read_SCP_info(SCLPDevice *sclp, SCCB *sccb)
     prepare_cpu_entries(sclp, read_info->entries, &cpu_count);
     read_info->entries_cpu = cpu_to_be16(cpu_count);
     read_info->offset_cpu = cpu_to_be16(offsetof(ReadInfo, entries));
-    read_info->highest_cpu = cpu_to_be16(max_cpus);
+    read_info->highest_cpu = cpu_to_be16(max_cpus - 1);
 
     read_info->ibc_val = cpu_to_be32(s390_get_ibc_val());