提交 03a91c9a 编写于 作者: A Anirudh Rayabharam 提交者: Michael S. Tsirkin

vhost: handle error while adding split ranges to iotlb

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: NAnirudh Rayabharam <mail@anirudhrb.com>
Link: https://lore.kernel.org/r/20220312141121.4981-1-mail@anirudhrb.comSigned-off-by: NMichael S. Tsirkin <mst@redhat.com>
Fixes: e2ae38cf ("vhost: fix hung thread due to erroneous iotlb entries")
Reviewed-by: NStefano Garzarella <sgarzare@redhat.com>
上级 b04d910a
...@@ -62,8 +62,12 @@ int vhost_iotlb_add_range_ctx(struct vhost_iotlb *iotlb, ...@@ -62,8 +62,12 @@ int vhost_iotlb_add_range_ctx(struct vhost_iotlb *iotlb,
*/ */
if (start == 0 && last == ULONG_MAX) { if (start == 0 && last == ULONG_MAX) {
u64 mid = last / 2; 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; addr += mid + 1;
start = mid + 1; start = mid + 1;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册