aboutsummaryrefslogtreecommitdiff
path: root/cpus.c
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2018-10-08 13:24:14 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2018-10-19 13:44:15 +0200
commit74c0b816adfc6aa1b01b4426fdf385e32e35cbac (patch)
treef42fa64eccc77891ae93684717220badd50f8794 /cpus.c
parent0c2ed83fa45aa5d80ecc7d3fff0ab38db2db5972 (diff)
downloadqemu-74c0b816adfc6aa1b01b4426fdf385e32e35cbac.zip
qemu-74c0b816adfc6aa1b01b4426fdf385e32e35cbac.tar.gz
qemu-74c0b816adfc6aa1b01b4426fdf385e32e35cbac.tar.bz2
replay: pass raw icount value to replay_save_clock
This avoids lock recursion when REPLAY_CLOCK is called inside the timers spinlock. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'cpus.c')
-rw-r--r--cpus.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/cpus.c b/cpus.c
index 361678e..1c741bc 100644
--- a/cpus.c
+++ b/cpus.c
@@ -509,8 +509,8 @@ static void icount_warp_rt(void)
seqlock_write_lock(&timers_state.vm_clock_seqlock,
&timers_state.vm_clock_lock);
if (runstate_is_running()) {
- int64_t clock = REPLAY_CLOCK(REPLAY_CLOCK_VIRTUAL_RT,
- cpu_get_clock_locked());
+ int64_t clock = REPLAY_CLOCK_LOCKED(REPLAY_CLOCK_VIRTUAL_RT,
+ cpu_get_clock_locked());
int64_t warp_delta;
warp_delta = clock - timers_state.vm_clock_warp_start;