Displaying 6 results from an estimated 6 matches for "vm_free_irq".
Did you mean:
vm_free_irqs
2014 Nov 06
2
[RFC PATCH] virtio-mmio: support for multiple irqs
...;> + return vm_vring_interrupt(irq, opaque);
>>
>> return ret;
>> }
>> @@ -284,18 +313,98 @@ static void vm_del_vq(struct virtqueue *vq)
>> kfree(info);
>> }
>>
>> -static void vm_del_vqs(struct virtio_device *vdev)
>> +static void vm_free_irqs(struct virtio_device *vdev)
>> {
>> + int i;
>> struct virtio_mmio_device *vm_dev = to_virtio_mmio_device(vdev);
>> +
>> + if (vm_dev->single_irq_enabled) {
>> + free_irq(platform_get_irq(vm_dev->pdev, 0), vm_dev);
>> + vm_dev->single_irq_ena...
2014 Nov 06
2
[RFC PATCH] virtio-mmio: support for multiple irqs
...;> + return vm_vring_interrupt(irq, opaque);
>>
>> return ret;
>> }
>> @@ -284,18 +313,98 @@ static void vm_del_vq(struct virtqueue *vq)
>> kfree(info);
>> }
>>
>> -static void vm_del_vqs(struct virtio_device *vdev)
>> +static void vm_free_irqs(struct virtio_device *vdev)
>> {
>> + int i;
>> struct virtio_mmio_device *vm_dev = to_virtio_mmio_device(vdev);
>> +
>> + if (vm_dev->single_irq_enabled) {
>> + free_irq(platform_get_irq(vm_dev->pdev, 0), vm_dev);
>> + vm_dev->single_irq_ena...
2014 Nov 06
0
[RFC PATCH] virtio-mmio: support for multiple irqs
...status & VIRTIO_MMIO_INT_VRING))
> + return vm_vring_interrupt(irq, opaque);
>
> return ret;
> }
> @@ -284,18 +313,98 @@ static void vm_del_vq(struct virtqueue *vq)
> kfree(info);
> }
>
> -static void vm_del_vqs(struct virtio_device *vdev)
> +static void vm_free_irqs(struct virtio_device *vdev)
> {
> + int i;
> struct virtio_mmio_device *vm_dev = to_virtio_mmio_device(vdev);
> +
> + if (vm_dev->single_irq_enabled) {
> + free_irq(platform_get_irq(vm_dev->pdev, 0), vm_dev);
> + vm_dev->single_irq_enabled = 0;
> + }
> +
&g...
2014 Nov 06
0
[RFC PATCH] virtio-mmio: support for multiple irqs
...e);
> >>
> >> return ret;
> >> }
> >> @@ -284,18 +313,98 @@ static void vm_del_vq(struct virtqueue *vq)
> >> kfree(info);
> >> }
> >>
> >> -static void vm_del_vqs(struct virtio_device *vdev)
> >> +static void vm_free_irqs(struct virtio_device *vdev)
> >> {
> >> + int i;
> >> struct virtio_mmio_device *vm_dev = to_virtio_mmio_device(vdev);
> >> +
> >> + if (vm_dev->single_irq_enabled) {
> >> + free_irq(platform_get_irq(vm_dev->pdev, 0), vm_dev);
> &g...
2014 Nov 04
6
[RFC PATCH] virtio-mmio: support for multiple irqs
...re(&vm_dev->lock, flags);
- }
+ if (likely(status & VIRTIO_MMIO_INT_VRING))
+ return vm_vring_interrupt(irq, opaque);
return ret;
}
@@ -284,18 +313,98 @@ static void vm_del_vq(struct virtqueue *vq)
kfree(info);
}
-static void vm_del_vqs(struct virtio_device *vdev)
+static void vm_free_irqs(struct virtio_device *vdev)
{
+ int i;
struct virtio_mmio_device *vm_dev = to_virtio_mmio_device(vdev);
+
+ if (vm_dev->single_irq_enabled) {
+ free_irq(platform_get_irq(vm_dev->pdev, 0), vm_dev);
+ vm_dev->single_irq_enabled = 0;
+ }
+
+ for (i = 0; i < vm_dev->used_irqs; ++i)...
2014 Nov 04
6
[RFC PATCH] virtio-mmio: support for multiple irqs
...re(&vm_dev->lock, flags);
- }
+ if (likely(status & VIRTIO_MMIO_INT_VRING))
+ return vm_vring_interrupt(irq, opaque);
return ret;
}
@@ -284,18 +313,98 @@ static void vm_del_vq(struct virtqueue *vq)
kfree(info);
}
-static void vm_del_vqs(struct virtio_device *vdev)
+static void vm_free_irqs(struct virtio_device *vdev)
{
+ int i;
struct virtio_mmio_device *vm_dev = to_virtio_mmio_device(vdev);
+
+ if (vm_dev->single_irq_enabled) {
+ free_irq(platform_get_irq(vm_dev->pdev, 0), vm_dev);
+ vm_dev->single_irq_enabled = 0;
+ }
+
+ for (i = 0; i < vm_dev->used_irqs; ++i)...