kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] vhost: handle error while adding split ranges to iotlb
@ 2022-03-20  7:44 Anirudh Rayabharam
  2022-03-21  2:55 ` Jason Wang
  0 siblings, 1 reply; 2+ messages in thread
From: Anirudh Rayabharam @ 2022-03-20  7:44 UTC (permalink / raw)
  To: Michael S. Tsirkin, Jason Wang, Anirudh Rayabharam
  Cc: Stefano Garzarella, kvm, virtualization, netdev, linux-kernel

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@redhat.com>
Signed-off-by: Anirudh Rayabharam <mail@anirudhrb.com>
---

v2:
- Add "Fixes:" tag and "Reviewed-by:".

v1:
https://lore.kernel.org/kvm/20220312141121.4981-1-mail@anirudhrb.com/

---
 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


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH v2] vhost: handle error while adding split ranges to iotlb
  2022-03-20  7:44 [PATCH v2] vhost: handle error while adding split ranges to iotlb Anirudh Rayabharam
@ 2022-03-21  2:55 ` Jason Wang
  0 siblings, 0 replies; 2+ messages in thread
From: Jason Wang @ 2022-03-21  2:55 UTC (permalink / raw)
  To: Anirudh Rayabharam
  Cc: Michael S. Tsirkin, Stefano Garzarella, kvm, virtualization,
	netdev, linux-kernel

On Sun, Mar 20, 2022 at 3:45 PM Anirudh Rayabharam <mail@anirudhrb.com> 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@redhat.com>
> Signed-off-by: Anirudh Rayabharam <mail@anirudhrb.com>

Acked-by: Jason Wang <jasowang@redhat.com>

> ---
>
> v2:
> - Add "Fixes:" tag and "Reviewed-by:".
>
> v1:
> https://lore.kernel.org/kvm/20220312141121.4981-1-mail@anirudhrb.com/
>
> ---
>  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
>


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-03-21  2:55 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-20  7:44 [PATCH v2] vhost: handle error while adding split ranges to iotlb Anirudh Rayabharam
2022-03-21  2:55 ` Jason Wang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).