aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-03-01 09:16:21 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2010-03-01 09:16:21 -0800
commit4805a1b0e6d74feb6428c05116a2886a076ee341 (patch)
tree7390fc1dfabe79f01971c2c219b519c9b89a635b
parentMerge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm (diff)
parentvirtio: fix out of range array access (diff)
downloadlinux-dev-4805a1b0e6d74feb6428c05116a2886a076ee341.tar.xz
linux-dev-4805a1b0e6d74feb6428c05116a2886a076ee341.zip
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: virtio: fix out of range array access
-rw-r--r--drivers/virtio/virtio_pci.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/virtio/virtio_pci.c b/drivers/virtio/virtio_pci.c
index 1d5191fab62e..1b6573216998 100644
--- a/drivers/virtio/virtio_pci.c
+++ b/drivers/virtio/virtio_pci.c
@@ -473,7 +473,8 @@ static void vp_del_vqs(struct virtio_device *vdev)
list_for_each_entry_safe(vq, n, &vdev->vqs, list) {
info = vq->priv;
- if (vp_dev->per_vq_vectors)
+ if (vp_dev->per_vq_vectors &&
+ info->msix_vector != VIRTIO_MSI_NO_VECTOR)
free_irq(vp_dev->msix_entries[info->msix_vector].vector,
vq);
vp_del_vq(vq);