search for: eventfd_ctx_put

Displaying 20 results from an estimated 77 matches for "eventfd_ctx_put".

2020 Aug 04
3
[PATCH V5 1/6] vhost: introduce vhost_vring_call
...>>> ????? vq->umem = NULL; >>> ????? vq->iotlb = NULL; >>> +??? vhost_vring_call_reset(&vq->call_ctx); >>> ????? __vhost_vq_meta_reset(vq); >>> ? } >>> ? @@ -685,8 +692,8 @@ void vhost_dev_cleanup(struct vhost_dev *dev) >>> eventfd_ctx_put(dev->vqs[i]->error_ctx); >>> ????????? if (dev->vqs[i]->kick) >>> ????????????? fput(dev->vqs[i]->kick); >>> -??????? if (dev->vqs[i]->call_ctx) >>> - eventfd_ctx_put(dev->vqs[i]->call_ctx); >>> +??????? if (dev->vqs[i]-&...
2020 Aug 04
3
[PATCH V5 1/6] vhost: introduce vhost_vring_call
...>>> ????? vq->umem = NULL; >>> ????? vq->iotlb = NULL; >>> +??? vhost_vring_call_reset(&vq->call_ctx); >>> ????? __vhost_vq_meta_reset(vq); >>> ? } >>> ? @@ -685,8 +692,8 @@ void vhost_dev_cleanup(struct vhost_dev *dev) >>> eventfd_ctx_put(dev->vqs[i]->error_ctx); >>> ????????? if (dev->vqs[i]->kick) >>> ????????????? fput(dev->vqs[i]->kick); >>> -??????? if (dev->vqs[i]->call_ctx) >>> - eventfd_ctx_put(dev->vqs[i]->call_ctx); >>> +??????? if (dev->vqs[i]-&...
2020 Aug 04
0
[PATCH V5 1/6] vhost: introduce vhost_vring_call
...e_cross_endian(vq); > vq->busyloop_timeout = 0; > vq->umem = NULL; > vq->iotlb = NULL; > + vhost_vring_call_reset(&vq->call_ctx); > __vhost_vq_meta_reset(vq); > } > > @@ -685,8 +692,8 @@ void vhost_dev_cleanup(struct vhost_dev *dev) > eventfd_ctx_put(dev->vqs[i]->error_ctx); > if (dev->vqs[i]->kick) > fput(dev->vqs[i]->kick); > - if (dev->vqs[i]->call_ctx) > - eventfd_ctx_put(dev->vqs[i]->call_ctx); > + if (dev->vqs[i]->call_ctx.ctx) > + eventfd_ctx_put(dev->vqs[i]->call...
2020 Jul 17
0
[PATCH V2 1/6] vhost: introduce vhost_call_ctx
...ble_cross_endian(vq); > vq->busyloop_timeout = 0; > vq->umem = NULL; > vq->iotlb = NULL; > + vhost_call_ctx_reset(&vq->call_ctx); > __vhost_vq_meta_reset(vq); > } > > @@ -685,8 +692,8 @@ void vhost_dev_cleanup(struct vhost_dev *dev) > eventfd_ctx_put(dev->vqs[i]->error_ctx); > if (dev->vqs[i]->kick) > fput(dev->vqs[i]->kick); > - if (dev->vqs[i]->call_ctx) > - eventfd_ctx_put(dev->vqs[i]->call_ctx); > + if (dev->vqs[i]->call_ctx.ctx) > + eventfd_ctx_put(dev->vqs[i]->call...
2020 Jul 22
0
[PATCH V3 1/6] vhost: introduce vhost_vring_call
...e_cross_endian(vq); > vq->busyloop_timeout = 0; > vq->umem = NULL; > vq->iotlb = NULL; > + vhost_vring_call_reset(&vq->call_ctx); > __vhost_vq_meta_reset(vq); > } > > @@ -685,8 +692,8 @@ void vhost_dev_cleanup(struct vhost_dev *dev) > eventfd_ctx_put(dev->vqs[i]->error_ctx); > if (dev->vqs[i]->kick) > fput(dev->vqs[i]->kick); > - if (dev->vqs[i]->call_ctx) > - eventfd_ctx_put(dev->vqs[i]->call_ctx); > + if (dev->vqs[i]->call_ctx.ctx) > + eventfd_ctx_put(dev->vqs[i]->call...
2020 Apr 26
1
[PATCH 1/2] vdpa: Support config interrupt in vhost_vdpa
...gt; { > struct vdpa_device *vdpa = v->vdpa; > @@ -288,6 +301,42 @@ static long vhost_vdpa_get_vring_num(struct vhost_vdpa *v, u16 __user *argp) > return 0; > } > > +static void vhost_vdpa_config_put(struct vhost_vdpa *v) > +{ > + if (v->config_ctx) > + eventfd_ctx_put(v->config_ctx); > +} > + > +static long vhost_vdpa_set_config_call(struct vhost_vdpa *v, u32 __user *argp) > +{ > + struct vdpa_callback cb; > + vhost_config_file file; > + struct eventfd_ctx *ctx; > + > + cb.callback = vhost_vdpa_config_cb; > + cb.private = v->v...
2020 Aug 04
0
[PATCH V5 1/6] vhost: introduce vhost_vring_call
...; > > > ????? vq->iotlb = NULL; > > > > +??? vhost_vring_call_reset(&vq->call_ctx); > > > > ????? __vhost_vq_meta_reset(vq); > > > > ? } > > > > ? @@ -685,8 +692,8 @@ void vhost_dev_cleanup(struct vhost_dev *dev) > > > > eventfd_ctx_put(dev->vqs[i]->error_ctx); > > > > ????????? if (dev->vqs[i]->kick) > > > > ????????????? fput(dev->vqs[i]->kick); > > > > -??????? if (dev->vqs[i]->call_ctx) > > > > - eventfd_ctx_put(dev->vqs[i]->call_ctx); > > >...
2020 Apr 26
3
[PATCH V2 1/2] vdpa: Support config interrupt in vhost_vdpa
...gt; { > struct vdpa_device *vdpa = v->vdpa; > @@ -288,6 +301,36 @@ static long vhost_vdpa_get_vring_num(struct vhost_vdpa *v, u16 __user *argp) > return 0; > } > > +static void vhost_vdpa_config_put(struct vhost_vdpa *v) > +{ > + if (v->config_ctx) > + eventfd_ctx_put(v->config_ctx); > +} > + > +static long vhost_vdpa_set_config_call(struct vhost_vdpa *v, u32 __user *argp) > +{ > + struct vdpa_callback cb; > + u32 fd; > + struct eventfd_ctx *ctx; > + > + cb.callback = vhost_vdpa_config_cb; > + cb.private = v->vdpa; > + if (...
2020 Apr 26
3
[PATCH V2 1/2] vdpa: Support config interrupt in vhost_vdpa
...gt; { > struct vdpa_device *vdpa = v->vdpa; > @@ -288,6 +301,36 @@ static long vhost_vdpa_get_vring_num(struct vhost_vdpa *v, u16 __user *argp) > return 0; > } > > +static void vhost_vdpa_config_put(struct vhost_vdpa *v) > +{ > + if (v->config_ctx) > + eventfd_ctx_put(v->config_ctx); > +} > + > +static long vhost_vdpa_set_config_call(struct vhost_vdpa *v, u32 __user *argp) > +{ > + struct vdpa_callback cb; > + u32 fd; > + struct eventfd_ctx *ctx; > + > + cb.callback = vhost_vdpa_config_cb; > + cb.private = v->vdpa; > + if (...
2020 Apr 26
0
[PATCH V3 1/2] vdpa: Support config interrupt in vhost_vdpa
...gt; { > struct vdpa_device *vdpa = v->vdpa; > @@ -288,6 +301,36 @@ static long vhost_vdpa_get_vring_num(struct vhost_vdpa *v, u16 __user *argp) > return 0; > } > > +static void vhost_vdpa_config_put(struct vhost_vdpa *v) > +{ > + if (v->config_ctx) > + eventfd_ctx_put(v->config_ctx); > +} > + > +static long vhost_vdpa_set_config_call(struct vhost_vdpa *v, u32 __user *argp) > +{ > + struct vdpa_callback cb; > + int fd; > + struct eventfd_ctx *ctx; > + > + cb.callback = vhost_vdpa_config_cb; > + cb.private = v->vdpa; > + if (...
2013 Apr 27
2
[PATCH v6 0/2] tcm_vhost flush
Changes in v6: - Allow device specific fields per vq - Track cmd per vq - Do not track evt - Switch to static array for inflight allocation, completely get rid of the pain to handle inflight allocation failure. Asias He (2): vhost: Allow device specific fields per vq tcm_vhost: Wait for pending requests in vhost_scsi_flush() drivers/vhost/net.c | 60 +++++++++++--------
2013 Apr 27
2
[PATCH v6 0/2] tcm_vhost flush
Changes in v6: - Allow device specific fields per vq - Track cmd per vq - Do not track evt - Switch to static array for inflight allocation, completely get rid of the pain to handle inflight allocation failure. Asias He (2): vhost: Allow device specific fields per vq tcm_vhost: Wait for pending requests in vhost_scsi_flush() drivers/vhost/net.c | 60 +++++++++++--------
2010 Sep 14
1
[PATCH] vhost: max s/g to match qemu
..._alloc_iovecs(dev); + if (err) + goto err_cgroup; + return 0; err_cgroup: kthread_stop(worker); @@ -345,6 +391,7 @@ void vhost_dev_cleanup(struct vhost_dev *dev) fput(dev->vqs[i].call); vhost_vq_reset(dev, dev->vqs + i); } + vhost_dev_free_iovecs(dev); if (dev->log_ctx) eventfd_ctx_put(dev->log_ctx); dev->log_ctx = NULL; @@ -946,7 +993,7 @@ static int get_indirect(struct vhost_dev *dev, struct vhost_virtqueue *vq, } ret = translate_desc(dev, indirect->addr, indirect->len, vq->indirect, - ARRAY_SIZE(vq->indirect)); + UIO_MAXIOV); if (unlik...
2010 Sep 14
1
[PATCH] vhost: max s/g to match qemu
..._alloc_iovecs(dev); + if (err) + goto err_cgroup; + return 0; err_cgroup: kthread_stop(worker); @@ -345,6 +391,7 @@ void vhost_dev_cleanup(struct vhost_dev *dev) fput(dev->vqs[i].call); vhost_vq_reset(dev, dev->vqs + i); } + vhost_dev_free_iovecs(dev); if (dev->log_ctx) eventfd_ctx_put(dev->log_ctx); dev->log_ctx = NULL; @@ -946,7 +993,7 @@ static int get_indirect(struct vhost_dev *dev, struct vhost_virtqueue *vq, } ret = translate_desc(dev, indirect->addr, indirect->len, vq->indirect, - ARRAY_SIZE(vq->indirect)); + UIO_MAXIOV); if (unlik...
2009 Nov 02
1
[PATCHv6 3/3] vhost_net: a kernel-level virtio server
...vhost_dev_cleanup(struct vhost_dev *dev) +{ + int i; + for (i = 0; i < dev->nvqs; ++i) { + if (dev->vqs[i].kick && dev->vqs[i].handle_kick) { + vhost_poll_stop(&dev->vqs[i].poll); + vhost_poll_flush(&dev->vqs[i].poll); + } + if (dev->vqs[i].error_ctx) + eventfd_ctx_put(dev->vqs[i].error_ctx); + if (dev->vqs[i].error) + fput(dev->vqs[i].error); + if (dev->vqs[i].kick) + fput(dev->vqs[i].kick); + if (dev->vqs[i].call_ctx) + eventfd_ctx_put(dev->vqs[i].call_ctx); + if (dev->vqs[i].call) + fput(dev->vqs[i].call); + dev->vqs[...
2009 Nov 02
1
[PATCHv6 3/3] vhost_net: a kernel-level virtio server
...vhost_dev_cleanup(struct vhost_dev *dev) +{ + int i; + for (i = 0; i < dev->nvqs; ++i) { + if (dev->vqs[i].kick && dev->vqs[i].handle_kick) { + vhost_poll_stop(&dev->vqs[i].poll); + vhost_poll_flush(&dev->vqs[i].poll); + } + if (dev->vqs[i].error_ctx) + eventfd_ctx_put(dev->vqs[i].error_ctx); + if (dev->vqs[i].error) + fput(dev->vqs[i].error); + if (dev->vqs[i].kick) + fput(dev->vqs[i].kick); + if (dev->vqs[i].call_ctx) + eventfd_ctx_put(dev->vqs[i].call_ctx); + if (dev->vqs[i].call) + fput(dev->vqs[i].call); + dev->vqs[...
2010 Aug 05
0
[PATCH RFC] vhost: max s/g to match qemu
...tex_init(&dev->vqs[i].mutex); @@ -222,6 +247,9 @@ void vhost_dev_cleanup(struct vhost_dev *dev) if (dev->vqs[i].call) fput(dev->vqs[i].call); vhost_vq_reset(dev, dev->vqs + i); + + kfree(dev->vqs[i].indirect); + kfree(dev->vqs[i].log); } if (dev->log_ctx) eventfd_ctx_put(dev->log_ctx); @@ -824,7 +852,7 @@ static int get_indirect(struct vhost_dev *dev, struct vhost_virtqueue *vq, } ret = translate_desc(dev, indirect->addr, indirect->len, vq->indirect, - ARRAY_SIZE(vq->indirect)); + UIO_MAXIOV); if (unlikely(ret < 0)) { vq_e...
2010 Aug 05
0
[PATCH RFC] vhost: max s/g to match qemu
...tex_init(&dev->vqs[i].mutex); @@ -222,6 +247,9 @@ void vhost_dev_cleanup(struct vhost_dev *dev) if (dev->vqs[i].call) fput(dev->vqs[i].call); vhost_vq_reset(dev, dev->vqs + i); + + kfree(dev->vqs[i].indirect); + kfree(dev->vqs[i].log); } if (dev->log_ctx) eventfd_ctx_put(dev->log_ctx); @@ -824,7 +852,7 @@ static int get_indirect(struct vhost_dev *dev, struct vhost_virtqueue *vq, } ret = translate_desc(dev, indirect->addr, indirect->len, vq->indirect, - ARRAY_SIZE(vq->indirect)); + UIO_MAXIOV); if (unlikely(ret < 0)) { vq_e...
2009 Nov 09
3
[PATCHv9 3/3] vhost_net: a kernel-level virtio server
...vhost_dev_cleanup(struct vhost_dev *dev) +{ + int i; + for (i = 0; i < dev->nvqs; ++i) { + if (dev->vqs[i].kick && dev->vqs[i].handle_kick) { + vhost_poll_stop(&dev->vqs[i].poll); + vhost_poll_flush(&dev->vqs[i].poll); + } + if (dev->vqs[i].error_ctx) + eventfd_ctx_put(dev->vqs[i].error_ctx); + if (dev->vqs[i].error) + fput(dev->vqs[i].error); + if (dev->vqs[i].kick) + fput(dev->vqs[i].kick); + if (dev->vqs[i].call_ctx) + eventfd_ctx_put(dev->vqs[i].call_ctx); + if (dev->vqs[i].call) + fput(dev->vqs[i].call); + vhost_vq_res...
2009 Nov 09
3
[PATCHv9 3/3] vhost_net: a kernel-level virtio server
...vhost_dev_cleanup(struct vhost_dev *dev) +{ + int i; + for (i = 0; i < dev->nvqs; ++i) { + if (dev->vqs[i].kick && dev->vqs[i].handle_kick) { + vhost_poll_stop(&dev->vqs[i].poll); + vhost_poll_flush(&dev->vqs[i].poll); + } + if (dev->vqs[i].error_ctx) + eventfd_ctx_put(dev->vqs[i].error_ctx); + if (dev->vqs[i].error) + fput(dev->vqs[i].error); + if (dev->vqs[i].kick) + fput(dev->vqs[i].kick); + if (dev->vqs[i].call_ctx) + eventfd_ctx_put(dev->vqs[i].call_ctx); + if (dev->vqs[i].call) + fput(dev->vqs[i].call); + vhost_vq_res...