nv2a/mcpx: fix freezing on loadvm failure

This commit is contained in:
Antonio Abbatangelo 2022-02-21 02:40:04 -05:00 committed by mborgerson
parent 8919bae311
commit 2218cdea67
2 changed files with 5 additions and 4 deletions

View File

@ -2324,8 +2324,6 @@ static void mcpx_apu_vm_state_change(void *opaque, bool running, RunState state)
if (state == RUN_STATE_SAVE_VM) {
qemu_mutex_lock(&d->lock);
} else if (state == RUN_STATE_RESTORE_VM) {
mcpx_apu_reset(d);
}
}
@ -2340,6 +2338,7 @@ static int mcpx_apu_post_save(void *opaque)
static int mcpx_apu_pre_load(void *opaque)
{
MCPXAPUState *d = opaque;
mcpx_apu_reset(d);
qemu_mutex_lock(&d->lock);
return 0;
}

View File

@ -375,13 +375,16 @@ static void nv2a_vm_state_change(void *opaque, bool running, RunState state)
nv2a_lock_fifo(d);
qatomic_set(&d->pfifo.halt, true);
nv2a_unlock_fifo(d);
} else if (state == RUN_STATE_RUNNING) {
nv2a_lock_fifo(d);
qatomic_set(&d->pfifo.halt, false);
nv2a_unlock_fifo(d);
}
}
static int nv2a_post_save(void *opaque)
{
NV2AState *d = opaque;
qatomic_set(&d->pfifo.halt, false);
nv2a_unlock_fifo(d);
return 0;
}
@ -396,7 +399,6 @@ static int nv2a_pre_load(void *opaque)
static int nv2a_post_load(void *opaque, int version_id)
{
NV2AState *d = opaque;
qatomic_set(&d->pfifo.halt, false);
qatomic_set(&d->pgraph.flush_pending, true);
nv2a_unlock_fifo(d);
return 0;