Re: [PATCH] vhost: Fix vhost_copy_to_user()
On Wed, Apr 11, 2018 at 03:30:38PM +0200, Eric Auger wrote: > vhost_copy_to_user is used to copy vring used elements to userspace. > We should use VHOST_ADDR_USED instead of VHOST_ADDR_DESC. > > Fixes: f88949138058 ("vhost: introduce O(1) vq metadata cache") > Signed-off-by: Eric AugerAcked-by: Michael S. Tsirkin > --- > > This fixes a stall observed when running an aarch64 guest with > virtual smmu > --- > drivers/vhost/vhost.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c > index bec722e..f44aead 100644 > --- a/drivers/vhost/vhost.c > +++ b/drivers/vhost/vhost.c > @@ -744,7 +744,7 @@ static int vhost_copy_to_user(struct vhost_virtqueue *vq, > void __user *to, > struct iov_iter t; > void __user *uaddr = vhost_vq_meta_fetch(vq, >(u64)(uintptr_t)to, size, > - VHOST_ADDR_DESC); > + VHOST_ADDR_USED); > > if (uaddr) > return __copy_to_user(uaddr, from, size); > -- > 2.5.5 ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
Re: [PATCH] vhost: Fix vhost_copy_to_user()
Hi Jason, On 11/04/18 15:44, Jason Wang wrote: > > > On 2018年04月11日 21:30, Eric Auger wrote: >> vhost_copy_to_user is used to copy vring used elements to userspace. >> We should use VHOST_ADDR_USED instead of VHOST_ADDR_DESC. >> >> Fixes: f88949138058 ("vhost: introduce O(1) vq metadata cache") >> Signed-off-by: Eric Auger>> >> --- >> >> This fixes a stall observed when running an aarch64 guest with >> virtual smmu >> --- >> drivers/vhost/vhost.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c >> index bec722e..f44aead 100644 >> --- a/drivers/vhost/vhost.c >> +++ b/drivers/vhost/vhost.c >> @@ -744,7 +744,7 @@ static int vhost_copy_to_user(struct >> vhost_virtqueue *vq, void __user *to, >> struct iov_iter t; >> void __user *uaddr = vhost_vq_meta_fetch(vq, >>(u64)(uintptr_t)to, size, >> - VHOST_ADDR_DESC); >> + VHOST_ADDR_USED); >> if (uaddr) >> return __copy_to_user(uaddr, from, size); > > Acked-by: Jason Wang > > Thanks! > > Stable material I think. yes I think so. Thanks Eric ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
Re: [PATCH] vhost: Fix vhost_copy_to_user()
On 2018年04月11日 21:30, Eric Auger wrote: vhost_copy_to_user is used to copy vring used elements to userspace. We should use VHOST_ADDR_USED instead of VHOST_ADDR_DESC. Fixes: f88949138058 ("vhost: introduce O(1) vq metadata cache") Signed-off-by: Eric Auger--- This fixes a stall observed when running an aarch64 guest with virtual smmu --- drivers/vhost/vhost.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c index bec722e..f44aead 100644 --- a/drivers/vhost/vhost.c +++ b/drivers/vhost/vhost.c @@ -744,7 +744,7 @@ static int vhost_copy_to_user(struct vhost_virtqueue *vq, void __user *to, struct iov_iter t; void __user *uaddr = vhost_vq_meta_fetch(vq, (u64)(uintptr_t)to, size, -VHOST_ADDR_DESC); +VHOST_ADDR_USED); if (uaddr) return __copy_to_user(uaddr, from, size); Acked-by: Jason Wang Thanks! Stable material I think. ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
[PATCH] vhost: Fix vhost_copy_to_user()
vhost_copy_to_user is used to copy vring used elements to userspace. We should use VHOST_ADDR_USED instead of VHOST_ADDR_DESC. Fixes: f88949138058 ("vhost: introduce O(1) vq metadata cache") Signed-off-by: Eric Auger--- This fixes a stall observed when running an aarch64 guest with virtual smmu --- drivers/vhost/vhost.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c index bec722e..f44aead 100644 --- a/drivers/vhost/vhost.c +++ b/drivers/vhost/vhost.c @@ -744,7 +744,7 @@ static int vhost_copy_to_user(struct vhost_virtqueue *vq, void __user *to, struct iov_iter t; void __user *uaddr = vhost_vq_meta_fetch(vq, (u64)(uintptr_t)to, size, -VHOST_ADDR_DESC); +VHOST_ADDR_USED); if (uaddr) return __copy_to_user(uaddr, from, size); -- 2.5.5 ___ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization