From: Philippe Mathieu-Daudé Date: Wed, 8 Oct 2025 14:14:08 +0000 (+0200) Subject: target/s390x/mmu_helper: Simplify s390_cpu_virt_mem_rw() logic X-Git-Tag: v10.2.0-rc1~60^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=02cf15e9bbe902523f5a1deb1dd48aef50e26e41;p=thirdparty%2Fqemu.git target/s390x/mmu_helper: Simplify s390_cpu_virt_mem_rw() logic In order to simplify the next commit, move the trigger_access_exception() call after the address_space_rw() calls. No logical change intended. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Thomas Huth Message-ID: <20251008141410.99865-2-philmd@linaro.org> Signed-off-by: Thomas Huth --- diff --git a/target/s390x/mmu_helper.c b/target/s390x/mmu_helper.c index 487c41bf93..22d3d4a97d 100644 --- a/target/s390x/mmu_helper.c +++ b/target/s390x/mmu_helper.c @@ -541,9 +541,7 @@ int s390_cpu_virt_mem_rw(S390CPU *cpu, vaddr laddr, uint8_t ar, void *hostbuf, pages = g_malloc(nr_pages * sizeof(*pages)); ret = translate_pages(cpu, laddr, nr_pages, pages, is_write, &tec); - if (ret) { - trigger_access_exception(&cpu->env, ret, tec); - } else if (hostbuf != NULL) { + if (ret == 0 && hostbuf != NULL) { AddressSpace *as = CPU(cpu)->as; /* Copy data by stepping through the area page by page */ @@ -556,6 +554,9 @@ int s390_cpu_virt_mem_rw(S390CPU *cpu, vaddr laddr, uint8_t ar, void *hostbuf, len -= currlen; } } + if (ret) { + trigger_access_exception(&cpu->env, ret, tec); + } g_free(pages); return ret;