On 6/23/25 5:18 AM, Philippe Mathieu-Daudé wrote:
Keep bql_unlock() / bql_lock() close.
Signed-off-by: Philippe Mathieu-Daudé <philmd@xxxxxxxxxx>
Acked-by: Richard Henderson <richard.henderson@xxxxxxxxxx>
---
target/arm/hvf/hvf.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/target/arm/hvf/hvf.c b/target/arm/hvf/hvf.c
index c1ed8b510db..ef76dcd28de 100644
--- a/target/arm/hvf/hvf.c
+++ b/target/arm/hvf/hvf.c
@@ -1914,7 +1914,9 @@ int hvf_vcpu_exec(CPUState *cpu)
flush_cpu_state(cpu);
bql_unlock();
- assert_hvf_ok(hv_vcpu_run(cpu->accel->fd));
+ r = hv_vcpu_run(cpu->accel->fd);
+ bql_lock();
+ assert_hvf_ok(r);
/* handle VMEXIT */
uint64_t exit_reason = hvf_exit->reason;
@@ -1922,7 +1924,6 @@ int hvf_vcpu_exec(CPUState *cpu)
uint32_t ec = syn_get_ec(syndrome);
ret = 0;
- bql_lock();
switch (exit_reason) {
case HV_EXIT_REASON_EXCEPTION:
/* This is the main one, handle below. */
Just moves the lock a few lines up, does not impact what is protected.
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@xxxxxxxxxx>