From aacac0b4330c6d79c2f88403a192a697f43f8843 Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Sat, 13 Jun 2020 16:16:35 +0900 Subject: [PATCH] lib/nvme: Get ctrlr simply from req->qpair->ctrlr at spdk_nvme_ctrlr_cmd_abort() req->qpair and qpair->ctrlr are set at their initialization, and hence we don't have to store ctrlr to req->user_buffer but we can get ctrlr simply from req->qpair->ctrlr. Besides, save a local variable by overwriting qpair when it is NULL. This is also a small clean up. Signed-off-by: Shuhei Matsumoto Change-Id: I1cca763fbaae55079b38f7f16fcf779360232797 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/2890 Community-CI: Broadcom CI Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins Reviewed-by: Ben Walker Reviewed-by: Aleksey Marchuk Reviewed-by: Michael Haeuptle --- lib/nvme/nvme_ctrlr_cmd.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/lib/nvme/nvme_ctrlr_cmd.c b/lib/nvme/nvme_ctrlr_cmd.c index 2a354d688..5c68f5b63 100644 --- a/lib/nvme/nvme_ctrlr_cmd.c +++ b/lib/nvme/nvme_ctrlr_cmd.c @@ -610,11 +610,10 @@ _nvme_ctrlr_submit_abort_request(struct spdk_nvme_ctrlr *ctrlr, static void nvme_ctrlr_cmd_abort_cpl(void *ctx, const struct spdk_nvme_cpl *cpl) { - struct nvme_request *req; + struct nvme_request *req = ctx; struct spdk_nvme_ctrlr *ctrlr; - req = ctx; - ctrlr = (struct spdk_nvme_ctrlr *)req->user_buffer; + ctrlr = req->qpair->ctrlr; ctrlr->outstanding_aborts--; nvme_ctrlr_retry_queued_abort(ctrlr); @@ -629,12 +628,9 @@ spdk_nvme_ctrlr_cmd_abort(struct spdk_nvme_ctrlr *ctrlr, struct spdk_nvme_qpair int rc; struct nvme_request *req; struct spdk_nvme_cmd *cmd; - uint16_t sqid; - if (qpair) { - sqid = qpair->id; - } else { - sqid = ctrlr->adminq->id; /* 0 */ + if (qpair == NULL) { + qpair = ctrlr->adminq; } nvme_robust_mutex_lock(&ctrlr->ctrlr_lock); @@ -646,12 +642,10 @@ spdk_nvme_ctrlr_cmd_abort(struct spdk_nvme_ctrlr *ctrlr, struct spdk_nvme_qpair req->cb_arg = req; req->user_cb_fn = cb_fn; req->user_cb_arg = cb_arg; - req->user_buffer = ctrlr; /* This is a hack to get to the ctrlr in the - * completion handler. */ cmd = &req->cmd; cmd->opc = SPDK_NVME_OPC_ABORT; - cmd->cdw10_bits.abort.sqid = sqid; + cmd->cdw10_bits.abort.sqid = qpair->id; cmd->cdw10_bits.abort.cid = cid; rc = _nvme_ctrlr_submit_abort_request(ctrlr, req);