diff options
| author | Peter Maydell <peter.maydell@linaro.org> | 2020-01-27 13:02:36 +0000 |
|---|---|---|
| committer | Peter Maydell <peter.maydell@linaro.org> | 2020-01-27 13:02:36 +0000 |
| commit | 105b07f1ba462ec48b27e5cb74ddf81c6a79364c (patch) | |
| tree | b52e9840a334833a45da239ca8b6f9902f3217d6 /hw/intc/s390_flic_kvm.c | |
| parent | 760df0d121a836dcbf3726b80b820115aef21b30 (diff) | |
| parent | 4103500e2fa934a6995e4cedab37423e606715bf (diff) | |
| download | focaccia-qemu-105b07f1ba462ec48b27e5cb74ddf81c6a79364c.tar.gz focaccia-qemu-105b07f1ba462ec48b27e5cb74ddf81c6a79364c.zip | |
Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20200127' into staging
s390x changes: - kvm: re-enable adapter interrupt suppression (AIS) - fixes and cleanups # gpg: Signature made Mon 27 Jan 2020 12:14:12 GMT # gpg: using RSA key C3D0D66DC3624FF6A8C018CEDECF6B93C6F02FAF # gpg: issuer "cohuck@redhat.com" # gpg: Good signature from "Cornelia Huck <conny@cornelia-huck.de>" [marginal] # gpg: aka "Cornelia Huck <huckc@linux.vnet.ibm.com>" [full] # gpg: aka "Cornelia Huck <cornelia.huck@de.ibm.com>" [full] # gpg: aka "Cornelia Huck <cohuck@kernel.org>" [marginal] # gpg: aka "Cornelia Huck <cohuck@redhat.com>" [marginal] # Primary key fingerprint: C3D0 D66D C362 4FF6 A8C0 18CE DECF 6B93 C6F0 2FAF * remotes/cohuck/tags/s390x-20200127: s390x: sigp: Fix sense running reporting hw/s390x: Add a more verbose comment about get_machine_class() and the wrappers target/s390x: Remove DisasFields argument from extract_insn target/s390x: Move DisasFields into DisasContext target/s390x: Pass DisasContext to get_field and have_field target/s390x: Remove DisasFields argument from callbacks target/s390x: Move struct DisasFields definition earlier target/s390x/kvm: Enable adapter interruption suppression again docs/devel: fix stable process doc formatting target/s390x: Remove duplicated ifdef macro s390x/event-facility: fix error propagation s390x: adapter routes error handling s390x/event-facility.c: remove unneeded labels intc/s390_flic_kvm.c: remove unneeded label in kvm_flic_load() s390x/sclp.c: remove unneeded label in sclp_service_call() Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'hw/intc/s390_flic_kvm.c')
| -rw-r--r-- | hw/intc/s390_flic_kvm.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/hw/intc/s390_flic_kvm.c b/hw/intc/s390_flic_kvm.c index dddd33ea61..a306b26faa 100644 --- a/hw/intc/s390_flic_kvm.c +++ b/hw/intc/s390_flic_kvm.c @@ -331,6 +331,10 @@ static int kvm_s390_add_adapter_routes(S390FLICState *fs, int ret, i; uint64_t ind_offset = routes->adapter.ind_offset; + if (!kvm_gsi_routing_enabled()) { + return -ENOSYS; + } + for (i = 0; i < routes->num_routes; i++) { ret = kvm_irqchip_add_adapter_route(kvm_state, &routes->adapter); if (ret < 0) { @@ -358,6 +362,10 @@ static void kvm_s390_release_adapter_routes(S390FLICState *fs, { int i; + if (!kvm_gsi_routing_enabled()) { + return; + } + for (i = 0; i < routes->num_routes; i++) { if (routes->gsi[i] >= 0) { kvm_irqchip_release_virq(kvm_state, routes->gsi[i]); @@ -439,17 +447,14 @@ static int kvm_flic_load(QEMUFile *f, void *opaque, size_t size, count = qemu_get_be64(f); len = count * sizeof(struct kvm_s390_irq); if (count == FLIC_FAILED) { - r = -EINVAL; - goto out; + return -EINVAL; } if (count == 0) { - r = 0; - goto out; + return 0; } buf = g_try_malloc0(len); if (!buf) { - r = -ENOMEM; - goto out; + return -ENOMEM; } if (qemu_get_buffer(f, (uint8_t *) buf, len) != len) { @@ -460,7 +465,6 @@ static int kvm_flic_load(QEMUFile *f, void *opaque, size_t size, out_free: g_free(buf); -out: return r; } |