diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-04-10 12:42:51 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-04-10 12:42:51 -0400 |
| commit | ed79cc87302bf7fbc87f05d655b998f866b4fed8 (patch) | |
| tree | cec766af1bf668d2f34fdc7221e4ece20e609691 | |
| parent | e33c1b9923775d17ad246946fe67fcb9be288677 (diff) | |
| parent | cf94db21905333e610e479688add629397a4b384 (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-- | MAINTAINERS | 15 | ||||
| -rw-r--r-- | drivers/virtio/virtio_pci_common.c | 8 | ||||
| -rw-r--r-- | drivers/virtio/virtio_ring.c | 2 | ||||
| -rw-r--r-- | include/linux/virtio_ring.h | 2 |
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 | |||
| 16509 | F: include/linux/virtio_console.h | 16509 | F: include/linux/virtio_console.h |
| 16510 | F: include/uapi/linux/virtio_console.h | 16510 | F: include/uapi/linux/virtio_console.h |
| 16511 | 16511 | ||
| 16512 | VIRTIO CORE, NET AND BLOCK DRIVERS | 16512 | VIRTIO CORE AND NET DRIVERS |
| 16513 | M: "Michael S. Tsirkin" <mst@redhat.com> | 16513 | M: "Michael S. Tsirkin" <mst@redhat.com> |
| 16514 | M: Jason Wang <jasowang@redhat.com> | 16514 | M: Jason Wang <jasowang@redhat.com> |
| 16515 | L: virtualization@lists.linux-foundation.org | 16515 | L: virtualization@lists.linux-foundation.org |
| @@ -16524,6 +16524,19 @@ F: include/uapi/linux/virtio_*.h | |||
| 16524 | F: drivers/crypto/virtio/ | 16524 | F: drivers/crypto/virtio/ |
| 16525 | F: mm/balloon_compaction.c | 16525 | F: mm/balloon_compaction.c |
| 16526 | 16526 | ||
| 16527 | VIRTIO BLOCK AND SCSI DRIVERS | ||
| 16528 | M: "Michael S. Tsirkin" <mst@redhat.com> | ||
| 16529 | M: Jason Wang <jasowang@redhat.com> | ||
| 16530 | R: Paolo Bonzini <pbonzini@redhat.com> | ||
| 16531 | R: Stefan Hajnoczi <stefanha@redhat.com> | ||
| 16532 | L: virtualization@lists.linux-foundation.org | ||
| 16533 | S: Maintained | ||
| 16534 | F: drivers/block/virtio_blk.c | ||
| 16535 | F: drivers/scsi/virtio_scsi.c | ||
| 16536 | F: include/uapi/linux/virtio_blk.h | ||
| 16537 | F: include/uapi/linux/virtio_scsi.h | ||
| 16538 | F: drivers/vhost/scsi.c | ||
| 16539 | |||
| 16527 | VIRTIO CRYPTO DRIVER | 16540 | VIRTIO CRYPTO DRIVER |
| 16528 | M: Gonglei <arei.gonglei@huawei.com> | 16541 | M: Gonglei <arei.gonglei@huawei.com> |
| 16529 | L: virtualization@lists.linux-foundation.org | 16542 | L: 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 | */ |
| 69 | struct virtqueue *vring_create_virtqueue(unsigned int index, | 69 | struct virtqueue *vring_create_virtqueue(unsigned int index, |
