[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 78/88] target/hppa: Avoid async_safe_run_on_cpu on uniprocesso
|
From: |
Richard Henderson |
|
Subject: |
[PATCH v3 78/88] target/hppa: Avoid async_safe_run_on_cpu on uniprocessor system |
|
Date: |
Wed, 1 Nov 2023 18:30:06 -0700 |
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/mem_helper.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/target/hppa/mem_helper.c b/target/hppa/mem_helper.c
index 7132ea221c..602e6c809f 100644
--- a/target/hppa/mem_helper.c
+++ b/target/hppa/mem_helper.c
@@ -480,6 +480,7 @@ void HELPER(ptlb)(CPUHPPAState *env, target_ulong addr)
{
CPUState *src = env_cpu(env);
CPUState *cpu;
+ bool wait = false;
trace_hppa_tlb_ptlb(env);
run_on_cpu_data data = RUN_ON_CPU_TARGET_PTR(addr);
@@ -487,9 +488,14 @@ void HELPER(ptlb)(CPUHPPAState *env, target_ulong addr)
CPU_FOREACH(cpu) {
if (cpu != src) {
async_run_on_cpu(cpu, ptlb_work, data);
+ wait = true;
}
}
- async_safe_run_on_cpu(src, ptlb_work, data);
+ if (wait) {
+ async_safe_run_on_cpu(src, ptlb_work, data);
+ } else {
+ ptlb_work(src, data);
+ }
}
void hppa_ptlbe(CPUHPPAState *env)
--
2.34.1
- [PATCH v3 54/88] target/hppa: Implement STDBY, (continued)
- [PATCH v3 54/88] target/hppa: Implement STDBY, Richard Henderson, 2023/11/01
- [PATCH v3 60/88] target/hppa: Adjust vmstate_env for pa2.0 tlb, Richard Henderson, 2023/11/01
- [PATCH v3 73/88] include/hw/elf: Remove truncating signed casts, Richard Henderson, 2023/11/01
- [PATCH v3 61/88] target/hppa: Use tcg_temp_new_i64 not tcg_temp_new, Richard Henderson, 2023/11/01
- [PATCH v3 77/88] target/hppa: Add pa2.0 cpu local tlb flushes, Richard Henderson, 2023/11/01
- [PATCH v3 65/88] target/hppa: Implement HAVG, Richard Henderson, 2023/11/01
- [PATCH v3 62/88] target/hppa: Replace tcg_gen_*_tl with tcg_gen_*_i64, Richard Henderson, 2023/11/01
- [PATCH v3 67/88] target/hppa: Implement HSHLADD, HSHRADD, Richard Henderson, 2023/11/01
- [PATCH v3 75/88] linux-user/hppa: Drop EXCP_DUMP from handled exceptions, Richard Henderson, 2023/11/01
- [PATCH v3 45/88] target/hppa: Decode d for bb instructions, Richard Henderson, 2023/11/01
- [PATCH v3 78/88] target/hppa: Avoid async_safe_run_on_cpu on uniprocessor system,
Richard Henderson <=
- [PATCH v3 74/88] hw/hppa: Translate phys addresses for the cpu, Richard Henderson, 2023/11/01
- [PATCH v3 70/88] target/hppa: Fix interruption based on default PSW, Richard Henderson, 2023/11/01
- [PATCH v3 56/88] hw/hppa: Use uint32_t instead of target_ureg, Richard Henderson, 2023/11/01
- [PATCH v3 58/88] target/hppa: Remove most of the TARGET_REGISTER_BITS redirections, Richard Henderson, 2023/11/01
- [PATCH v3 72/88] target/hppa: Return zero for r0 from load_gpr, Richard Henderson, 2023/11/01
- [PATCH v3 79/88] target/hppa: Clear upper bits in mtctl for pa1.x, Richard Henderson, 2023/11/01
- [PATCH v3 66/88] target/hppa: Implement HSHL, HSHR, Richard Henderson, 2023/11/01
- [PATCH v3 76/88] target/hppa: Implement pa2.0 data prefetch instructions, Richard Henderson, 2023/11/01
- [PATCH v3 63/88] target/hppa: Implement HADD, Richard Henderson, 2023/11/01
- [PATCH v3 48/88] target/hppa: Decode ADDB double-word, Richard Henderson, 2023/11/01