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 >