Re: [PATCH v2] vhost: handle error while adding split ranges to iotlb

From: Jason Wang
Date: Sun Mar 20 2022 - 22:56:01 EST


On Sun, Mar 20, 2022 at 3:45 PM Anirudh Rayabharam <mail@xxxxxxxxxxxxx> wrote:
>
> vhost_iotlb_add_range_ctx() handles the range [0, ULONG_MAX] by
> splitting it into two ranges and adding them separately. The return
> value of adding the first range to the iotlb is currently ignored.
> Check the return value and bail out in case of an error.
>
> Fixes: e2ae38cf3d91 ("vhost: fix hung thread due to erroneous iotlb entries")
> Reviewed-by: Stefano Garzarella <sgarzare@xxxxxxxxxx>
> Signed-off-by: Anirudh Rayabharam <mail@xxxxxxxxxxxxx>

Acked-by: Jason Wang <jasowang@xxxxxxxxxx>

> ---
>
> v2:
> - Add "Fixes:" tag and "Reviewed-by:".
>
> v1:
> https://lore.kernel.org/kvm/20220312141121.4981-1-mail@xxxxxxxxxxxxx/
>
> ---
> drivers/vhost/iotlb.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/vhost/iotlb.c b/drivers/vhost/iotlb.c
> index 40b098320b2a..5829cf2d0552 100644
> --- a/drivers/vhost/iotlb.c
> +++ b/drivers/vhost/iotlb.c
> @@ -62,8 +62,12 @@ int vhost_iotlb_add_range_ctx(struct vhost_iotlb *iotlb,
> */
> if (start == 0 && last == ULONG_MAX) {
> u64 mid = last / 2;
> + int err = vhost_iotlb_add_range_ctx(iotlb, start, mid, addr,
> + perm, opaque);
> +
> + if (err)
> + return err;
>
> - vhost_iotlb_add_range_ctx(iotlb, start, mid, addr, perm, opaque);
> addr += mid + 1;
> start = mid + 1;
> }
> --
> 2.35.1
>