From dc0bbef5e6049920873204d35cd27172b65d204f Mon Sep 17 00:00:00 2001 From: David Hildenbrand Date: Thu, 16 Nov 2017 18:05:24 +0100 Subject: [PATCH 1/4] s390x: fix storing CPU status (again) Looks like the last fix + cleanup introduced another bug. (for now Linux guests don't seem to care) - we store the crs into ars. Fixes: 947a38bd6f13 ("s390x/kvm: fix and cleanup storing CPU status") Signed-off-by: David Hildenbrand Message-Id: <20171116170526.12643-2-david@redhat.com> Reviewed-by: Thomas Huth Reviewed-by: Christian Borntraeger Signed-off-by: Cornelia Huck --- target/s390x/helper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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); From 7337c6eb98786372cdbfe7ebe7affbd166fdc7ca Mon Sep 17 00:00:00 2001 From: David Hildenbrand Date: Thu, 16 Nov 2017 18:05:26 +0100 Subject: [PATCH 2/4] s390x/tcg: fix DIAG 308 with > 1 VCPU (MTTCG) Currently, multi threaded TCG with > 1 VCPU gets stuck during IPL, when the bios tries to switch to the loaded kernel via DIAG 308. As run_on_cpu() is used, we run into a deadlock after handling the reset. We need the iolock (just like KVM). Signed-off-by: David Hildenbrand Message-Id: <20171116170526.12643-4-david@redhat.com> Reviewed-by: Thomas Huth Signed-off-by: Cornelia Huck --- target/s390x/misc_helper.c | 2 ++ 1 file changed, 2 insertions(+) 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: From 8775d91a0f42d016833330881bb587982db88a3c Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Fri, 17 Nov 2017 19:10:28 +0100 Subject: [PATCH 3/4] pc-bios/s390-ccw: Fix problem with invalid virtio-scsi LUN when rebooting When rebooting a guest that has a virtio-scsi disk, the s390-ccw bios sometimes bails out with an error message like this: ! SCSI cannot report LUNs: STATUS=02 RSPN=70 KEY=05 CODE=25 QLFR=00, sure ! Enabling the scsi_req* tracing in QEMU shows that the ccw bios is trying to execute the REPORT LUNS SCSI command with a LUN != 0, and this causes the SCSI command to fail. Looks like we neither clear the BSS of the s390-ccw bios during reboot, nor do we explicitly set the default_scsi_device.lun value to 0, so this variable can contain random values from the OS after the reboot. By setting this variable explicitly to 0, the problem is fixed and the reboots always succeed. Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1514352 Signed-off-by: Thomas Huth Message-Id: <1510942228-22822-1-git-send-email-thuth@redhat.com> Acked-by: Christian Borntraeger Reviewed-by: David Hildenbrand Signed-off-by: Cornelia Huck --- pc-bios/s390-ccw/virtio-scsi.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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; From 6cbf1ec85caf8a7d9f2fd829422c9f0a1c8983e1 Mon Sep 17 00:00:00 2001 From: Cornelia Huck Date: Mon, 20 Nov 2017 10:48:11 +0100 Subject: [PATCH 4/4] pc-bios/s390-ccw.img: update image Contains the following commit: - pc-bios/s390-ccw: Fix problem with invalid virtio-scsi LUN when rebooting Signed-off-by: Cornelia Huck --- pc-bios/s390-ccw.img | Bin 30520 -> 26416 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/pc-bios/s390-ccw.img b/pc-bios/s390-ccw.img index 75b604e3ce8a6001de313a0691d6738926c03624..7415f1a3e797a17ce4ede0ee39034288b4ecae86 100644 GIT binary patch literal 26416 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 |EZ+3ojV}1coM>sO^wOqP* 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