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