From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:37427) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qq7K3-0006jl-C6 for qemu-devel@nongnu.org; Sun, 07 Aug 2011 13:39:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Qq7K2-0001bz-FT for qemu-devel@nongnu.org; Sun, 07 Aug 2011 13:39:35 -0400 Received: from mx1.redhat.com ([209.132.183.28]:47236) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qq7K2-0001bv-8V for qemu-devel@nongnu.org; Sun, 07 Aug 2011 13:39:34 -0400 Message-ID: <4E3ECE4C.10805@redhat.com> Date: Sun, 07 Aug 2011 19:41:32 +0200 From: Hans de Goede MIME-Version: 1.0 References: <1312723284-7549-1-git-send-email-hdegoede@redhat.com> <1312723284-7549-2-git-send-email-hdegoede@redhat.com> <4E3EB4CE.8030201@codemonkey.ws> In-Reply-To: <4E3EB4CE.8030201@codemonkey.ws> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 2/3] usb-redir: Call qemu_chr_guest_open/close List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: Gerd Hoffmann , qemu-devel@nongnu.org Hi, On 08/07/2011 05:52 PM, Anthony Liguori wrote: > On 08/07/2011 08:21 AM, Hans de Goede wrote: >> To let the chardev now we're ready start receiving data. This is necessary >> with the spicevmc chardev to get it registered with the spice-server. >> >> Signed-off-by: Hans de Goede >> --- >> usb-redir.c | 3 +++ >> 1 files changed, 3 insertions(+), 0 deletions(-) >> >> diff --git a/usb-redir.c b/usb-redir.c >> index e212993..ec88c0b 100644 >> --- a/usb-redir.c >> +++ b/usb-redir.c >> @@ -809,6 +809,8 @@ static int usbredir_initfn(USBDevice *udev) >> >> qemu_chr_add_handlers(dev->cs, usbredir_chardev_can_read, >> usbredir_chardev_read, usbredir_chardev_event, dev); >> + /* Let the other side know we are ready */ >> + qemu_chr_guest_open(dev->cs); > > > You should do guest_open before adding handlers. Erm, no, guest_open may lead to a callback in the chardev, to which it may respond by immediately queuing a few writes / doing a read. To me it makes much more sense to actually call guest_open when we are ready to receive data / to be read from, rather then to do it before our handlers are hooked up and thus before we are ready. Regards, Hans