RE: [PATCH] vhost: allow batching hint without size

From: Eli Cohen
Date: Thu Mar 10 2022 - 05:59:42 EST


Tested-by: Eli Cohen <elic@xxxxxxxxxx>

> -----Original Message-----
> From: Jason Wang <jasowang@xxxxxxxxxx>
> Sent: Thursday, March 10, 2022 9:52 AM
> To: mst@xxxxxxxxxx
> Cc: kvm@xxxxxxxxxxxxxxx; virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Jason Wang
> <jasowang@xxxxxxxxxx>; Eli Cohen <elic@xxxxxxxxxx>; Anirudh Rayabharam <mail@xxxxxxxxxxxxx>
> Subject: [PATCH] vhost: allow batching hint without size
>
> Commit e2ae38cf3d91 ("vhost: fix hung thread due to erroneous iotlb
> entries") tries to reject the IOTLB message whose size is zero. But
> the size is not necessarily meaningful, one example is the batching
> hint, so the commit breaks that.
>
> Fixing this be reject zero size message only if the message is used to
> update/invalidate the IOTLB.
>
> Fixes: e2ae38cf3d91 ("vhost: fix hung thread due to erroneous iotlb entries")
> Reported-by: Eli Cohen <elic@xxxxxxxxxx>
> Cc: Anirudh Rayabharam <mail@xxxxxxxxxxxxx>
> Signed-off-by: Jason Wang <jasowang@xxxxxxxxxx>
> ---
> drivers/vhost/vhost.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c
> index 082380c03a3e..1768362115c6 100644
> --- a/drivers/vhost/vhost.c
> +++ b/drivers/vhost/vhost.c
> @@ -1170,7 +1170,9 @@ ssize_t vhost_chr_write_iter(struct vhost_dev *dev,
> goto done;
> }
>
> - if (msg.size == 0) {
> + if ((msg.type == VHOST_IOTLB_UPDATE ||
> + msg.type == VHOST_IOTLB_INVALIDATE) &&
> + msg.size == 0) {
> ret = -EINVAL;
> goto done;
> }
> --
> 2.18.1