From: Amit Shah Date: Wed, 21 Dec 2011 06:58:29 +0000 (+0530) Subject: virtio-serial-bus: Ports are expected to implement 'have_data' callback X-Git-Tag: v1.1-rc0~683 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=03ecd2c80a64d030a22fe67cc7a60f24e17ff211;p=thirdparty%2Fqemu.git virtio-serial-bus: Ports are expected to implement 'have_data' callback 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 Signed-off-by: Anthony Liguori --- diff --git a/hw/virtio-serial-bus.c b/hw/virtio-serial-bus.c index a4825b9eebd..fe0233f6f1c 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