qemu/target/mips
Philippe Mathieu-Daudé 7ce9760d64 target/mips: Use correct MMU index in get_pte()
When refactoring page_table_walk_refill() in commit 4e999bf419
we missed the indirect call to cpu_mmu_index() in get_pte():

  page_table_walk_refill()
  -> get_pte()
     -> cpu_ld[lq]_code()
        -> cpu_mmu_index()

Since we don't mask anymore the modes in hflags, cpu_mmu_index()
can return UM or SM, while we only expect KM or ERL.

Fix by propagating ptw_mmu_idx to get_pte(), and use the
cpu_ld/st_code_mmu() API with the correct MemOpIdx.

Reported-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Reported-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2470
Fixes: 4e999bf419 ("target/mips: Pass ptw_mmu_idx down from mips_cpu_tlb_fill")
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20240814090452.2591-3-philmd@linaro.org>
2024-08-20 00:38:48 +02:00
..
sysemu exec/cpu: Extract page-protection definitions to page-protection.h 2024-05-06 11:17:15 +02:00
tcg target/mips: Use correct MMU index in get_pte() 2024-08-20 00:38:48 +02:00
cpu-defs.c.inc target/mips: Use generic cpu_list() 2024-01-05 16:20:14 +01:00
cpu-param.h target: Define TCG_GUEST_DEFAULT_MO in 'cpu-param.h' 2024-04-26 15:31:37 +02:00
cpu-qom.h target: Move ArchCPUClass definition to 'cpu.h' 2023-11-07 13:08:48 +01:00
cpu.c target: Set TCGCPUOps::cpu_exec_halt to target's has_work implementation 2024-07-11 11:41:34 +01:00
cpu.h target: Define TCG_GUEST_DEFAULT_MO in 'cpu-param.h' 2024-04-26 15:31:37 +02:00
fpu.c target/mips: Optimize CPU/FPU regnames[] arrays 2021-05-02 16:49:34 +02:00
fpu_helper.h target/mips: Set set_default_nan_mode with set_snan_bit_is_one 2021-05-16 07:13:51 -05:00
gdbstub.c target/mips: Prefer fast cpu_env() over slower CPU QOM cast macro 2024-03-12 12:04:24 +01:00
helper.h target/mips: Implement Loongson CSR instructions 2023-07-10 23:33:37 +02:00
internal.h target/mips: Remove unused mips_def_t::SAARP field 2024-02-15 15:53:12 +01:00
Kconfig target/mips: Restrict semihosting to TCG 2024-07-22 09:38:10 +01:00
kvm.c KVM: remove kvm_arch_cpu_check_are_resettable 2024-04-23 17:35:25 +02:00
kvm_mips.h kvm: Introduce kvm_arch_get_default_type hook 2023-08-22 17:31:02 +01:00
meson.build meson: rename config_all 2023-12-31 09:11:28 +01:00
mips-defs.h target/mips: introduce decodetree structure for Cavium Octeon extension 2022-07-12 22:30:09 +02:00
msa.c target/mips: Move msa_reset() to new source file 2021-05-02 16:49:34 +02:00