search for: out_request_irq

Displaying 14 results from an estimated 14 matches for "out_request_irq".

2009 Jul 23
1
[PATCHv2 1/2] virtio: fix double free_irq on device removal
...names, "%s-%s", dev_name(&vp_dev->vdev.dev), name); err = request_irq(vp_dev->msix_entries[vector].vector, @@ -423,10 +424,7 @@ static struct virtqueue *vp_find_vq(struct virtio_device *vdev, unsigned index, vp_dev->msix_names[vector], vq); if (err) goto out_request_irq; - info->vector = vector; - ++vp_dev->msix_used_vectors; - } else - vector = VP_MSIX_VQ_VECTOR; + } if (callback && vp_dev->msix_enabled) { iowrite16(vector, vp_dev->ioaddr + VIRTIO_MSI_QUEUE_VECTOR); @@ -444,10 +442,8 @@ static struct virtqueue *vp_find_vq(struct vir...
2009 Jul 23
1
[PATCHv2 1/2] virtio: fix double free_irq on device removal
...names, "%s-%s", dev_name(&vp_dev->vdev.dev), name); err = request_irq(vp_dev->msix_entries[vector].vector, @@ -423,10 +424,7 @@ static struct virtqueue *vp_find_vq(struct virtio_device *vdev, unsigned index, vp_dev->msix_names[vector], vq); if (err) goto out_request_irq; - info->vector = vector; - ++vp_dev->msix_used_vectors; - } else - vector = VP_MSIX_VQ_VECTOR; + } if (callback && vp_dev->msix_enabled) { iowrite16(vector, vp_dev->ioaddr + VIRTIO_MSI_QUEUE_VECTOR); @@ -444,10 +442,8 @@ static struct virtqueue *vp_find_vq(struct vir...
2009 Apr 27
0
[PATCH 8/8] virtio_pci: optional MSI-X support
...ck_irqrestore(&vp_dev->lock, flags); + /* allocate per-vq irq if neccessary */ + if (vp_dev->msix_per_vq_vectors) { + err = request_irq(vp_dev->msix_entries[vq_vector(index)].vector, + vring_interrupt, 0, + vp_dev->msix_names[vq_vector(index)], vq); + if (err) + goto out_request_irq; + } + return vq; +out_request_irq: + vring_del_virtqueue(vq); out_activate_queue: iowrite32(0, vp_dev->ioaddr + VIRTIO_PCI_QUEUE_PFN); free_pages_exact(info->queue, size); @@ -302,6 +420,11 @@ static void vp_del_vq(struct virtqueue *vq) struct virtio_pci_vq_info *info = vq->pri...
2009 Apr 27
0
[PATCH 8/8] virtio_pci: optional MSI-X support
...ck_irqrestore(&vp_dev->lock, flags); + /* allocate per-vq irq if neccessary */ + if (vp_dev->msix_per_vq_vectors) { + err = request_irq(vp_dev->msix_entries[vq_vector(index)].vector, + vring_interrupt, 0, + vp_dev->msix_names[vq_vector(index)], vq); + if (err) + goto out_request_irq; + } + return vq; +out_request_irq: + vring_del_virtqueue(vq); out_activate_queue: iowrite32(0, vp_dev->ioaddr + VIRTIO_PCI_QUEUE_PFN); free_pages_exact(info->queue, size); @@ -302,6 +420,11 @@ static void vp_del_vq(struct virtqueue *vq) struct virtio_pci_vq_info *info = vq->pri...
2009 May 07
1
[PATCH 3/3] virtio_pci: optional MSI-X support
...cessary */ + /* FIXME */ + vector = VP_MSIX_VQ_VECTOR + vp_dev->msix_per_vq_vectors; + if (vp_dev->msix_per_vq_vectors && callback) { + err = request_irq(vp_dev->msix_entries[vector].vector, + vring_interrupt, 0, + vp_dev->msix_names[vector], vq); + if (err) + goto out_request_irq; + info->vector = vector; + vp_dev->msix_per_vq_vectors--; + } + + if (vp_dev->msix_enabled) + iowrite16(vector, vp_dev->ioaddr + VIRTIO_MSI_QUEUE_VECTOR); + return vq; +out_request_irq: + vring_del_virtqueue(vq); out_activate_queue: iowrite32(0, vp_dev->ioaddr + VIRTIO_PCI...
2009 May 07
1
[PATCH 3/3] virtio_pci: optional MSI-X support
...cessary */ + /* FIXME */ + vector = VP_MSIX_VQ_VECTOR + vp_dev->msix_per_vq_vectors; + if (vp_dev->msix_per_vq_vectors && callback) { + err = request_irq(vp_dev->msix_entries[vector].vector, + vring_interrupt, 0, + vp_dev->msix_names[vector], vq); + if (err) + goto out_request_irq; + info->vector = vector; + vp_dev->msix_per_vq_vectors--; + } + + if (vp_dev->msix_enabled) + iowrite16(vector, vp_dev->ioaddr + VIRTIO_MSI_QUEUE_VECTOR); + return vq; +out_request_irq: + vring_del_virtqueue(vq); out_activate_queue: iowrite32(0, vp_dev->ioaddr + VIRTIO_PCI...
2009 May 14
1
[PATCHv6 4/4] virtio_pci: optional MSI-X support
...ctors; + snprintf(vp_dev->msix_names[vector], sizeof *vp_dev->msix_names, + "%s-%s", dev_name(&vp_dev->vdev.dev), name); + err = request_irq(vp_dev->msix_entries[vector].vector, + vring_interrupt, 0, + vp_dev->msix_names[vector], vq); + if (err) + goto out_request_irq; + info->vector = vector; + ++vp_dev->msix_used_vectors; + } else + vector = VP_MSIX_VQ_VECTOR; + + if (callback && vp_dev->msix_enabled) { + iowrite16(vector, vp_dev->ioaddr + VIRTIO_MSI_QUEUE_VECTOR); + vector = ioread16(vp_dev->ioaddr + VIRTIO_MSI_QUEUE_VECTOR); + i...
2009 May 14
1
[PATCHv6 4/4] virtio_pci: optional MSI-X support
...ctors; + snprintf(vp_dev->msix_names[vector], sizeof *vp_dev->msix_names, + "%s-%s", dev_name(&vp_dev->vdev.dev), name); + err = request_irq(vp_dev->msix_entries[vector].vector, + vring_interrupt, 0, + vp_dev->msix_names[vector], vq); + if (err) + goto out_request_irq; + info->vector = vector; + ++vp_dev->msix_used_vectors; + } else + vector = VP_MSIX_VQ_VECTOR; + + if (callback && vp_dev->msix_enabled) { + iowrite16(vector, vp_dev->ioaddr + VIRTIO_MSI_QUEUE_VECTOR); + vector = ioread16(vp_dev->ioaddr + VIRTIO_MSI_QUEUE_VECTOR); + i...
2009 Jul 26
0
[PATCHv3 2/2] virtio: refactor find_vqs
...ctors; - snprintf(vp_dev->msix_names[vector], sizeof *vp_dev->msix_names, - "%s-%s", dev_name(&vp_dev->vdev.dev), name); - err = request_irq(vp_dev->msix_entries[vector].vector, - vring_interrupt, 0, - vp_dev->msix_names[vector], vq); - if (err) - goto out_request_irq; - info->vector = vector; - ++vp_dev->msix_used_vectors; - } else - vector = VP_MSIX_VQ_VECTOR; - - if (callback && vp_dev->msix_enabled) { + if (vector != VIRTIO_MSI_NO_VECTOR) { iowrite16(vector, vp_dev->ioaddr + VIRTIO_MSI_QUEUE_VECTOR); vector = ioread16(vp_dev-&g...
2009 Jul 26
0
[PATCHv3 2/2] virtio: refactor find_vqs
...ctors; - snprintf(vp_dev->msix_names[vector], sizeof *vp_dev->msix_names, - "%s-%s", dev_name(&vp_dev->vdev.dev), name); - err = request_irq(vp_dev->msix_entries[vector].vector, - vring_interrupt, 0, - vp_dev->msix_names[vector], vq); - if (err) - goto out_request_irq; - info->vector = vector; - ++vp_dev->msix_used_vectors; - } else - vector = VP_MSIX_VQ_VECTOR; - - if (callback && vp_dev->msix_enabled) { + if (vector != VIRTIO_MSI_NO_VECTOR) { iowrite16(vector, vp_dev->ioaddr + VIRTIO_MSI_QUEUE_VECTOR); vector = ioread16(vp_dev-&g...
2009 May 13
1
[PATCHv5 3/3] virtio_pci: optional MSI-X support
...ctors; + snprintf(vp_dev->msix_names[vector], sizeof *vp_dev->msix_names, + "%s-%s", dev_name(&vp_dev->vdev.dev), name); + err = request_irq(vp_dev->msix_entries[vector].vector, + vring_interrupt, 0, + vp_dev->msix_names[vector], vq); + if (err) + goto out_request_irq; + info->vector = vector; + ++vp_dev->msix_used_vectors; + } else + vector = VP_MSIX_VQ_VECTOR; + + if (callback && vp_dev->msix_enabled) { + iowrite16(vector, vp_dev->ioaddr + VIRTIO_MSI_QUEUE_VECTOR); + vector = ioread16(vp_dev->ioaddr + VIRTIO_MSI_QUEUE_VECTOR); + i...
2009 May 13
1
[PATCHv5 3/3] virtio_pci: optional MSI-X support
...ctors; + snprintf(vp_dev->msix_names[vector], sizeof *vp_dev->msix_names, + "%s-%s", dev_name(&vp_dev->vdev.dev), name); + err = request_irq(vp_dev->msix_entries[vector].vector, + vring_interrupt, 0, + vp_dev->msix_names[vector], vq); + if (err) + goto out_request_irq; + info->vector = vector; + ++vp_dev->msix_used_vectors; + } else + vector = VP_MSIX_VQ_VECTOR; + + if (callback && vp_dev->msix_enabled) { + iowrite16(vector, vp_dev->ioaddr + VIRTIO_MSI_QUEUE_VECTOR); + vector = ioread16(vp_dev->ioaddr + VIRTIO_MSI_QUEUE_VECTOR); + i...
2009 Jul 26
1
[PATCHv4 2/2] virtio: refactor find_vqs
...ctors; - snprintf(vp_dev->msix_names[vector], sizeof *vp_dev->msix_names, - "%s-%s", dev_name(&vp_dev->vdev.dev), name); - err = request_irq(vp_dev->msix_entries[vector].vector, - vring_interrupt, 0, - vp_dev->msix_names[vector], vq); - if (err) - goto out_request_irq; - info->vector = vector; - ++vp_dev->msix_used_vectors; - } else - vector = VP_MSIX_VQ_VECTOR; - - if (callback && vp_dev->msix_enabled) { + if (vector != VIRTIO_MSI_NO_VECTOR) { iowrite16(vector, vp_dev->ioaddr + VIRTIO_MSI_QUEUE_VECTOR); vector = ioread16(vp_dev-&g...
2009 Jul 26
1
[PATCHv4 2/2] virtio: refactor find_vqs
...ctors; - snprintf(vp_dev->msix_names[vector], sizeof *vp_dev->msix_names, - "%s-%s", dev_name(&vp_dev->vdev.dev), name); - err = request_irq(vp_dev->msix_entries[vector].vector, - vring_interrupt, 0, - vp_dev->msix_names[vector], vq); - if (err) - goto out_request_irq; - info->vector = vector; - ++vp_dev->msix_used_vectors; - } else - vector = VP_MSIX_VQ_VECTOR; - - if (callback && vp_dev->msix_enabled) { + if (vector != VIRTIO_MSI_NO_VECTOR) { iowrite16(vector, vp_dev->ioaddr + VIRTIO_MSI_QUEUE_VECTOR); vector = ioread16(vp_dev-&g...