]> Git Repo - linux.git/commitdiff
vhost: handle error while adding split ranges to iotlb
authorAnirudh Rayabharam <[email protected]>
Sat, 12 Mar 2022 14:11:21 +0000 (19:41 +0530)
committerMichael S. Tsirkin <[email protected]>
Mon, 28 Mar 2022 20:53:00 +0000 (16:53 -0400)
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.

Signed-off-by: Anirudh Rayabharam <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Michael S. Tsirkin <[email protected]>
Fixes: e2ae38cf3d91 ("vhost: fix hung thread due to erroneous iotlb entries")
Reviewed-by: Stefano Garzarella <[email protected]>
drivers/vhost/iotlb.c

index 40b098320b2a7242a33acb3b0215ed6aab4f41e4..5829cf2d0552d65c960faead923a3723fbf5b400 100644 (file)
@@ -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;
        }
This page took 0.058129 seconds and 4 git commands to generate.