Message ID | 20210818120642.165-6-xieyongji@bytedance.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Introduce VDUSE - vDPA Device in Userspace | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Not a local patch |
在 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 <xieyongji@bytedance.com> Acked-by: Jason Wang <jasowang@redhat.com> > --- > 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) {
On Wed, Aug 18, 2021 at 08:06:35PM +0800, Xie Yongji wrote: >The vdpa_reset() may fail now. This adds check to its return >value and fail the vhost_vdpa_open(). > >Signed-off-by: Xie Yongji <xieyongji@bytedance.com> >--- > drivers/vhost/vdpa.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
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) {
The vdpa_reset() may fail now. This adds check to its return value and fail the vhost_vdpa_open(). Signed-off-by: Xie Yongji <xieyongji@bytedance.com> --- drivers/vhost/vdpa.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)