From 6673ded76c679ef17097782a13754ba905b917f8 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Wed, 28 Aug 2019 14:25:55 +0200 Subject: [PATCH 1/5] pc-bios/s390-ccw: Do not pre-initialize empty array Since commit 339686a358b11a231aa5b6d1424e7a1460d7f277 ("pc-bios/s390-ccw: zero out bss section"), we are clearing now the BSS in start.S, so there is no need to pre-initialize the loadparm_str array with zeroes anymore. Reviewed-by: Cornelia Huck Signed-off-by: Thomas Huth --- pc-bios/s390-ccw/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pc-bios/s390-ccw/main.c b/pc-bios/s390-ccw/main.c index a69c73349e..a21b386280 100644 --- a/pc-bios/s390-ccw/main.c +++ b/pc-bios/s390-ccw/main.c @@ -17,7 +17,7 @@ char stack[PAGE_SIZE * 8] __attribute__((__aligned__(PAGE_SIZE))); static SubChannelId blk_schid = { .one = 1 }; -static char loadparm_str[LOADPARM_LEN + 1] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; +static char loadparm_str[LOADPARM_LEN + 1]; QemuIplParameters qipl; IplParameterBlock iplb __attribute__((__aligned__(PAGE_SIZE))); static bool have_iplb; From 09be82ce53e8269412544521d449c44305beccf3 Mon Sep 17 00:00:00 2001 From: Yifan Luo Date: Wed, 14 Aug 2019 14:14:26 +0800 Subject: [PATCH 2/5] pc-bios/s390-ccw/net: fix a possible memory leak in get_uuid() There is a possible memory leak in get_uuid(). Should free allocated mem before return NULL. Signed-off-by: Yifan Luo Message-Id: <02cf01d55267$86cf2850$946d78f0$@cmss.chinamobile.com> Reviewed-by: Thomas Huth Reviewed-by: Cornelia Huck Signed-off-by: Thomas Huth --- pc-bios/s390-ccw/netmain.c | 1 + 1 file changed, 1 insertion(+) diff --git a/pc-bios/s390-ccw/netmain.c b/pc-bios/s390-ccw/netmain.c index f3542cb2cf..f2dcc01e27 100644 --- a/pc-bios/s390-ccw/netmain.c +++ b/pc-bios/s390-ccw/netmain.c @@ -269,6 +269,7 @@ static const char *get_uuid(void) : "d" (r0), "d" (r1), [addr] "a" (buf) : "cc", "memory"); if (cc) { + free(mem); return NULL; } From 6b2a203579068127d7e93cb6f45d828ca04a2153 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Wed, 18 Sep 2019 17:46:02 +0200 Subject: [PATCH 3/5] pc-bios/s390-ccw: Rebuild the s390-netboot.img firmware image The new image now contains the "pc-bios/s390-ccw/net: fix a possible memory leak in get_uuid()" patch. Signed-off-by: Thomas Huth --- pc-bios/s390-netboot.img | Bin 67232 -> 67232 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/pc-bios/s390-netboot.img b/pc-bios/s390-netboot.img index aa90fbccb142470924ad5f0de5a4c6337916c63a..b984ad0da08f1401978b173d44e935d5563dde70 100644 GIT binary patch literal 67232 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�O@0mFjDBp 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 SpP4OG Date: Fri, 13 Sep 2019 11:14:43 +0200 Subject: [PATCH 4/5] s390x/kvm: Officially require at least kernel 3.15 Since QEMU v2.10, the KVM acceleration does not work on older kernels anymore since the code accidentally requires the KVM_CAP_DEVICE_CTRL capability now - it should have been optional instead. Instead of fixing the bug, we asked in the ChangeLog of QEMU 2.11 - 3.0 that people should speak up if they still need support of QEMU running with KVM on older kernels, but seems like nobody really complained. Thus let's make this official now and turn it into a proper error message, telling the users to use at least kernel 3.15 now. Signed-off-by: Thomas Huth Message-Id: <20190913091443.27565-1-thuth@redhat.com> Reviewed-by: David Hildenbrand Signed-off-by: Christian Borntraeger --- hw/intc/s390_flic_kvm.c | 6 ------ hw/intc/trace-events | 1 - target/s390x/kvm.c | 7 +++++++ 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/hw/intc/s390_flic_kvm.c b/hw/intc/s390_flic_kvm.c index 819aa5e198..cedccba8a9 100644 --- a/hw/intc/s390_flic_kvm.c +++ b/hw/intc/s390_flic_kvm.c @@ -589,12 +589,6 @@ static void kvm_s390_flic_realize(DeviceState *dev, Error **errp) goto fail; } flic_state->fd = -1; - if (!kvm_check_extension(kvm_state, KVM_CAP_DEVICE_CTRL)) { - error_setg_errno(&errp_local, errno, "KVM is missing capability" - " KVM_CAP_DEVICE_CTRL"); - trace_flic_no_device_api(errno); - goto fail; - } cd.type = KVM_DEV_TYPE_FLIC; ret = kvm_vm_ioctl(kvm_state, KVM_CREATE_DEVICE, &cd); diff --git a/hw/intc/trace-events b/hw/intc/trace-events index 90c9d07c1a..719f46b516 100644 --- a/hw/intc/trace-events +++ b/hw/intc/trace-events @@ -75,7 +75,6 @@ xics_ics_simple_eoi(int nr) "ics_eoi: irq 0x%x" # s390_flic_kvm.c flic_create_device(int err) "flic: create device failed %d" -flic_no_device_api(int err) "flic: no Device Contral API support %d" flic_reset_failed(int err) "flic: reset failed %d" # s390_flic.c diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c index cea71ac7c3..97a662ad0e 100644 --- a/target/s390x/kvm.c +++ b/target/s390x/kvm.c @@ -316,6 +316,13 @@ int kvm_arch_init(MachineState *ms, KVMState *s) MachineClass *mc = MACHINE_GET_CLASS(ms); mc->default_cpu_type = S390_CPU_TYPE_NAME("host"); + + if (!kvm_check_extension(kvm_state, KVM_CAP_DEVICE_CTRL)) { + error_report("KVM is missing capability KVM_CAP_DEVICE_CTRL - " + "please use kernel 3.15 or newer"); + return -1; + } + cap_sync_regs = kvm_check_extension(s, KVM_CAP_SYNC_REGS); cap_async_pf = kvm_check_extension(s, KVM_CAP_ASYNC_PF); cap_mem_op = kvm_check_extension(s, KVM_CAP_S390_MEM_OP); From 7505deca0bfa859136ec6419dbafc504f22fcac2 Mon Sep 17 00:00:00 2001 From: Christian Borntraeger Date: Wed, 18 Sep 2019 16:42:14 +0200 Subject: [PATCH 5/5] s390x/cpumodel: Add the z15 name to the description of gen15a We now know that gen15a is called z15. Reviewed-by: David Hildenbrand Signed-off-by: Christian Borntraeger --- target/s390x/cpu_models.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c index 1d16d7d5e7..009afc38b9 100644 --- a/target/s390x/cpu_models.c +++ b/target/s390x/cpu_models.c @@ -84,7 +84,7 @@ static S390CPUDef s390_cpu_defs[] = { CPUDEF_INIT(0x3906, 14, 1, 47, 0x08000000U, "z14", "IBM z14 GA1"), CPUDEF_INIT(0x3906, 14, 2, 47, 0x08000000U, "z14.2", "IBM z14 GA2"), CPUDEF_INIT(0x3907, 14, 1, 47, 0x08000000U, "z14ZR1", "IBM z14 Model ZR1 GA1"), - CPUDEF_INIT(0x8561, 15, 1, 47, 0x08000000U, "gen15a", "IBM 8561 GA1"), + CPUDEF_INIT(0x8561, 15, 1, 47, 0x08000000U, "gen15a", "IBM z15 GA1"), CPUDEF_INIT(0x8562, 15, 1, 47, 0x08000000U, "gen15b", "IBM 8562 GA1"), };