Loading drivers/virtio/virtio_pci.c +15 −12 Original line number Diff line number Diff line Loading @@ -530,13 +530,17 @@ static int vp_try_to_find_vqs(struct virtio_device *vdev, unsigned nvqs, err = PTR_ERR(vqs[i]); goto error_find; } if (!vp_dev->per_vq_vectors || msix_vec == VIRTIO_MSI_NO_VECTOR) continue; /* allocate per-vq irq if available and necessary */ if (vp_dev->per_vq_vectors) { snprintf(vp_dev->msix_names[msix_vec], sizeof *vp_dev->msix_names, "%s-%s", dev_name(&vp_dev->vdev.dev), names[i]); err = request_irq(msix_vec, vring_interrupt, 0, err = request_irq(vp_dev->msix_entries[msix_vec].vector, vring_interrupt, 0, vp_dev->msix_names[msix_vec], vqs[i]); if (err) { Loading @@ -544,7 +548,6 @@ static int vp_try_to_find_vqs(struct virtio_device *vdev, unsigned nvqs, goto error_find; } } } return 0; error_find: Loading drivers/virtio/virtio_ring.c +3 −0 Original line number Diff line number Diff line Loading @@ -285,6 +285,9 @@ static void *vring_get_buf(struct virtqueue *_vq, unsigned int *len) return NULL; } /* Only get used array entries after they have been exposed by host. */ rmb(); i = vq->vring.used->ring[vq->last_used_idx%vq->vring.num].id; *len = vq->vring.used->ring[vq->last_used_idx%vq->vring.num].len; Loading Loading
drivers/virtio/virtio_pci.c +15 −12 Original line number Diff line number Diff line Loading @@ -530,13 +530,17 @@ static int vp_try_to_find_vqs(struct virtio_device *vdev, unsigned nvqs, err = PTR_ERR(vqs[i]); goto error_find; } if (!vp_dev->per_vq_vectors || msix_vec == VIRTIO_MSI_NO_VECTOR) continue; /* allocate per-vq irq if available and necessary */ if (vp_dev->per_vq_vectors) { snprintf(vp_dev->msix_names[msix_vec], sizeof *vp_dev->msix_names, "%s-%s", dev_name(&vp_dev->vdev.dev), names[i]); err = request_irq(msix_vec, vring_interrupt, 0, err = request_irq(vp_dev->msix_entries[msix_vec].vector, vring_interrupt, 0, vp_dev->msix_names[msix_vec], vqs[i]); if (err) { Loading @@ -544,7 +548,6 @@ static int vp_try_to_find_vqs(struct virtio_device *vdev, unsigned nvqs, goto error_find; } } } return 0; error_find: Loading
drivers/virtio/virtio_ring.c +3 −0 Original line number Diff line number Diff line Loading @@ -285,6 +285,9 @@ static void *vring_get_buf(struct virtqueue *_vq, unsigned int *len) return NULL; } /* Only get used array entries after they have been exposed by host. */ rmb(); i = vq->vring.used->ring[vq->last_used_idx%vq->vring.num].id; *len = vq->vring.used->ring[vq->last_used_idx%vq->vring.num].len; Loading