A recent change to weak reset handling broke replay due to the use of aio_bh_schedule_oneshot instead of the replay aware replay_bh_schedule_oneshot_event.
Fixes: 55adb3c456 ("ide: cancel pending callbacks on SRST") Suggested-by: Pavel Dovgalyuk <pavel.dovgal...@ispras.ru> Signed-off-by: Alex Bennée <alex.ben...@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> Reviewed-by: Richard Henderson <richard.hender...@linaro.org> Reviewed-by: John Snow <js...@redhat.com> Acked-by: John Snow <js...@redhat.com> Message-Id: <20201007160038.26953-4-alex.ben...@linaro.org> diff --git a/hw/ide/core.c b/hw/ide/core.c index 0e32abd779..693b352d5e 100644 --- a/hw/ide/core.c +++ b/hw/ide/core.c @@ -2289,8 +2289,8 @@ void ide_ctrl_write(void *opaque, uint32_t addr, uint32_t val) s = &bus->ifs[i]; s->status |= BUSY_STAT; } - aio_bh_schedule_oneshot(qemu_get_aio_context(), - ide_bus_perform_srst, bus); + replay_bh_schedule_oneshot_event(qemu_get_aio_context(), + ide_bus_perform_srst, bus); } bus->cmd = val; -- 2.20.1