]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
target/s390x/mmu_helper: Simplify s390_cpu_virt_mem_rw() logic
authorPhilippe Mathieu-Daudé <philmd@linaro.org>
Wed, 8 Oct 2025 14:14:08 +0000 (16:14 +0200)
committerThomas Huth <thuth@redhat.com>
Thu, 16 Oct 2025 15:44:32 +0000 (17:44 +0200)
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é <philmd@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20251008141410.99865-2-philmd@linaro.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
target/s390x/mmu_helper.c

index 487c41bf933f549f8d29f9aab1697634eb456e38..22d3d4a97dfd3bc29598b870a773f9ce020edbd2 100644 (file)
@@ -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;