On Wed, Aug 10, 2016 at 05:24:34PM +0200, [email protected] wrote:
> From: Gerard Garcia <[email protected]>
>
> Remove unnecessary use of enable/disable callback notifications
> and the incorrect more space available check.
>
> The virtio_transport_tx_work handles when the TX virtqueue
> has more buffers available.
>
> Signed-off-by: Gerard Garcia <[email protected]>
> Acked-by: Stefan Hajnoczi <[email protected]>
Generally enable/disable is a worthwhile optimization,
but if Stefan wants to keep code simple for now,
I don't have a problem with that.
> ---
>
> v2:
> * Comment style.
>
> net/vmw_vsock/virtio_transport.c | 10 +++-------
> 1 file changed, 3 insertions(+), 7 deletions(-)
>
> diff --git a/net/vmw_vsock/virtio_transport.c
> b/net/vmw_vsock/virtio_transport.c
> index 699dfab..936d7ee 100644
> --- a/net/vmw_vsock/virtio_transport.c
> +++ b/net/vmw_vsock/virtio_transport.c
> @@ -87,9 +87,6 @@ virtio_transport_send_pkt_work(struct work_struct *work)
>
> vq = vsock->vqs[VSOCK_VQ_TX];
>
> - /* Avoid unnecessary interrupts while we're processing the ring */
> - virtqueue_disable_cb(vq);
> -
> for (;;) {
> struct virtio_vsock_pkt *pkt;
> struct scatterlist hdr, buf, *sgs[2];
> @@ -99,7 +96,6 @@ virtio_transport_send_pkt_work(struct work_struct *work)
> spin_lock_bh(&vsock->send_pkt_list_lock);
> if (list_empty(&vsock->send_pkt_list)) {
> spin_unlock_bh(&vsock->send_pkt_list_lock);
> - virtqueue_enable_cb(vq);
> break;
> }
>
> @@ -118,13 +114,13 @@ virtio_transport_send_pkt_work(struct work_struct *work)
> }
>
> ret = virtqueue_add_sgs(vq, sgs, out_sg, in_sg, pkt,
> GFP_KERNEL);
> + /* Usually this means that there is no more space available in
> + * the vq
> + */
> if (ret < 0) {
> spin_lock_bh(&vsock->send_pkt_list_lock);
> list_add(&pkt->list, &vsock->send_pkt_list);
> spin_unlock_bh(&vsock->send_pkt_list_lock);
> -
> - if (!virtqueue_enable_cb(vq) && ret == -ENOSPC)
> - continue; /* retry now that we have more space
> */
> break;
> }
>
> --
> 2.9.1