Thread (1 message) 1 message, 1 author, 2021-08-23

Re: [PATCH v11 05/12] vhost-vdpa: Handle the failure of vdpa_reset()

From: Jason Wang <hidden>
Date: 2021-08-23 06:32:21
Also in: kvm, linux-fsdevel, linux-iommu, lkml, netdev

在 2021/8/18 下午8:06, Xie Yongji 写道:
The vdpa_reset() may fail now. This adds check to its return
value and fail the vhost_vdpa_open().

Signed-off-by: Xie Yongji <redacted>

Acked-by: Jason Wang <redacted>

quoted hunk
---
  drivers/vhost/vdpa.c | 9 ++++++---
  1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c
index b1c91b4db0ba..d99d75ad30cc 100644
--- a/drivers/vhost/vdpa.c
+++ b/drivers/vhost/vdpa.c
@@ -116,12 +116,13 @@ static void vhost_vdpa_unsetup_vq_irq(struct vhost_vdpa *v, u16 qid)
  	irq_bypass_unregister_producer(&vq->call_ctx.producer);
  }
  
-static void vhost_vdpa_reset(struct vhost_vdpa *v)
+static int vhost_vdpa_reset(struct vhost_vdpa *v)
  {
  	struct vdpa_device *vdpa = v->vdpa;
  
-	vdpa_reset(vdpa);
  	v->in_batch = 0;
+
+	return vdpa_reset(vdpa);
  }
  
  static long vhost_vdpa_get_device_id(struct vhost_vdpa *v, u8 __user *argp)
@@ -868,7 +869,9 @@ static int vhost_vdpa_open(struct inode *inode, struct file *filep)
  		return -EBUSY;
  
  	nvqs = v->nvqs;
-	vhost_vdpa_reset(v);
+	r = vhost_vdpa_reset(v);
+	if (r)
+		goto err;
  
  	vqs = kmalloc_array(nvqs, sizeof(*vqs), GFP_KERNEL);
  	if (!vqs) {
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help