]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
target/loongarch: Invalid tlb entry in invalidate_tlb()
authorBibo Mao <maobibo@loongson.cn>
Thu, 4 Sep 2025 10:07:18 +0000 (18:07 +0800)
committerBibo Mao <maobibo@loongson.cn>
Sun, 28 Sep 2025 08:10:34 +0000 (16:10 +0800)
Invalid tlb entry in function invalidate_tlb(), and its usage is
simple and easy to use.

Signed-off-by: Bibo Mao <maobibo@loongson.cn>
Reviewed-by: Song Gao <gaosong@loongson.cn>
target/loongarch/tcg/tlb_helper.c

index 7a85d9ca55ae7c2c684570bb9b53a196c401f5e4..b777f68f7148bcd1063a3ff6a008f3ef24b29861 100644 (file)
@@ -123,6 +123,7 @@ static void invalidate_tlb_entry(CPULoongArchState *env, int index)
         return;
     }
 
+    tlb->tlb_misc = FIELD_DP64(tlb->tlb_misc, TLB_MISC, E, 0);
     tlb_ps = FIELD_EX64(tlb->tlb_misc, TLB_MISC, PS);
     pagesize = MAKE_64BIT_MASK(tlb_ps, 1);
     mask = MAKE_64BIT_MASK(0, tlb_ps + 1);
@@ -338,7 +339,6 @@ void helper_tlbwr(CPULoongArchState *env)
     old = env->tlb + index;
     if (FIELD_EX64(env->CSR_TLBIDX, CSR_TLBIDX, NE)) {
         invalidate_tlb(env, index);
-        old->tlb_misc = FIELD_DP64(old->tlb_misc, TLB_MISC, E, 0);
         return;
     }