Spdk/lib/vhost
Darek Stojaczyk 4fcec18d38 vhost: don't interrupt uninitialized virtqueues
rte_vhost_vring_call() from upstream DPDK can read some
unitialized memory and crash if it's called on invalid
queue ids. The implementation in our internal rte_vhost
fork ends up wiritng to a random descriptor number, which
doesn't cause any crashes but is a bug nevertheless.

To fix it, just check if the queue is initialized before
interrupting it during the session start. It's not a hot
I/O path and there's no performance impact.

Change-Id: I830c1be98ef00d4ece9a6bd88cf79b9dfe29d2a9
Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/457247
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2019-06-11 01:14:45 +00:00
..
rte_vhost vhost: abstract vring call mechanism as it is transport-specific 2019-06-03 20:14:08 +00:00
Makefile vhost: install external msg handling hooks to rte_vhost 2019-03-13 14:26:20 +00:00
rte_vhost_compat.c vhost: introduce vsession->started 2019-05-10 22:31:41 +00:00
vhost_blk.c vhost_blk: set the maximum supported data segment based on bdev 2019-06-07 05:05:22 +00:00
vhost_internal.h vhost: abstract vring call mechanism as it is transport-specific 2019-06-03 20:14:08 +00:00
vhost_nvme.c vhost: allocate device objects with regular calloc 2019-04-22 16:50:37 +00:00
vhost_rpc.c configure: add option not to use the internal rte_vhost copy 2019-03-13 14:26:20 +00:00
vhost_scsi.c vhost: introduce vsession->started 2019-05-10 22:31:41 +00:00
vhost.c vhost: don't interrupt uninitialized virtqueues 2019-06-11 01:14:45 +00:00