1
0
Fork 0
alistair23-linux/drivers/virtio
Jason Wang de85ec8b07 virtio_pci: fix out of bound access for msix_names
Fedora has received multiple reports of crashes when running
4.11 as a guest

https://bugzilla.redhat.com/show_bug.cgi?id=1430297
https://bugzilla.redhat.com/show_bug.cgi?id=1434462
https://bugzilla.kernel.org/show_bug.cgi?id=194911
https://bugzilla.redhat.com/show_bug.cgi?id=1433899

The crashes are not always consistent but they are generally
some flavor of oops or GPF in virtio related code. Multiple people
have done bisections (Thank you Thorsten Leemhuis and
Richard W.M. Jones) and found this commit to be at fault

07ec51480b is the first bad commit
commit 07ec51480b
Author: Christoph Hellwig <hch@lst.de>
Date:   Sun Feb 5 18:15:19 2017 +0100

    virtio_pci: use shared interrupts for virtqueues

The issue seems to be an out of bounds access to the msix_names
array corrupting kernel memory.

Fixes: 07ec51480b ("virtio_pci: use shared interrupts for virtqueues")
Reported-by: Laura Abbott <labbott@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Tested-by: Richard W.M. Jones <rjones@redhat.com>
Tested-by: Thorsten Leemhuis <linux@leemhuis.info>
2017-03-28 20:40:53 +03:00
..
Kconfig docs: fix locations of several documents that got moved 2016-10-24 08:12:35 -02:00
Makefile Add virtio-input driver. 2015-03-29 12:13:52 +10:30
virtio.c virtio_net: refactor freeze/restore logic into virtnet reset logic 2017-02-07 10:05:12 -05:00
virtio_balloon.c Merge branch 'WIP.sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-03-03 10:16:38 -08:00
virtio_input.c virtio: allow drivers to request IRQ affinity when creating VQs 2017-02-27 20:54:04 +02:00
virtio_mmio.c virtio: allow drivers to request IRQ affinity when creating VQs 2017-02-27 20:54:04 +02:00
virtio_pci_common.c virtio_pci: fix out of bound access for msix_names 2017-03-28 20:40:53 +03:00
virtio_pci_common.h virtio: provide a method to get the IRQ affinity mask for a virtqueue 2017-02-27 20:54:05 +02:00
virtio_pci_legacy.c virtio: provide a method to get the IRQ affinity mask for a virtqueue 2017-02-27 20:54:05 +02:00
virtio_pci_modern.c virtio: provide a method to get the IRQ affinity mask for a virtqueue 2017-02-27 20:54:05 +02:00
virtio_ring.c Revert "vring: Force use of DMA API for ARM-based systems with legacy devices" 2017-02-03 23:38:50 +02:00