qemu-patch-raspberry4/hw/scsi
Nir Weiner c6d369fd78 vhost-scsi: The vhost backend should be stopped when the VM is not running
vhost-scsi doesn’t takes into account whether the VM is running or not in
order to decide if it should start/stop vhost backend.
This would lead to vhost backend still being active when VM's RunState
suddenly change to stopped.

An example of when this issue is encountered is when Live-Migration Pre-Copy
phase completes. As in this case, VM state will be changed to stopped (while
vhost backend is still active), which will result in
virtio_vmstate_change() -> virtio_set_status() -> vhost_scsi_set_status()
executed but vhost_scsi_set_status() will just return without stopping
vhost backend.

To handle this, change code to consider that vhost processing should be
stopped when VM is not running. Similar to how it is done in vhost-vsock
device at vhost_vsock_set_status().

Fixes: 5e9be92d77 ("vhost-scsi: new device supporting the tcm_vhost Linux kernel module”)
Reviewed-by: Bijan Mottahedeh <bijan.mottahedeh@oracle.com>
Reviewed-by: Liran Alon <liran.alon@oracle.com>
Signed-off-by: Nir Weiner <nir.weiner@oracle.com>
Message-Id: <20190416125912.44001-2-liran.alon@oracle.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
2019-06-02 21:32:06 -04:00
..
emulation.c scsi-generic: avoid invalid access to struct when emulating block limits 2018-11-06 21:35:06 +01:00
esp-pci.c scsi: esp: Defer command completion until previous interrupts have been handled 2019-01-11 13:57:24 +01:00
esp.c scsi: esp: Defer command completion until previous interrupts have been handled 2019-01-11 13:57:24 +01:00
Kconfig virtio: express virtio dependencies with Kconfig 2019-03-07 21:45:53 +01:00
lsi53c895a.c lsi: 810/895A are always little endian 2019-03-11 16:33:49 +01:00
Makefile.objs scsi: express dependencies with Kconfig 2019-03-07 21:45:53 +01:00
megasas.c megasas: fix mapped frame size 2019-05-15 11:56:53 +02:00
mfi.h Clean up header guards that don't match their file name 2016-07-12 16:19:16 +02:00
mpi.h hw: Add support for LSI SAS1068 (mptsas) device 2016-02-09 15:45:26 +01:00
mptconfig.c scsi: mptconfig: fix misuse of MPTSAS_CONFIG_PACK 2016-09-13 19:08:46 +02:00
mptendian.c hw/scsi/mptendian: Avoid taking address of fields in packed structs 2018-10-02 19:09:14 +02:00
mptsas.c scsi: mptsas: Mark as storage device 2018-08-23 13:32:50 +02:00
mptsas.h mptsas: really fix migration compatibility 2016-08-03 18:44:56 +02:00
scsi-bus.c qemu/queue.h: simplify reverse access to QTAILQ 2019-01-11 15:46:55 +01:00
scsi-disk.c scsi-disk: Fix crash if request is invaild or disk is no medium 2019-03-11 16:33:49 +01:00
scsi-generic.c scsi-generic: Convert from DPRINTF() macro to trace events 2019-02-05 16:50:21 +01:00
spapr_vscsi.c spapr: Use CamelCase properly 2019-03-12 14:33:05 +11:00
srp.h spapr-vscsi: add task management 2013-09-12 08:46:21 +02:00
trace-events trace-events: Shorten file names in comments 2019-03-22 16:18:07 +00:00
vhost-scsi-common.c vhost-scsi: unify vhost-scsi get_features implementations 2018-08-23 18:46:25 +02:00
vhost-scsi.c vhost-scsi: The vhost backend should be stopped when the VM is not running 2019-06-02 21:32:06 -04:00
vhost-user-scsi.c vhost: fix memory leak in vhost_user_scsi_realize 2019-05-29 18:00:57 -04:00
viosrp.h hw: move private headers to hw/ subdirectories. 2013-04-08 18:13:16 +02:00
virtio-scsi-dataplane.c Replace '-enable-kvm' with '-accel kvm' in docs and help texts 2018-06-28 19:05:32 +02:00
virtio-scsi.c virtio-scsi: Fix build with gcc 9 2019-03-11 16:33:49 +01:00
vmw_pvscsi.c qdev: pass an Object * to qbus_set_hotplug_handler() 2019-02-17 21:54:02 +11:00
vmw_pvscsi.h scsi: VMWare PVSCSI paravirtual device implementation 2013-04-19 10:44:17 +02:00