qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] Re: [PATCH 9/9] virtio-serial: Handle scatter/gather input


From: Amit Shah
Subject: [Qemu-devel] Re: [PATCH 9/9] virtio-serial: Handle scatter/gather input from the guest
Date: Tue, 23 Mar 2010 21:19:47 +0530
User-agent: Mutt/1.5.19 (2009-01-05)

On (Tue) Mar 23 2010 [20:00:19], Amit Shah wrote:
> @@ -369,16 +370,23 @@ static void handle_output(VirtIODevice *vdev, VirtQueue 
> *vq)
>           * with it. Just ignore the data in that case.
>           */
>          if (!port->info->have_data) {
> -            ret = 0;
>              goto next_buf;
>          }
>  
> -        /* The guest always sends only one sg */
> -        ret = port->info->have_data(port, elem.out_sg[0].iov_base,
> -                                    elem.out_sg[0].iov_len);
> +        for (i = 0; i < elem.out_num; i++) {
> +            size_t ret;
> +
> +            ret = port->info->have_data(port, elem.out_sg[0].iov_base,
> +                                        elem.out_sg[0].iov_len);
> +            if (ret < elem.out_sg[0].iov_len) {
> +                /* We couldn't write the entire iov; stop processing now */
> +                break;

We should increment len here if ret > 0.

I'll post a followup patch that does this.

> +            }
> +            len += ret;
> +        }
>  
>      next_buf:
> -        virtqueue_push(vq, &elem, ret);
> +        virtqueue_push(vq, &elem, len);
>      }
>      virtio_notify(vdev, vq);
>  }
> -- 
> 1.6.2.5
> 

                Amit




reply via email to

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