aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2019-04-10 12:42:51 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2019-04-10 12:42:51 -0400
commited79cc87302bf7fbc87f05d655b998f866b4fed8 (patch)
treecec766af1bf668d2f34fdc7221e4ece20e609691
parente33c1b9923775d17ad246946fe67fcb9be288677 (diff)
parentcf94db21905333e610e479688add629397a4b384 (diff)
Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost
Pull virtio fixes from Michael Tsirkin: "Several fixes, add more reviewers to the list" * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: virtio: Honour 'may_reduce_num' in vring_create_virtqueue MAiNTAINERS: add Paolo, Stefan for virtio blk/scsi virtio_pci: fix a NULL pointer reference in vp_del_vqs
-rw-r--r--MAINTAINERS15
-rw-r--r--drivers/virtio/virtio_pci_common.c8
-rw-r--r--drivers/virtio/virtio_ring.c2
-rw-r--r--include/linux/virtio_ring.h2
4 files changed, 22 insertions, 5 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index 27b0de13506c..3671fdea5010 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -16509,7 +16509,7 @@ F: drivers/char/virtio_console.c
16509F: include/linux/virtio_console.h 16509F: include/linux/virtio_console.h
16510F: include/uapi/linux/virtio_console.h 16510F: include/uapi/linux/virtio_console.h
16511 16511
16512VIRTIO CORE, NET AND BLOCK DRIVERS 16512VIRTIO CORE AND NET DRIVERS
16513M: "Michael S. Tsirkin" <mst@redhat.com> 16513M: "Michael S. Tsirkin" <mst@redhat.com>
16514M: Jason Wang <jasowang@redhat.com> 16514M: Jason Wang <jasowang@redhat.com>
16515L: virtualization@lists.linux-foundation.org 16515L: virtualization@lists.linux-foundation.org
@@ -16524,6 +16524,19 @@ F: include/uapi/linux/virtio_*.h
16524F: drivers/crypto/virtio/ 16524F: drivers/crypto/virtio/
16525F: mm/balloon_compaction.c 16525F: mm/balloon_compaction.c
16526 16526
16527VIRTIO BLOCK AND SCSI DRIVERS
16528M: "Michael S. Tsirkin" <mst@redhat.com>
16529M: Jason Wang <jasowang@redhat.com>
16530R: Paolo Bonzini <pbonzini@redhat.com>
16531R: Stefan Hajnoczi <stefanha@redhat.com>
16532L: virtualization@lists.linux-foundation.org
16533S: Maintained
16534F: drivers/block/virtio_blk.c
16535F: drivers/scsi/virtio_scsi.c
16536F: include/uapi/linux/virtio_blk.h
16537F: include/uapi/linux/virtio_scsi.h
16538F: drivers/vhost/scsi.c
16539
16527VIRTIO CRYPTO DRIVER 16540VIRTIO CRYPTO DRIVER
16528M: Gonglei <arei.gonglei@huawei.com> 16541M: Gonglei <arei.gonglei@huawei.com>
16529L: virtualization@lists.linux-foundation.org 16542L: virtualization@lists.linux-foundation.org
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)
diff --git a/include/linux/virtio_ring.h b/include/linux/virtio_ring.h
index fab02133a919..3dc70adfe5f5 100644
--- a/include/linux/virtio_ring.h
+++ b/include/linux/virtio_ring.h
@@ -63,7 +63,7 @@ struct virtqueue;
63/* 63/*
64 * Creates a virtqueue and allocates the descriptor ring. If 64 * Creates a virtqueue and allocates the descriptor ring. If
65 * may_reduce_num is set, then this may allocate a smaller ring than 65 * may_reduce_num is set, then this may allocate a smaller ring than
66 * expected. The caller should query virtqueue_get_ring_size to learn 66 * expected. The caller should query virtqueue_get_vring_size to learn
67 * the actual size of the ring. 67 * the actual size of the ring.
68 */ 68 */
69struct virtqueue *vring_create_virtqueue(unsigned int index, 69struct virtqueue *vring_create_virtqueue(unsigned int index,