On (Mon) 24 Dec 2012 [13:09:20], Amit Shah wrote: > On (Sun) 23 Dec 2012 [23:35:29], Alon Levy wrote: > > The target has not seen the guest_connected event via > > spice_chr_guest_open or spice_chr_write, and so spice server wrongly > > assumes there is no agent active, while the client continues to send > > motion events only by the agent channel, which the server ignores. The > > net effect is that the mouse is static in the guest. > > > > By registering the interface on post load spice server will pass on the > > agent messages fixing the mouse behavior after migration. > > > > RHBZ #725965 > > > > Signed-off-by: Alon Levy <al...@redhat.com> > > --- > > spice-qemu-char.c | 42 ++++++++++++++++++++++++++++++++++++++++++ > > 1 file changed, 42 insertions(+) > > I suppose Gerd should pick this up in his tree? > > I have a couple of questions below, but I ack this approach. > > > static QLIST_HEAD(, SpiceCharDriver) spice_chars = > > @@ -185,18 +190,23 @@ static void spice_chr_close(struct CharDriverState > > *chr) > > printf("%s\n", __func__); > > vmc_unregister_interface(s); > > QLIST_REMOVE(s, next); > > + qemu_free_timer(s->post_load.timer); > > Also vmstate_unregister()? > > I'm wondering if there can be a case where this function is called > before the timer has had a chance to fire. It can happen if the spice > port is hot-unplugged before the guest has had a chance to run on the > target. In that case, qemu_del_timer() should be called as well, to > ensure the timer doesn't fire with invalid args later.
Alon, ping? Amit