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

+22 -5
+14 -1
MAINTAINERS
··· 16509 F: include/linux/virtio_console.h 16510 F: include/uapi/linux/virtio_console.h 16511 16512 - VIRTIO CORE, NET AND BLOCK DRIVERS 16513 M: "Michael S. Tsirkin" <mst@redhat.com> 16514 M: Jason Wang <jasowang@redhat.com> 16515 L: virtualization@lists.linux-foundation.org ··· 16523 F: include/uapi/linux/virtio_*.h 16524 F: drivers/crypto/virtio/ 16525 F: mm/balloon_compaction.c 16526 16527 VIRTIO CRYPTO DRIVER 16528 M: Gonglei <arei.gonglei@huawei.com>
··· 16509 F: include/linux/virtio_console.h 16510 F: include/uapi/linux/virtio_console.h 16511 16512 + VIRTIO CORE AND NET DRIVERS 16513 M: "Michael S. Tsirkin" <mst@redhat.com> 16514 M: Jason Wang <jasowang@redhat.com> 16515 L: virtualization@lists.linux-foundation.org ··· 16523 F: include/uapi/linux/virtio_*.h 16524 F: drivers/crypto/virtio/ 16525 F: mm/balloon_compaction.c 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 16540 VIRTIO CRYPTO DRIVER 16541 M: Gonglei <arei.gonglei@huawei.com>
+5 -3
drivers/virtio/virtio_pci_common.c
··· 255 for (i = 0; i < vp_dev->msix_used_vectors; ++i) 256 free_irq(pci_irq_vector(vp_dev->pci_dev, i), vp_dev); 257 258 - for (i = 0; i < vp_dev->msix_vectors; i++) 259 - if (vp_dev->msix_affinity_masks[i]) 260 - free_cpumask_var(vp_dev->msix_affinity_masks[i]); 261 262 if (vp_dev->msix_enabled) { 263 /* Disable the vector used for configuration */
··· 255 for (i = 0; i < vp_dev->msix_used_vectors; ++i) 256 free_irq(pci_irq_vector(vp_dev->pci_dev, i), vp_dev); 257 258 + if (vp_dev->msix_affinity_masks) { 259 + for (i = 0; i < vp_dev->msix_vectors; i++) 260 + if (vp_dev->msix_affinity_masks[i]) 261 + free_cpumask_var(vp_dev->msix_affinity_masks[i]); 262 + } 263 264 if (vp_dev->msix_enabled) { 265 /* Disable the vector used for configuration */
+2
drivers/virtio/virtio_ring.c
··· 882 GFP_KERNEL|__GFP_NOWARN|__GFP_ZERO); 883 if (queue) 884 break; 885 } 886 887 if (!num)
··· 882 GFP_KERNEL|__GFP_NOWARN|__GFP_ZERO); 883 if (queue) 884 break; 885 + if (!may_reduce_num) 886 + return NULL; 887 } 888 889 if (!num)
+1 -1
include/linux/virtio_ring.h
··· 63 /* 64 * Creates a virtqueue and allocates the descriptor ring. If 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 67 * the actual size of the ring. 68 */ 69 struct virtqueue *vring_create_virtqueue(unsigned int index,
··· 63 /* 64 * Creates a virtqueue and allocates the descriptor ring. If 65 * may_reduce_num is set, then this may allocate a smaller ring than 66 + * expected. The caller should query virtqueue_get_vring_size to learn 67 * the actual size of the ring. 68 */ 69 struct virtqueue *vring_create_virtqueue(unsigned int index,