diff --git a/lib/nvmf/transport.c b/lib/nvmf/transport.c index 73dcbc240..4a2c1a209 100644 --- a/lib/nvmf/transport.c +++ b/lib/nvmf/transport.c @@ -201,16 +201,18 @@ spdk_nvmf_transport_create(const char *transport_name, struct spdk_nvmf_transpor return NULL; } - transport->data_buf_pool = spdk_mempool_create(spdk_mempool_name, - opts_local.num_shared_buffers, - opts_local.io_unit_size + NVMF_DATA_BUFFER_ALIGNMENT, - SPDK_MEMPOOL_DEFAULT_CACHE_SIZE, - SPDK_ENV_SOCKET_ID_ANY); + if (opts_local.num_shared_buffers) { + transport->data_buf_pool = spdk_mempool_create(spdk_mempool_name, + opts_local.num_shared_buffers, + opts_local.io_unit_size + NVMF_DATA_BUFFER_ALIGNMENT, + SPDK_MEMPOOL_DEFAULT_CACHE_SIZE, + SPDK_ENV_SOCKET_ID_ANY); - if (!transport->data_buf_pool) { - SPDK_ERRLOG("Unable to allocate buffer pool for poll group\n"); - ops->destroy(transport, NULL, NULL); - return NULL; + if (!transport->data_buf_pool) { + SPDK_ERRLOG("Unable to allocate buffer pool for poll group\n"); + ops->destroy(transport, NULL, NULL); + return NULL; + } } return transport; @@ -239,10 +241,9 @@ spdk_nvmf_transport_destroy(struct spdk_nvmf_transport *transport, spdk_mempool_count(transport->data_buf_pool), transport->opts.num_shared_buffers); } + spdk_mempool_free(transport->data_buf_pool); } - spdk_mempool_free(transport->data_buf_pool); - return transport->ops->destroy(transport, cb_fn, cb_arg); } diff --git a/lib/nvmf/vfio_user.c b/lib/nvmf/vfio_user.c index 502118c88..ef2513044 100644 --- a/lib/nvmf/vfio_user.c +++ b/lib/nvmf/vfio_user.c @@ -57,7 +57,7 @@ #define NVMF_VFIO_USER_DEFAULT_IN_CAPSULE_DATA_SIZE 0 #define NVMF_VFIO_USER_DEFAULT_MAX_IO_SIZE ((NVMF_REQ_MAX_BUFFERS - 1) << SHIFT_4KB) #define NVMF_VFIO_USER_DEFAULT_IO_UNIT_SIZE NVMF_VFIO_USER_DEFAULT_MAX_IO_SIZE -#define NVMF_VFIO_USER_DEFAULT_NUM_SHARED_BUFFERS 512 /* internal buf size */ +#define NVMF_VFIO_USER_DEFAULT_NUM_SHARED_BUFFERS 0 /* internal buf size */ #define NVMF_VFIO_USER_DEFAULT_BUFFER_CACHE_SIZE 0 #define NVMF_VFIO_USER_DOORBELLS_OFFSET 0x1000