From 2034ee5152ded8ef102f2e9dfcada7f91ecc7d66 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Fri, 27 Jan 2017 14:20:52 +0100 Subject: s390-pci: fix compilation on older GCC versions S390PCIBusDevice is typedef'ed earlier in the file, before the hunks that this patch modifies. The double typedef causes old versions of GCC to complain. Signed-off-by: Paolo Bonzini Message-Id: <1485523252-88288-1-git-send-email-pbonzini@redhat.com> Signed-off-by: Christian Borntraeger --- hw/s390x/s390-pci-bus.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/s390x/s390-pci-bus.h b/hw/s390x/s390-pci-bus.h index 0aad9cc..dcbf482 100644 --- a/hw/s390x/s390-pci-bus.h +++ b/hw/s390x/s390-pci-bus.h @@ -279,7 +279,7 @@ typedef struct S390PCIIOMMUTable { S390PCIIOMMU *iommu[PCI_SLOT_MAX]; } S390PCIIOMMUTable; -typedef struct S390PCIBusDevice { +struct S390PCIBusDevice { DeviceState qdev; PCIDevice *pdev; ZpciState state; @@ -301,7 +301,7 @@ typedef struct S390PCIBusDevice { IndAddr *indicator; QEMUTimer *release_timer; QTAILQ_ENTRY(S390PCIBusDevice) link; -} S390PCIBusDevice; +}; typedef struct S390PCIBus { BusState qbus; -- cgit v1.1 From 1a0e4c8b02ea510508970c333ee610a90b921cbb Mon Sep 17 00:00:00 2001 From: Christian Borntraeger Date: Tue, 24 Jan 2017 22:17:47 +0100 Subject: s390x/kvm: fix small race reboot vs. cmma Right now we reset all devices before we reset the cmma states. This can result in the host kernel discarding guest pages that were previously in the unused state but already contain a bios or a -kernel file before the cmma reset has finished. This race results in random guest crashes or hangs during very early reboot. Fixes: 1cd4e0f6f0a6 ("s390x/cmma: clean up cmma reset") Cc: qemu-stable@nongnu.org Signed-off-by: Christian Borntraeger --- hw/s390x/s390-virtio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/s390x/s390-virtio.c b/hw/s390x/s390-virtio.c index 0a96347..7a3a7fe 100644 --- a/hw/s390x/s390-virtio.c +++ b/hw/s390x/s390-virtio.c @@ -204,8 +204,8 @@ void s390_machine_reset(void) { S390CPU *ipl_cpu = S390_CPU(qemu_get_cpu(0)); - qemu_devices_reset(); s390_cmma_reset(); + qemu_devices_reset(); s390_crypto_reset(); /* all cpus are stopped - configure and start the ipl cpu only */ -- cgit v1.1 From d8923bc75479cd3fdcc72b7647f4877f91950b01 Mon Sep 17 00:00:00 2001 From: David Hildenbrand Date: Mon, 30 Jan 2017 15:50:25 +0100 Subject: target/s390x: use "qemu" cpu model in user mode "any" does not exist, therefore resulting in a misleading error message. Reported-by: Stefan Weil Signed-off-by: David Hildenbrand Message-Id: <20170130145025.26475-1-david@redhat.com> Reviewed-by: Stefan Weil Reviewed-by: Alexander Graf Cc: qemu-stable@nongnu.org --- linux-user/main.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/linux-user/main.c b/linux-user/main.c index 3004958..e588f58 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -4322,6 +4322,8 @@ int main(int argc, char **argv, char **envp) # endif #elif defined TARGET_SH4 cpu_model = TYPE_SH7785_CPU; +#elif defined TARGET_S390X + cpu_model = "qemu"; #else cpu_model = "any"; #endif -- cgit v1.1