linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: kvm@vger.kernel.org, virtualization@lists.linux-foundation.org,
	netdev@vger.kernel.org, Jason Wang <jasowang@redhat.com>,
	eperezma@redhat.com, Stefan Hajnoczi <stefanha@redhat.com>,
	Stefano Garzarella <sgarzare@redhat.com>
Subject: [PATCH RFC v8 10/11] vhost/vsock: switch to the buf API
Date: Thu, 11 Jun 2020 07:34:39 -0400	[thread overview]
Message-ID: <20200611113404.17810-11-mst@redhat.com> (raw)
In-Reply-To: <20200611113404.17810-1-mst@redhat.com>

A straight-forward conversion.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 drivers/vhost/vsock.c | 30 ++++++++++++++++++------------
 1 file changed, 18 insertions(+), 12 deletions(-)

diff --git a/drivers/vhost/vsock.c b/drivers/vhost/vsock.c
index a483cec31d5c..61c6d3dd2ae3 100644
--- a/drivers/vhost/vsock.c
+++ b/drivers/vhost/vsock.c
@@ -103,7 +103,8 @@ vhost_transport_do_send_pkt(struct vhost_vsock *vsock,
 		unsigned out, in;
 		size_t nbytes;
 		size_t iov_len, payload_len;
-		int head;
+		struct vhost_buf buf;
+		int ret;
 
 		spin_lock_bh(&vsock->send_pkt_list_lock);
 		if (list_empty(&vsock->send_pkt_list)) {
@@ -117,16 +118,17 @@ vhost_transport_do_send_pkt(struct vhost_vsock *vsock,
 		list_del_init(&pkt->list);
 		spin_unlock_bh(&vsock->send_pkt_list_lock);
 
-		head = vhost_get_vq_desc(vq, vq->iov, ARRAY_SIZE(vq->iov),
-					 &out, &in, NULL, NULL);
-		if (head < 0) {
+		ret = vhost_get_avail_buf(vq, &buf,
+					  vq->iov, ARRAY_SIZE(vq->iov),
+					  &out, &in, NULL, NULL);
+		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);
 			break;
 		}
 
-		if (head == vq->num) {
+		if (!ret) {
 			spin_lock_bh(&vsock->send_pkt_list_lock);
 			list_add(&pkt->list, &vsock->send_pkt_list);
 			spin_unlock_bh(&vsock->send_pkt_list_lock);
@@ -186,7 +188,8 @@ vhost_transport_do_send_pkt(struct vhost_vsock *vsock,
 		 */
 		virtio_transport_deliver_tap_pkt(pkt);
 
-		vhost_add_used(vq, head, sizeof(pkt->hdr) + payload_len);
+		buf.in_len = sizeof(pkt->hdr) + payload_len;
+		vhost_put_used_buf(vq, &buf);
 		added = true;
 
 		pkt->off += payload_len;
@@ -440,7 +443,8 @@ static void vhost_vsock_handle_tx_kick(struct vhost_work *work)
 	struct vhost_vsock *vsock = container_of(vq->dev, struct vhost_vsock,
 						 dev);
 	struct virtio_vsock_pkt *pkt;
-	int head, pkts = 0, total_len = 0;
+	int ret, pkts = 0, total_len = 0;
+	struct vhost_buf buf;
 	unsigned int out, in;
 	bool added = false;
 
@@ -461,12 +465,13 @@ static void vhost_vsock_handle_tx_kick(struct vhost_work *work)
 			goto no_more_replies;
 		}
 
-		head = vhost_get_vq_desc(vq, vq->iov, ARRAY_SIZE(vq->iov),
-					 &out, &in, NULL, NULL);
-		if (head < 0)
+		ret = vhost_get_avail_buf(vq, &buf,
+					  vq->iov, ARRAY_SIZE(vq->iov),
+					  &out, &in, NULL, NULL);
+		if (ret < 0)
 			break;
 
-		if (head == vq->num) {
+		if (!ret) {
 			if (unlikely(vhost_enable_notify(&vsock->dev, vq))) {
 				vhost_disable_notify(&vsock->dev, vq);
 				continue;
@@ -494,7 +499,8 @@ static void vhost_vsock_handle_tx_kick(struct vhost_work *work)
 			virtio_transport_free_pkt(pkt);
 
 		len += sizeof(pkt->hdr);
-		vhost_add_used(vq, head, len);
+		buf.in_len = len;
+		vhost_put_used_buf(vq, &buf);
 		total_len += len;
 		added = true;
 	} while(likely(!vhost_exceeds_weight(vq, ++pkts, total_len)));
-- 
MST


  parent reply	other threads:[~2020-06-11 11:35 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-11 11:34 [PATCH RFC v8 00/11] vhost: ring format independence Michael S. Tsirkin
2020-06-11 11:34 ` [PATCH RFC v8 01/11] vhost: option to fetch descriptors through an independent struct Michael S. Tsirkin
2020-06-11 11:34 ` [PATCH RFC v8 02/11] vhost: use batched get_vq_desc version Michael S. Tsirkin
2020-06-11 15:22   ` Konrad Rzeszutek Wilk
2020-06-15 12:28     ` Eugenio Perez Martin
2020-06-19 18:07       ` Eugenio Perez Martin
2020-06-19 18:25         ` Eugenio Perez Martin
2020-06-22  9:07         ` Jason Wang
2020-06-22 10:44           ` Eugenio Perez Martin
2020-06-22 15:55         ` Michael S. Tsirkin
2020-06-22 16:11           ` Eugenio Perez Martin
2020-06-22 16:29             ` Michael S. Tsirkin
2020-06-23 16:15               ` Eugenio Perez Martin
2020-07-01 10:43                 ` Eugenio Perez Martin
2020-07-01 11:11                   ` Michael S. Tsirkin
2020-07-01 12:56                     ` Eugenio Perez Martin
2020-07-01 12:39                   ` Jason Wang
2020-07-01 13:04                     ` Eugenio Perez Martin
2020-07-01 14:09                       ` Jason Wang
2020-07-09 16:46                         ` Eugenio Perez Martin
2020-07-09 17:37                           ` Michael S. Tsirkin
2020-07-10  3:56                             ` Jason Wang
2020-07-10  5:39                               ` Eugenio Perez Martin
2020-07-10  5:58                                 ` Michael S. Tsirkin
2020-07-16 17:16                                   ` Eugenio Perez Martin
2020-07-20  8:55                                     ` Jason Wang
2020-07-20 13:07                                       ` Eugenio Perez Martin
2020-07-20  9:27                                     ` Michael S. Tsirkin
2020-07-20 11:16                                       ` Eugenio Pérez
2020-07-20 11:45                                         ` Michael S. Tsirkin
2020-07-21  2:55                                         ` Jason Wang
2020-07-29 18:37                                           ` Eugenio Perez Martin
2020-07-10  6:44                                 ` Jason Wang
2020-06-17  3:19   ` Jason Wang
2020-06-19 17:56     ` Eugenio Perez Martin
2020-06-22 16:00     ` Michael S. Tsirkin
2020-06-23  2:51       ` Jason Wang
2020-06-23  7:00         ` Eugenio Perez Martin
2020-06-23  7:15           ` Jason Wang
2020-06-23  8:25           ` Michael S. Tsirkin
2020-06-23 15:54             ` Eugenio Perez Martin
2020-06-11 11:34 ` [PATCH RFC v8 03/11] vhost/net: pass net specific struct pointer Michael S. Tsirkin
2020-06-15 16:08   ` Eugenio Perez Martin
2020-06-11 11:34 ` [PATCH RFC v8 04/11] vhost: reorder functions Michael S. Tsirkin
2020-06-11 11:34 ` [PATCH RFC v8 05/11] vhost: format-independent API for used buffers Michael S. Tsirkin
2020-06-15 16:11   ` Eugenio Perez Martin
2020-06-11 11:34 ` [PATCH RFC v8 06/11] vhost/net: convert to new API: heads->bufs Michael S. Tsirkin
2020-06-11 11:34 ` [PATCH RFC v8 07/11] vhost/net: avoid iov length math Michael S. Tsirkin
2020-06-11 11:34 ` [PATCH RFC v8 08/11] vhost/test: convert to the buf API Michael S. Tsirkin
2020-06-11 11:34 ` [PATCH RFC v8 09/11] vhost/scsi: switch to buf APIs Michael S. Tsirkin
2020-06-11 11:34 ` Michael S. Tsirkin [this message]
2020-06-11 11:34 ` [PATCH RFC v8 11/11] vhost: drop head based APIs Michael S. Tsirkin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200611113404.17810-11-mst@redhat.com \
    --to=mst@redhat.com \
    --cc=eperezma@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=sgarzare@redhat.com \
    --cc=stefanha@redhat.com \
    --cc=virtualization@lists.linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).