bdev/nvme: use a local variable for the command

Change-Id: Icce2d39fb74b13116c43dbb517c9245d71f3771b
Signed-off-by: GangCao <gang.cao@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15659
Reviewed-by: wanghailiang <hailiangx.e.wang@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
This commit is contained in:
GangCao 2022-11-28 00:21:10 -05:00 committed by Tomasz Zawadzki
parent 0da97a15cc
commit b7a612b149

View File

@ -936,7 +936,7 @@ rpc_bdev_nvme_apply_firmware(struct spdk_jsonrpc_request *request,
struct spdk_bdev *bdev2; struct spdk_bdev *bdev2;
struct open_descriptors *opt; struct open_descriptors *opt;
struct spdk_bdev_desc *desc; struct spdk_bdev_desc *desc;
struct spdk_nvme_cmd *cmd; struct spdk_nvme_cmd cmd = {};
struct firmware_update_info *firm_ctx; struct firmware_update_info *firm_ctx;
firm_ctx = calloc(1, sizeof(struct firmware_update_info)); firm_ctx = calloc(1, sizeof(struct firmware_update_info));
@ -1060,25 +1060,17 @@ rpc_bdev_nvme_apply_firmware(struct spdk_jsonrpc_request *request,
firm_ctx->size_remaining = firm_ctx->size; firm_ctx->size_remaining = firm_ctx->size;
firm_ctx->transfer = spdk_min(firm_ctx->size_remaining, 4096); firm_ctx->transfer = spdk_min(firm_ctx->size_remaining, 4096);
cmd = malloc(sizeof(struct spdk_nvme_cmd)); cmd.opc = SPDK_NVME_OPC_FIRMWARE_IMAGE_DOWNLOAD;
if (!cmd) { cmd.cdw10 = spdk_nvme_bytes_to_numd(firm_ctx->transfer);
snprintf(msg, sizeof(msg), "Memory allocation error."); cmd.cdw11 = firm_ctx->offset >> 2;
goto err;
}
memset(cmd, 0, sizeof(struct spdk_nvme_cmd));
cmd->opc = SPDK_NVME_OPC_FIRMWARE_IMAGE_DOWNLOAD;
cmd->cdw10 = spdk_nvme_bytes_to_numd(firm_ctx->transfer); rc = spdk_bdev_nvme_admin_passthru(firm_ctx->desc, firm_ctx->ch, &cmd, firm_ctx->p,
cmd->cdw11 = firm_ctx->offset >> 2;
rc = spdk_bdev_nvme_admin_passthru(firm_ctx->desc, firm_ctx->ch, cmd, firm_ctx->p,
firm_ctx->transfer, apply_firmware_complete, firm_ctx); firm_ctx->transfer, apply_firmware_complete, firm_ctx);
if (rc == 0) { if (rc == 0) {
/* normal return here. */ /* normal return here. */
return; return;
} }
free(cmd);
snprintf(msg, sizeof(msg), "Read firmware image failed!"); snprintf(msg, sizeof(msg), "Read firmware image failed!");
err: err:
spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INTERNAL_ERROR, msg); spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INTERNAL_ERROR, msg);