Lines Matching refs:ctx

33 		eventfd_signal(vdev->ctx[0].trigger, 1);
52 } else if (!vdev->ctx[0].masked) {
62 vdev->ctx[0].masked = true;
90 } else if (vdev->ctx[0].masked && !vdev->virq_disabled) {
102 vdev->ctx[0].masked = (ret > 0);
126 vdev->ctx[0].masked = true;
128 } else if (!vdev->ctx[0].masked && /* may be shared */
130 vdev->ctx[0].masked = true;
150 vdev->ctx = kzalloc(sizeof(struct vfio_pci_irq_ctx), GFP_KERNEL);
151 if (!vdev->ctx)
162 vdev->ctx[0].masked = vdev->virq_disabled;
164 pci_intx(vdev->pdev, !vdev->ctx[0].masked);
179 if (vdev->ctx[0].trigger) {
181 kfree(vdev->ctx[0].name);
182 eventfd_ctx_put(vdev->ctx[0].trigger);
183 vdev->ctx[0].trigger = NULL;
189 vdev->ctx[0].name = kasprintf(GFP_KERNEL, "vfio-intx(%s)",
191 if (!vdev->ctx[0].name)
196 kfree(vdev->ctx[0].name);
200 vdev->ctx[0].trigger = trigger;
206 irqflags, vdev->ctx[0].name, vdev);
208 vdev->ctx[0].trigger = NULL;
209 kfree(vdev->ctx[0].name);
219 if (!vdev->pci_2_3 && vdev->ctx[0].masked)
228 vfio_virqfd_disable(&vdev->ctx[0].unmask);
229 vfio_virqfd_disable(&vdev->ctx[0].mask);
233 kfree(vdev->ctx);
257 vdev->ctx = kcalloc(nvec, sizeof(struct vfio_pci_irq_ctx), GFP_KERNEL);
258 if (!vdev->ctx)
268 kfree(vdev->ctx);
301 if (vdev->ctx[vector].trigger) {
302 irq_bypass_unregister_producer(&vdev->ctx[vector].producer);
305 free_irq(irq, vdev->ctx[vector].trigger);
308 kfree(vdev->ctx[vector].name);
309 eventfd_ctx_put(vdev->ctx[vector].trigger);
310 vdev->ctx[vector].trigger = NULL;
316 vdev->ctx[vector].name = kasprintf(GFP_KERNEL, "vfio-msi%s[%d](%s)",
319 if (!vdev->ctx[vector].name)
324 kfree(vdev->ctx[vector].name);
344 vdev->ctx[vector].name, trigger);
347 kfree(vdev->ctx[vector].name);
352 vdev->ctx[vector].producer.token = trigger;
353 vdev->ctx[vector].producer.irq = irq;
354 ret = irq_bypass_register_producer(&vdev->ctx[vector].producer);
358 vdev->ctx[vector].producer.token, ret);
360 vdev->ctx[vector].producer.token = NULL;
362 vdev->ctx[vector].trigger = trigger;
395 vfio_virqfd_disable(&vdev->ctx[i].unmask);
396 vfio_virqfd_disable(&vdev->ctx[i].mask);
414 kfree(vdev->ctx);
439 &vdev->ctx[0].unmask, fd);
441 vfio_virqfd_disable(&vdev->ctx[0].unmask);
548 if (!vdev->ctx[i].trigger)
551 eventfd_signal(vdev->ctx[i].trigger, 1);
555 eventfd_signal(vdev->ctx[i].trigger, 1);
561 static int vfio_pci_set_ctx_trigger_single(struct eventfd_ctx **ctx,
567 if (*ctx) {
569 eventfd_signal(*ctx, 1);
571 eventfd_ctx_put(*ctx);
572 *ctx = NULL;
583 if (trigger && *ctx)
584 eventfd_signal(*ctx, 1);
595 if (*ctx)
596 eventfd_ctx_put(*ctx);
597 *ctx = NULL;
605 if (*ctx)
606 eventfd_ctx_put(*ctx);
608 *ctx = efdctx;