aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2018-04-03 23:23:58 +0100
committerPeter Maydell <peter.maydell@linaro.org>2018-04-03 23:23:58 +0100
commitf7481f651ccf7bf0fe3547b16820c9d18da8f584 (patch)
tree062eed625eeb7360f0010cf6c5e2b2e4949a85dc
parent9abfc88af3ffd3b33c7fab4471da86462ee71d95 (diff)
parentd3b6e3bb6dc582099b8572c439fa651b3672de89 (diff)
Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20180403' into staging
- fix a memory leak in the ipl code introduced with this release - increase timeout in the bios to avoid hangs during migration (and rebuild bios to activate the change) # gpg: Signature made Tue 03 Apr 2018 09:28:30 BST # gpg: using RSA key DECF6B93C6F02FAF # 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-20180403: pc-bios/s390-ccw: update image pc-bios/s390-ccw: Increase virtio timeout to 30 seconds hw/s390x: fix memory leak in s390_init_ipl_dev() Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-rw-r--r--hw/s390x/s390-virtio-ccw.c5
-rw-r--r--pc-bios/s390-ccw.imgbin34568 -> 30568 bytes
-rw-r--r--pc-bios/s390-ccw/virtio.c2
3 files changed, 5 insertions, 2 deletions
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index 864145a7c6..435f7c99e7 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -246,6 +246,7 @@ static void s390_init_ipl_dev(const char *kernel_filename,
{
Object *new = object_new(TYPE_S390_IPL);
DeviceState *dev = DEVICE(new);
+ char *netboot_fw_prop;
if (kernel_filename) {
qdev_prop_set_string(dev, "kernel", kernel_filename);
@@ -256,9 +257,11 @@ static void s390_init_ipl_dev(const char *kernel_filename,
qdev_prop_set_string(dev, "cmdline", kernel_cmdline);
qdev_prop_set_string(dev, "firmware", firmware);
qdev_prop_set_bit(dev, "enforce_bios", enforce_bios);
- if (!strlen(object_property_get_str(new, "netboot_fw", &error_abort))) {
+ netboot_fw_prop = object_property_get_str(new, "netboot_fw", &error_abort);
+ if (!strlen(netboot_fw_prop)) {
qdev_prop_set_string(dev, "netboot_fw", netboot_fw);
}
+ g_free(netboot_fw_prop);
object_property_add_child(qdev_get_machine(), TYPE_S390_IPL,
new, NULL);
object_unref(new);
diff --git a/pc-bios/s390-ccw.img b/pc-bios/s390-ccw.img
index fbd76bb55e..d17e85995d 100644
--- a/pc-bios/s390-ccw.img
+++ b/pc-bios/s390-ccw.img
Binary files differ
diff --git a/pc-bios/s390-ccw/virtio.c b/pc-bios/s390-ccw/virtio.c
index 817e7f56ea..cdb66f459e 100644
--- a/pc-bios/s390-ccw/virtio.c
+++ b/pc-bios/s390-ccw/virtio.c
@@ -14,7 +14,7 @@
#include "virtio-scsi.h"
#include "bswap.h"
-#define VRING_WAIT_REPLY_TIMEOUT 3
+#define VRING_WAIT_REPLY_TIMEOUT 30
static VRing block[VIRTIO_MAX_VQS];
static char ring_area[VIRTIO_RING_SIZE * VIRTIO_MAX_VQS]