search for: vhost_vdpa_remov

Displaying 7 results from an estimated 7 matches for "vhost_vdpa_remov".

Did you mean: vhost_vdpa_remove
2020 Jul 17
0
[PATCH V2 4/6] vhost_vdpa: implement IRQ offloading in vhost_vdpa
...te it when ctx (its token) > + * changes. > + */ > + if (vq->call_ctx.producer.irq) > + vhost_vdpa_update_vq_irq(vq); Is this safe to check producer.irq outside spinlock? Thanks > break; > > case VHOST_SET_VRING_NUM: > @@ -951,6 +997,8 @@ static void vhost_vdpa_remove(struct vdpa_device *vdpa) > }, > .probe = vhost_vdpa_probe, > .remove = vhost_vdpa_remove, > + .setup_vq_irq = vhost_vdpa_setup_vq_irq, > + .unsetup_vq_irq = vhost_vdpa_unsetup_vq_irq, > }; > > static int __init vhost_vdpa_init(void)
2020 Jul 13
0
[PATCH 4/7] vDPA: implement IRQ offloading helpers in vDPA core
...epends on VDPA > help > This kernel module can be loaded in host kernel to accelerate > diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c > index 92683e4..6e25158 100644 > --- a/drivers/vhost/vdpa.c > +++ b/drivers/vhost/vdpa.c > @@ -1020,6 +1020,8 @@ static void vhost_vdpa_remove(struct vdpa_device *vdpa) > }, > .probe = vhost_vdpa_probe, > .remove = vhost_vdpa_remove, > + .setup_vq_irq = vhost_vdpa_setup_vq_irq, > + .unsetup_vq_irq = vhost_vdpa_unsetup_vq_irq, > }; > > static int __init vhost_vdpa_init(void) > diff --git a/includ...
2020 Feb 18
2
[PATCH] vhost: introduce vDPA based backend
...; + goto err_device_create; > + } > + I can't understand what this messing around with major/minor numbers does. Without allocating a cdev via cdev_add/etc there is only a single char dev in existence here. This and the stuff in vhost_vdpa_open() looks non-functional. > +static void vhost_vdpa_remove(struct device *dev) > +{ > + DEFINE_WAIT_FUNC(wait, woken_wake_function); > + struct vhost_vdpa *v = dev_get_drvdata(dev); > + int opened; > + > + add_wait_queue(&vhost_vdpa.release_q, &wait); > + > + do { > + opened = atomic_cmpxchg(&v->opened, 0, 1); &g...
2020 Feb 18
2
[PATCH] vhost: introduce vDPA based backend
...; + goto err_device_create; > + } > + I can't understand what this messing around with major/minor numbers does. Without allocating a cdev via cdev_add/etc there is only a single char dev in existence here. This and the stuff in vhost_vdpa_open() looks non-functional. > +static void vhost_vdpa_remove(struct device *dev) > +{ > + DEFINE_WAIT_FUNC(wait, woken_wake_function); > + struct vhost_vdpa *v = dev_get_drvdata(dev); > + int opened; > + > + add_wait_queue(&vhost_vdpa.release_q, &wait); > + > + do { > + opened = atomic_cmpxchg(&v->opened, 0, 1); &g...
2020 Feb 19
0
[PATCH] vhost: introduce vDPA based backend
...around with major/minor numbers > does. Without allocating a cdev via cdev_add/etc there is only a > single char dev in existence here. This and the stuff in > vhost_vdpa_open() looks non-functional. I followed the code in VFIO. Please see more details below. > > > +static void vhost_vdpa_remove(struct device *dev) > > +{ > > + DEFINE_WAIT_FUNC(wait, woken_wake_function); > > + struct vhost_vdpa *v = dev_get_drvdata(dev); > > + int opened; > > + > > + add_wait_queue(&vhost_vdpa.release_q, &wait); > > + > > + do { > > + opened...
2020 Feb 04
10
[PATCH] vhost: introduce vDPA based backend
...rvdata(dev, v); > + > + return 0; > + > +err_device_create: > + vhost_vdpa_free_minor(minor); > +err_alloc_minor: > + mutex_unlock(&vhost_vdpa.mutex); > + kfree(v->vqs); > +err_alloc_vqs: > + kfree(v); > +err: > + return r; > +} > + > +static void vhost_vdpa_remove(struct device *dev) > +{ > + DEFINE_WAIT_FUNC(wait, woken_wake_function); > + struct vhost_vdpa *v = dev_get_drvdata(dev); > + int opened; > + > + add_wait_queue(&vhost_vdpa.release_q, &wait); > + > + do { > + opened = atomic_cmpxchg(&v->opened, 0, 1); &g...
2020 Feb 04
10
[PATCH] vhost: introduce vDPA based backend
...rvdata(dev, v); > + > + return 0; > + > +err_device_create: > + vhost_vdpa_free_minor(minor); > +err_alloc_minor: > + mutex_unlock(&vhost_vdpa.mutex); > + kfree(v->vqs); > +err_alloc_vqs: > + kfree(v); > +err: > + return r; > +} > + > +static void vhost_vdpa_remove(struct device *dev) > +{ > + DEFINE_WAIT_FUNC(wait, woken_wake_function); > + struct vhost_vdpa *v = dev_get_drvdata(dev); > + int opened; > + > + add_wait_queue(&vhost_vdpa.release_q, &wait); > + > + do { > + opened = atomic_cmpxchg(&v->opened, 0, 1); &g...