From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:40914) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RdG8b-0005y2-HY for qemu-devel@nongnu.org; Wed, 21 Dec 2011 01:58:55 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RdG8a-0003ri-DM for qemu-devel@nongnu.org; Wed, 21 Dec 2011 01:58:53 -0500 Received: from mx1.redhat.com ([209.132.183.28]:31058) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RdG8a-0003rY-2w for qemu-devel@nongnu.org; Wed, 21 Dec 2011 01:58:52 -0500 From: Amit Shah Date: Wed, 21 Dec 2011 12:28:29 +0530 Message-Id: In-Reply-To: <572329cfb780c2ab584cb89fca6e9dcea08812aa.1324450707.git.amit.shah@redhat.com> References: <572329cfb780c2ab584cb89fca6e9dcea08812aa.1324450707.git.amit.shah@redhat.com> In-Reply-To: <572329cfb780c2ab584cb89fca6e9dcea08812aa.1324450707.git.amit.shah@redhat.com> References: <572329cfb780c2ab584cb89fca6e9dcea08812aa.1324450707.git.amit.shah@redhat.com> Subject: [Qemu-devel] [PATCH 3/3] virtio-serial-bus: Ports are expected to implement 'have_data' callback List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: Amit Shah , Paolo Bonzini , qemu list , Markus Armbruster There's no need to check if ports can accept any incoming data from the guest each time the guest sends data. Check if the port implements such functionality during port initialisation. Signed-off-by: Amit Shah --- hw/virtio-serial-bus.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/virtio-serial-bus.c b/hw/virtio-serial-bus.c index a4825b9..fe0233f 100644 --- a/hw/virtio-serial-bus.c +++ b/hw/virtio-serial-bus.c @@ -466,13 +466,11 @@ static void handle_output(VirtIODevice *vdev, VirtQueue *vq) { VirtIOSerial *vser; VirtIOSerialPort *port; - VirtIOSerialPortInfo *info; vser = DO_UPCAST(VirtIOSerial, vdev, vdev); port = find_port_by_vq(vser, vq); - info = port ? DO_UPCAST(VirtIOSerialPortInfo, qdev, port->dev.info) : NULL; - if (!port || !port->host_connected || !info->have_data) { + if (!port || !port->host_connected) { discard_vq_data(vq, vdev); return; } @@ -746,6 +744,8 @@ static int virtser_port_qdev_init(DeviceState *qdev, DeviceInfo *base) port->vser = bus->vser; port->bh = qemu_bh_new(flush_queued_data_bh, port); + assert(info->have_data); + /* * Is the first console port we're seeing? If so, put it up at * location 0. This is done for backward compatibility (old -- 1.7.7.4