qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 1/3] virtio-serial-bus: add port arg to discard_


From: Markus Armbruster
Subject: Re: [Qemu-devel] [PATCH 1/3] virtio-serial-bus: add port arg to discard_vq_data()
Date: Wed, 14 Sep 2011 14:52:50 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux)

Amit Shah <address@hidden> writes:

> To discard throttled data as well as maintain statistics of bytes
> received and discarded, discard_vq_data() will need the port associated
> with the vq.
>
> Signed-off-by: Amit Shah <address@hidden>
> ---
>  hw/virtio-serial-bus.c |    9 +++++----
>  1 files changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/hw/virtio-serial-bus.c b/hw/virtio-serial-bus.c
> index a4825b9..6838d73 100644
> --- a/hw/virtio-serial-bus.c
> +++ b/hw/virtio-serial-bus.c
> @@ -114,7 +114,8 @@ static size_t write_to_port(VirtIOSerialPort *port,
>      return offset;
>  }
>  
> -static void discard_vq_data(VirtQueue *vq, VirtIODevice *vdev)
> +static void discard_vq_data(VirtIOSerialPort *port, VirtQueue *vq,
> +                            VirtIODevice *vdev)
>  {
>      VirtQueueElement elem;
>  

Two of three callers pass port, port->ovq, &port->vser->vdev.  Third one
isn't as obvious, but could be the same (didn't check thoroughly).
Makes me wonder whether parameters vq and vdev are really needed.

> @@ -248,7 +249,7 @@ int virtio_serial_close(VirtIOSerialPort *port)
>       * consume, reset the throttling flag and discard the data.
>       */
>      port->throttled = false;
> -    discard_vq_data(port->ovq, &port->vser->vdev);
> +    discard_vq_data(port, port->ovq, &port->vser->vdev);
>  
>      send_control_event(port, VIRTIO_CONSOLE_PORT_OPEN, 0);
>  
> @@ -473,7 +474,7 @@ static void handle_output(VirtIODevice *vdev, VirtQueue 
> *vq)
>      info = port ? DO_UPCAST(VirtIOSerialPortInfo, qdev, port->dev.info) : 
> NULL;
>  
>      if (!port || !port->host_connected || !info->have_data) {
> -        discard_vq_data(vq, vdev);
> +        discard_vq_data(port, vq, vdev);
>          return;
>      }
>  
> @@ -730,7 +731,7 @@ static void remove_port(VirtIOSerial *vser, uint32_t 
> port_id)
>  
>      port = find_port_by_id(vser, port_id);
>      /* Flush out any unconsumed buffers first */
> -    discard_vq_data(port->ovq, &port->vser->vdev);
> +    discard_vq_data(port, port->ovq, &port->vser->vdev);
>  
>      send_control_event(port, VIRTIO_CONSOLE_PORT_REMOVE, 1);
>  }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]