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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
--NF 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