From c0ddb423e0ee77290f23fde6dcc2a17c260ab777 Mon Sep 17 00:00:00 2001 From: John Levon Date: Sat, 7 Jan 2023 18:37:48 +0000 Subject: [PATCH] nvmf/vfio-user: use req->iov consistently Use req->iov as needed, to make it easier to remove req->data later. Signed-off-by: John Levon Change-Id: Id23c4ef8018d6a7aad42c3d5054fa9addcf16f0a Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/16195 Tested-by: SPDK CI Jenkins Reviewed-by: Ben Walker Reviewed-by: Aleksey Marchuk Reviewed-by: Jim Harris --- lib/nvmf/vfio_user.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/nvmf/vfio_user.c b/lib/nvmf/vfio_user.c index 0317f5c84..fd351bbbf 100644 --- a/lib/nvmf/vfio_user.c +++ b/lib/nvmf/vfio_user.c @@ -2841,7 +2841,7 @@ nvmf_vfio_user_prop_req_rsp(struct nvmf_vfio_user_req *req, void *cb_arg) assert(sq->ctrlr != NULL); assert(req != NULL); - memcpy(req->req.data, + memcpy(req->req.iov[0].iov_base, &req->req.rsp->prop_get_rsp.value.u64, req->req.length); return 0; @@ -2960,6 +2960,7 @@ vfio_user_property_access(struct nvmf_vfio_user_ctrlr *vu_ctrlr, req->req.cmd->prop_get_cmd.fctype = SPDK_NVMF_FABRIC_COMMAND_PROPERTY_GET; } req->req.length = count; + spdk_iov_one(req->req.iov, &req->req.iovcnt, buf, req->req.length); req->req.data = buf; spdk_nvmf_request_exec_fabrics(&req->req); @@ -5126,7 +5127,9 @@ handle_queue_connect_rsp(struct nvmf_vfio_user_req *req, void *cb_arg) TAILQ_INSERT_TAIL(&vu_ctrlr->connected_sqs, sq, tailq); pthread_mutex_unlock(&endpoint->lock); - free(req->req.data); + free(req->req.iov[0].iov_base); + req->req.iov[0].iov_base = NULL; + req->req.iovcnt = 0; req->req.data = NULL; return 0;