xemu/hw/virtio
Laurent Vivier 2d9e7d4cdd virtio-mmio: fix guest kernel crash with SHM regions
In the kernel, virtio_gpu_init() uses virtio_get_shm_region()
since
commit 6076a9711dc5 ("drm/virtio: implement blob resources: probe for host visible region")
but vm_get_shm_region() unconditionally uses VIRTIO_MMIO_SHM_SEL to
get the address and the length of the region.

commit 38e895487afc ("virtio: Implement get_shm_region for MMIO transport"

As this is not implemented in QEMU, address and length are 0 and passed
as is to devm_request_mem_region() that triggers a crash:

  [drm:virtio_gpu_init] *ERROR* Could not reserve host visible region
  Unable to handle kernel NULL pointer dereference at virtual address (ptrval)

According to the comments in the kernel, a non existent shared region
has a length of (u64)-1.

This is what we return now with this patch to disable the region.

Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20201220163539.2255963-1-laurent@vivier.eu>
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2021-02-05 08:52:58 -05:00
..
Kconfig
meson.build
trace-events
trace.h
vhost-backend.c
vhost-scsi-pci.c
vhost-stub.c
vhost-user-blk-pci.c
vhost-user-fs-pci.c vhost-user-fs: add the "bootindex" property 2021-01-13 09:06:37 -05:00
vhost-user-fs.c vhost-user-fs: add the "bootindex" property 2021-01-13 09:06:37 -05:00
vhost-user-input-pci.c
vhost-user-scsi-pci.c
vhost-user-vsock-pci.c
vhost-user-vsock.c qdev: Move softmmu properties to qdev-properties-system.h 2020-12-18 15:20:17 -05:00
vhost-user.c
vhost-vdpa.c
vhost-vsock-common.c Remove superfluous timer_del() calls 2021-01-08 15:13:38 +00:00
vhost-vsock-pci.c
vhost-vsock.c
vhost.c
virtio-9p-pci.c
virtio-balloon-pci.c
virtio-balloon.c Remove superfluous timer_del() calls 2021-01-08 15:13:38 +00:00
virtio-blk-pci.c
virtio-bus.c
virtio-crypto-pci.c
virtio-crypto.c
virtio-input-host-pci.c
virtio-input-pci.c
virtio-iommu-pci.c qdev: Move softmmu properties to qdev-properties-system.h 2020-12-18 15:20:17 -05:00
virtio-iommu.c machine: introduce MachineInitPhase 2020-12-15 12:51:52 -05:00
virtio-mem-pci.c
virtio-mem-pci.h
virtio-mem.c
virtio-mmio.c virtio-mmio: fix guest kernel crash with SHM regions 2021-02-05 08:52:58 -05:00
virtio-net-pci.c
virtio-pci.c hw/virtio-pci: Replace error_report() by qemu_log_mask(GUEST_ERROR) 2021-01-18 11:51:26 +01:00
virtio-pci.h hw/virtio-pci Added AER capability. 2020-12-09 13:04:17 -05:00
virtio-pmem-pci.c
virtio-pmem-pci.h
virtio-pmem.c
virtio-rng-pci.c
virtio-rng.c Remove superfluous timer_del() calls 2021-01-08 15:13:38 +00:00
virtio-scsi-pci.c
virtio-serial-pci.c
virtio.c migration: Replace migration's JSON writer by the general one 2020-12-19 10:39:16 +01:00