Previously, there was a bug in usbredir which prevented "-loadvm" from working
because libusbredir's usbredirparser_unserialize() fails when a HELLO packet is
sent as part of the device's initalization.
The fix was to not send HELLO when in the RUN_STATE_PRELAUNCH state. However,
recently we found that this breaks when QEMU is started with "-S" because it
is in the RUN_STATE_PRELAUNCH state while halted before boot as well.
This patch attempts to re-fix the issue by setting the run state to
RUN_STATE_RESTORE_VM when started with "-loadvm" and recognizing that state
in usbredir's initalization.
To make sure there's no unintended side effects, we searched for
"RUN_STATE_RESTORE_VM" in the code base and found only references in
migration/savevm.c, monitor/hmp-cmds.c, and replay/replay-debugging.c. None of
these seems to be affected by RUN_STATE_RESTORE_VM before RUN_STATE_RUNNING.
Joelle van Dyne (3):
Revert "usbredir: avoid queuing hello packet on snapshot restore"
vl: on -loadvm set run state to "restore-vm"
usbredir: avoid queuing hello packet on snapshot restore
hw/usb/redirect.c | 2 +-
softmmu/runstate.c | 1 +
softmmu/vl.c | 3 +++
3 files changed, 5 insertions(+), 1 deletion(-)
--
2.28.0