Lines Matching refs:irqs

49 	if (!(vdev->irqs[index].flags & VFIO_IRQ_INFO_MASKABLE))
56 return vfio_virqfd_enable((void *) &vdev->irqs[index],
59 &vdev->irqs[index].mask, fd);
61 vfio_virqfd_disable(&vdev->irqs[index].mask);
66 vfio_platform_mask(&vdev->irqs[index]);
72 vfio_platform_mask(&vdev->irqs[index]);
109 if (!(vdev->irqs[index].flags & VFIO_IRQ_INFO_MASKABLE))
116 return vfio_virqfd_enable((void *) &vdev->irqs[index],
119 &vdev->irqs[index].unmask,
122 vfio_virqfd_disable(&vdev->irqs[index].unmask);
127 vfio_platform_unmask(&vdev->irqs[index]);
133 vfio_platform_unmask(&vdev->irqs[index]);
185 struct vfio_platform_irq *irq = &vdev->irqs[index];
220 struct vfio_platform_irq *irq = &vdev->irqs[index];
223 if (vdev->irqs[index].flags & VFIO_IRQ_INFO_AUTOMASKED)
266 if (IS_ERR(vdev->irqs[index].name))
267 return PTR_ERR(vdev->irqs[index].name);
294 vdev->irqs = kcalloc(cnt, sizeof(struct vfio_platform_irq),
296 if (!vdev->irqs)
308 spin_lock_init(&vdev->irqs[i].lock);
310 vdev->irqs[i].flags = VFIO_IRQ_INFO_EVENTFD;
313 vdev->irqs[i].flags |= VFIO_IRQ_INFO_MASKABLE
318 vdev->irqs[i].count = 1;
319 vdev->irqs[i].hwirq = hwirq;
320 vdev->irqs[i].masked = false;
321 vdev->irqs[i].name = kasprintf(GFP_KERNEL_ACCOUNT,
324 if (!vdev->irqs[i].name) {
330 vdev->irqs[i].name, &vdev->irqs[i]);
332 kfree(vdev->irqs[i].name);
333 vdev->irqs[i].name = ERR_PTR(ret);
342 if (!IS_ERR(vdev->irqs[i].name)) {
343 free_irq(vdev->irqs[i].hwirq, &vdev->irqs[i]);
344 kfree(vdev->irqs[i].name);
347 kfree(vdev->irqs);
356 vfio_virqfd_disable(&vdev->irqs[i].mask);
357 vfio_virqfd_disable(&vdev->irqs[i].unmask);
358 if (!IS_ERR(vdev->irqs[i].name)) {
359 free_irq(vdev->irqs[i].hwirq, &vdev->irqs[i]);
360 if (vdev->irqs[i].trigger)
361 eventfd_ctx_put(vdev->irqs[i].trigger);
362 kfree(vdev->irqs[i].name);
367 kfree(vdev->irqs);