diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/virtio/virtio_pci_common.c | 8 | ||||
| -rw-r--r-- | drivers/virtio/virtio_ring.c | 2 |
2 files changed, 7 insertions, 3 deletions
diff --git a/drivers/virtio/virtio_pci_common.c b/drivers/virtio/virtio_pci_common.c index d0584c040c60..7a0398bb84f7 100644 --- a/drivers/virtio/virtio_pci_common.c +++ b/drivers/virtio/virtio_pci_common.c | |||
| @@ -255,9 +255,11 @@ void vp_del_vqs(struct virtio_device *vdev) | |||
| 255 | for (i = 0; i < vp_dev->msix_used_vectors; ++i) | 255 | for (i = 0; i < vp_dev->msix_used_vectors; ++i) |
| 256 | free_irq(pci_irq_vector(vp_dev->pci_dev, i), vp_dev); | 256 | free_irq(pci_irq_vector(vp_dev->pci_dev, i), vp_dev); |
| 257 | 257 | ||
| 258 | for (i = 0; i < vp_dev->msix_vectors; i++) | 258 | if (vp_dev->msix_affinity_masks) { |
| 259 | if (vp_dev->msix_affinity_masks[i]) | 259 | for (i = 0; i < vp_dev->msix_vectors; i++) |
| 260 | free_cpumask_var(vp_dev->msix_affinity_masks[i]); | 260 | if (vp_dev->msix_affinity_masks[i]) |
| 261 | free_cpumask_var(vp_dev->msix_affinity_masks[i]); | ||
| 262 | } | ||
| 261 | 263 | ||
| 262 | if (vp_dev->msix_enabled) { | 264 | if (vp_dev->msix_enabled) { |
| 263 | /* Disable the vector used for configuration */ | 265 | /* Disable the vector used for configuration */ |
diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c index 18846afb39da..5df92c308286 100644 --- a/drivers/virtio/virtio_ring.c +++ b/drivers/virtio/virtio_ring.c | |||
| @@ -882,6 +882,8 @@ static struct virtqueue *vring_create_virtqueue_split( | |||
| 882 | GFP_KERNEL|__GFP_NOWARN|__GFP_ZERO); | 882 | GFP_KERNEL|__GFP_NOWARN|__GFP_ZERO); |
| 883 | if (queue) | 883 | if (queue) |
| 884 | break; | 884 | break; |
| 885 | if (!may_reduce_num) | ||
| 886 | return NULL; | ||
| 885 | } | 887 | } |
| 886 | 888 | ||
| 887 | if (!num) | 889 | if (!num) |
