Fix storing cpu status (both kvm and tcg), locking around diag 308
(tcg only) and a non-zero variable in the s390-ccw bios.
# gpg: Signature made Mon 20 Nov 2017 15:18:05 GMT
# gpg: using RSA key 0xDECF6B93C6F02FAF
# gpg: Good signature from "Cornelia Huck <conny@cornelia-huck.de>"
# gpg: aka "Cornelia Huck <huckc@linux.vnet.ibm.com>"
# gpg: aka "Cornelia Huck <cornelia.huck@de.ibm.com>"
# gpg: aka "Cornelia Huck <cohuck@kernel.org>"
# gpg: aka "Cornelia Huck <cohuck@redhat.com>"
# Primary key fingerprint: C3D0 D66D C362 4FF6 A8C0 18CE DECF 6B93 C6F0 2FAF
* remotes/cohuck/tags/s390x-
20171120-v1:
pc-bios/s390-ccw.img: update image
pc-bios/s390-ccw: Fix problem with invalid virtio-scsi LUN when rebooting
s390x/tcg: fix DIAG 308 with > 1 VCPU (MTTCG)
s390x: fix storing CPU status (again)
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
for (target = 0; target <= vdev->config.scsi.max_target; target++) {
sdev->channel = channel;
- sdev->target = target; /* sdev->lun will be 0 here */
+ sdev->target = target;
+ sdev->lun = 0; /* LUN has to be 0 for REPORT LUNS */
if (!scsi_report_luns(vdev, data, sizeof(data))) {
if (resp.response == VIRTIO_SCSI_S_BAD_TARGET) {
continue;
sa->ars[i] = cpu_to_be32(cpu->env.aregs[i]);
}
for (i = 0; i < 16; ++i) {
- sa->ars[i] = cpu_to_be64(cpu->env.cregs[i]);
+ sa->crs[i] = cpu_to_be64(cpu->env.cregs[i]);
}
cpu_physical_memory_unmap(sa, len, 1, len);
break;
case 0x308:
/* ipl */
+ qemu_mutex_lock_iothread();
handle_diag_308(env, r1, r3);
+ qemu_mutex_unlock_iothread();
r = 0;
break;
case 0x288: