diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2017-11-20 18:48:48 +0000 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2017-11-20 18:48:48 +0000 |
commit | 3da87f771311199e9b915163315ba0e9b96c6d1b (patch) | |
tree | 76bf173b23e9ac40d7ddfaaa5699ffc3eadfd86c | |
parent | b2996bb405e2806725a341c72d80be9e77ed8b82 (diff) | |
parent | 6cbf1ec85caf8a7d9f2fd829422c9f0a1c8983e1 (diff) | |
download | qemu-3da87f771311199e9b915163315ba0e9b96c6d1b.tar.gz |
Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20171120-v1' into staging
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>
-rw-r--r-- | pc-bios/s390-ccw.img | bin | 30520 -> 26416 bytes | |||
-rw-r--r-- | pc-bios/s390-ccw/virtio-scsi.c | 3 | ||||
-rw-r--r-- | target/s390x/helper.c | 2 | ||||
-rw-r--r-- | target/s390x/misc_helper.c | 2 |
4 files changed, 5 insertions, 2 deletions
diff --git a/pc-bios/s390-ccw.img b/pc-bios/s390-ccw.img Binary files differindex 75b604e3ce..7415f1a3e7 100644 --- a/pc-bios/s390-ccw.img +++ b/pc-bios/s390-ccw.img diff --git a/pc-bios/s390-ccw/virtio-scsi.c b/pc-bios/s390-ccw/virtio-scsi.c index c92f5d3fa0..4fe4b9d261 100644 --- a/pc-bios/s390-ccw/virtio-scsi.c +++ b/pc-bios/s390-ccw/virtio-scsi.c @@ -223,7 +223,8 @@ static void virtio_scsi_locate_device(VDev *vdev) 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; diff --git a/target/s390x/helper.c b/target/s390x/helper.c index f78983dd6a..246ba20f0d 100644 --- a/target/s390x/helper.c +++ b/target/s390x/helper.c @@ -279,7 +279,7 @@ int s390_store_status(S390CPU *cpu, hwaddr addr, bool store_arch) 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); diff --git a/target/s390x/misc_helper.c b/target/s390x/misc_helper.c index 4afd90b969..d272851e1c 100644 --- a/target/s390x/misc_helper.c +++ b/target/s390x/misc_helper.c @@ -103,7 +103,9 @@ void HELPER(diag)(CPUS390XState *env, uint32_t r1, uint32_t r3, uint32_t num) break; case 0x308: /* ipl */ + qemu_mutex_lock_iothread(); handle_diag_308(env, r1, r3); + qemu_mutex_unlock_iothread(); r = 0; break; case 0x288: |