From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jens Freimann Subject: Re: [RFC 1/3] vhost: invalidate vring addresses in cleanup_vq() Date: Tue, 27 Feb 2018 12:22:29 +0100 Message-ID: <20180227112229.dkt6fy6feqlbbjay@dhcp-192-241.str.redhat.com> References: <20180222181910.23134-1-maxime.coquelin@redhat.com> <20180222181910.23134-2-maxime.coquelin@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Cc: jianfeng.tan@intel.com, stefanha@redhat.com, tiwei.bie@intel.com, dev@dpdk.org To: Maxime Coquelin Return-path: Received: from mx1.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by dpdk.org (Postfix) with ESMTP id 85A332082 for ; Tue, 27 Feb 2018 12:22:37 +0100 (CET) Content-Disposition: inline In-Reply-To: <20180222181910.23134-2-maxime.coquelin@redhat.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Thu, Feb 22, 2018 at 07:19:08PM +0100, Maxime Coquelin wrote: >When cleaning-up the virtqueue, we also need to invalidate its >addresses to be sure outdated addresses won't be used later. > >Signed-off-by: Maxime Coquelin >--- > lib/librte_vhost/vhost.c | 6 ++++-- > lib/librte_vhost/vhost.h | 4 +++- > lib/librte_vhost/vhost_user.c | 2 +- > 3 files changed, 8 insertions(+), 4 deletions(-) > >diff --git a/lib/librte_vhost/vhost.c b/lib/librte_vhost/vhost.c >index f6f12a03b..e4281cf67 100644 >--- a/lib/librte_vhost/vhost.c >+++ b/lib/librte_vhost/vhost.c >@@ -69,12 +69,14 @@ __vhost_iova_to_vva(struct virtio_net *dev, struct vhost_virtqueue *vq, > } > > void >-cleanup_vq(struct vhost_virtqueue *vq, int destroy) >+cleanup_vq(struct virtio_net *dev, struct vhost_virtqueue *vq, int destroy) > { > if ((vq->callfd >= 0) && (destroy != 0)) > close(vq->callfd); > if (vq->kickfd >= 0) > close(vq->kickfd); >+ >+ vring_invalidate(dev, vq); > } > > /* >@@ -89,7 +91,7 @@ cleanup_device(struct virtio_net *dev, int destroy) > vhost_backend_cleanup(dev); > > for (i = 0; i < dev->nr_vring; i++) >- cleanup_vq(dev->virtqueue[i], destroy); >+ cleanup_vq(dev, dev->virtqueue[i], destroy); > } > > void >diff --git a/lib/librte_vhost/vhost.h b/lib/librte_vhost/vhost.h >index 58aec2e0d..4ebf84bec 100644 >--- a/lib/librte_vhost/vhost.h >+++ b/lib/librte_vhost/vhost.h >@@ -241,6 +241,7 @@ struct virtio_net { > struct guest_page *guest_pages; > > int slave_req_fd; >+ uint8_t virtio_status; Belongs into other patch? Apart from that Reviewed-by: Jens Freimann regards, Jens