From dd3ec6e6b541f54aff5a8154ecd1ffc9fff155e1 Mon Sep 17 00:00:00 2001 From: Pawel Wodkowski Date: Wed, 9 Aug 2017 18:59:53 +0200 Subject: [PATCH] vhost: pull out common features to vhost_internal.h Change-Id: Ie247d7a0266d253769d7bd7d9fa60227749bd502 Signed-off-by: Pawel Wodkowski Reviewed-on: https://review.gerrithub.io/373577 Reviewed-by: Jim Harris Reviewed-by: Ben Walker Tested-by: SPDK Automated Test System Reviewed-by: Dariusz Stojaczyk --- lib/vhost/vhost_blk.c | 5 ++--- lib/vhost/vhost_internal.h | 11 +++++++++++ lib/vhost/vhost_scsi.c | 7 ++----- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/lib/vhost/vhost_blk.c b/lib/vhost/vhost_blk.c index 6ccef3255..2b0a86282 100644 --- a/lib/vhost/vhost_blk.c +++ b/lib/vhost/vhost_blk.c @@ -606,15 +606,14 @@ spdk_vhost_blk_dump_config_json(struct spdk_vhost_dev *vdev, struct spdk_json_wr } static const struct spdk_vhost_dev_backend vhost_blk_device_backend = { - .virtio_features = (1ULL << VHOST_F_LOG_ALL) | (1ULL << VHOST_USER_F_PROTOCOL_FEATURES) | - (1ULL << VIRTIO_F_VERSION_1) | (1ULL << VIRTIO_F_NOTIFY_ON_EMPTY) | + .virtio_features = SPDK_VHOST_FEATURES | (1ULL << VIRTIO_BLK_F_SIZE_MAX) | (1ULL << VIRTIO_BLK_F_SEG_MAX) | (1ULL << VIRTIO_BLK_F_GEOMETRY) | (1ULL << VIRTIO_BLK_F_RO) | (1ULL << VIRTIO_BLK_F_BLK_SIZE) | (1ULL << VIRTIO_BLK_F_TOPOLOGY) | (1ULL << VIRTIO_BLK_F_BARRIER) | (1ULL << VIRTIO_BLK_F_SCSI) | (1ULL << VIRTIO_BLK_F_FLUSH) | (1ULL << VIRTIO_BLK_F_CONFIG_WCE) | (1ULL << VIRTIO_BLK_F_MQ), - .disabled_features = (1ULL << VHOST_F_LOG_ALL) | (1ULL << VIRTIO_BLK_F_GEOMETRY) | + .disabled_features = SPDK_VHOST_DISABLED_FEATURES | (1ULL << VIRTIO_BLK_F_GEOMETRY) | (1ULL << VIRTIO_BLK_F_RO) | (1ULL << VIRTIO_BLK_F_FLUSH) | (1ULL << VIRTIO_BLK_F_CONFIG_WCE) | (1ULL << VIRTIO_BLK_F_BARRIER) | (1ULL << VIRTIO_BLK_F_SCSI), .dump_config_json = spdk_vhost_blk_dump_config_json, diff --git a/lib/vhost/vhost_internal.h b/lib/vhost/vhost_internal.h index 2b0e0b338..5bfb69ac9 100644 --- a/lib/vhost/vhost_internal.h +++ b/lib/vhost/vhost_internal.h @@ -66,6 +66,17 @@ #define SPDK_VHOST_IOVS_MAX 128 +#define SPDK_VHOST_FEATURES ((1ULL << VHOST_F_LOG_ALL) | \ + (1ULL << VHOST_USER_F_PROTOCOL_FEATURES) | \ + (1ULL << VIRTIO_F_VERSION_1) | \ + (1ULL << VIRTIO_F_NOTIFY_ON_EMPTY) | \ + (1ULL << VIRTIO_RING_F_EVENT_IDX) | \ + (1ULL << VIRTIO_RING_F_INDIRECT_DESC)) + +#define SPDK_VHOST_DISABLED_FEATURES ((1ULL << VHOST_F_LOG_ALL) | \ + (1ULL << VIRTIO_RING_F_EVENT_IDX) | \ + (1ULL << VIRTIO_RING_F_INDIRECT_DESC)) + enum spdk_vhost_dev_type { SPDK_VHOST_DEV_T_SCSI, SPDK_VHOST_DEV_T_BLK, diff --git a/lib/vhost/vhost_scsi.c b/lib/vhost/vhost_scsi.c index b5e9fa738..1bfc8dde7 100644 --- a/lib/vhost/vhost_scsi.c +++ b/lib/vhost/vhost_scsi.c @@ -49,10 +49,7 @@ #include "spdk_internal/assert.h" /* Features supported by SPDK VHOST lib. */ -#define SPDK_VHOST_SCSI_FEATURES ((1ULL << VIRTIO_F_VERSION_1) | \ - (1ULL << VHOST_F_LOG_ALL) | \ - (1ULL << VHOST_USER_F_PROTOCOL_FEATURES) | \ - (1ULL << VIRTIO_F_NOTIFY_ON_EMPTY) | \ +#define SPDK_VHOST_SCSI_FEATURES (SPDK_VHOST_FEATURES | \ (1ULL << VIRTIO_SCSI_F_INOUT) | \ (1ULL << VIRTIO_SCSI_F_HOTPLUG) | \ (1ULL << VIRTIO_SCSI_F_CHANGE ) | \ @@ -62,7 +59,7 @@ * - Live migration not supported yet * - T10 PI */ -#define SPDK_VHOST_SCSI_DISABLED_FEATURES ((1ULL << VHOST_F_LOG_ALL) | \ +#define SPDK_VHOST_SCSI_DISABLED_FEATURES (SPDK_VHOST_DISABLED_FEATURES | \ (1ULL << VIRTIO_SCSI_F_T10_PI )) #define MGMT_POLL_PERIOD_US (1000 * 5)