mirror of https://github.com/xemu-project/xemu.git
nv2a/mcpx: fix freezing on loadvm failure
This commit is contained in:
parent
8919bae311
commit
2218cdea67
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue