@samitouri / QOSamiQemu / commits / 6325e4bc20

target/arm/ptw: Flip sense of get_phys_addr_psmav5 return value

Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20260515142541.571911-6-peter.maydell@linaro.org

Peter Maydell committed May 15, 2026 at 15:25 UTC 6325e4bc2070490c58044237f62856c32a002222
1 file changed +8 -8
target/arm/ptw.c
+8 -8
@@ -2465,7 +2465,7 @@ static bool get_phys_addr_pmsav5(CPUARMState *env,
2465 /* MPU disabled. */
2466 result->f.phys_addr = address;
2467 result->f.prot = PAGE_READ | PAGE_WRITE | PAGE_EXEC;
2468 - return false;
2468 + return true;
2469 }
2470
2471 result->f.phys_addr = address;
@@ -2484,7 +2484,7 @@ static bool get_phys_addr_pmsav5(CPUARMState *env,
2484 }
2485 if (n < 0) {
2486 fi->type = ARMFault_Background;
2487 - return true;
2487 + return false;
2488 }
2489
2490 if (access_type == MMU_INST_FETCH) {
@@ -2497,12 +2497,12 @@ static bool get_phys_addr_pmsav5(CPUARMState *env,
2497 case 0:
2498 fi->type = ARMFault_Permission;
2499 fi->level = 1;
2500 - return true;
2500 + return false;
2501 case 1:
2502 if (is_user) {
2503 fi->type = ARMFault_Permission;
2504 fi->level = 1;
2505 - return true;
2505 + return false;
2506 }
2507 result->f.prot = PAGE_READ | PAGE_WRITE;
2508 break;
@@ -2519,7 +2519,7 @@ static bool get_phys_addr_pmsav5(CPUARMState *env,
2519 if (is_user) {
2520 fi->type = ARMFault_Permission;
2521 fi->level = 1;
2522 - return true;
2522 + return false;
2523 }
2524 result->f.prot = PAGE_READ;
2525 break;
@@ -2530,10 +2530,10 @@ static bool get_phys_addr_pmsav5(CPUARMState *env,
2530 /* Bad permission. */
2531 fi->type = ARMFault_Permission;
2532 fi->level = 1;
2533 - return true;
2533 + return false;
2534 }
2535 result->f.prot |= PAGE_EXEC;
2536 - return false;
2536 + return true;
2537 }
2538
2539 static void get_phys_addr_pmsav7_default(CPUARMState *env, ARMMMUIdx mmu_idx,
@@ -3763,7 +3763,7 @@ static bool get_phys_addr_nogpc(CPUARMState *env, S1Translate *ptw,
3763 result, fi);
3764 } else {
3765 /* Pre-v7 MPU */
3766 - ret = get_phys_addr_pmsav5(env, ptw, address, access_type,
3766 + ret = !get_phys_addr_pmsav5(env, ptw, address, access_type,
3767 result, fi);
3768 }
3769 qemu_log_mask(CPU_LOG_MMU, "PMSA MPU lookup for %s at 0x%08" PRIx32