ublk: remove ublk_ctrl_cmd args parameter

We don't need this parameter - it is simpler to
just determine the argument data (if any) in the
function itself based on the opcode.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: Ic8df8f9ec569c10ebb565efc7268fba1d50bcdf5
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/16452
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
This commit is contained in:
Jim Harris 2023-01-24 18:56:11 +00:00 committed by Tomasz Zawadzki
parent cde0c555ab
commit 4fd4f6367f

View File

@ -233,15 +233,12 @@ ublk_ctrl_poller(void *arg)
} }
static int static int
ublk_ctrl_cmd(struct spdk_ublk_dev *ublk, uint32_t cmd_op, void *args) ublk_ctrl_cmd(struct spdk_ublk_dev *ublk, uint32_t cmd_op)
{ {
uint32_t dev_id = ublk->ublk_id; uint32_t dev_id = ublk->ublk_id;
int rc = -EINVAL; int rc = -EINVAL;
struct io_uring_sqe *sqe; struct io_uring_sqe *sqe;
struct ublksrv_ctrl_cmd *cmd; struct ublksrv_ctrl_cmd *cmd;
int *ublk_pid;
struct ublksrv_ctrl_dev_info *dev_info;
struct ublk_params *params;
sqe = io_uring_get_sqe(&g_ublk_tgt.ctrl_ring); sqe = io_uring_get_sqe(&g_ublk_tgt.ctrl_ring);
if (!sqe) { if (!sqe) {
@ -258,22 +255,19 @@ ublk_ctrl_cmd(struct spdk_ublk_dev *ublk, uint32_t cmd_op, void *args)
switch (cmd_op) { switch (cmd_op) {
case UBLK_CMD_START_DEV: case UBLK_CMD_START_DEV:
ublk_pid = args; cmd->data[0] = getpid();
cmd->data[0] = *ublk_pid;
cmd->data[1] = 0; cmd->data[1] = 0;
break; break;
case UBLK_CMD_ADD_DEV: case UBLK_CMD_ADD_DEV:
dev_info = args; cmd->addr = (__u64)(uintptr_t)&ublk->dev_info;
cmd->addr = (__u64)(uintptr_t)(dev_info); cmd->len = sizeof(ublk->dev_info);
cmd->len = sizeof(*dev_info);
break; break;
case UBLK_CMD_STOP_DEV: case UBLK_CMD_STOP_DEV:
case UBLK_CMD_DEL_DEV: case UBLK_CMD_DEL_DEV:
break; break;
case UBLK_CMD_SET_PARAMS: case UBLK_CMD_SET_PARAMS:
params = args; cmd->addr = (__u64)(uintptr_t)&ublk->dev_params;
cmd->addr = (__u64)(uintptr_t)params; cmd->len = sizeof(ublk->dev_params);
cmd->len = sizeof(*params);
break; break;
default: default:
SPDK_ERRLOG("No match cmd operation,cmd_op = %d\n", cmd_op); SPDK_ERRLOG("No match cmd operation,cmd_op = %d\n", cmd_op);
@ -456,7 +450,7 @@ ublk_start_kernel(void *arg)
int rc; int rc;
assert(ublk->dev_info.ublksrv_pid == getpid()); assert(ublk->dev_info.ublksrv_pid == getpid());
rc = ublk_ctrl_cmd(ublk, UBLK_CMD_START_DEV, &ublk->dev_info.ublksrv_pid); rc = ublk_ctrl_cmd(ublk, UBLK_CMD_START_DEV);
if (rc < 0) { if (rc < 0) {
SPDK_ERRLOG("start dev %d failed, rc %s\n", ublk->ublk_id, SPDK_ERRLOG("start dev %d failed, rc %s\n", ublk->ublk_id,
spdk_strerror(-rc)); spdk_strerror(-rc));
@ -470,7 +464,7 @@ ublk_stop_kernel(struct spdk_ublk_dev *ublk)
{ {
int rc; int rc;
rc = ublk_ctrl_cmd(ublk, UBLK_CMD_STOP_DEV, NULL); rc = ublk_ctrl_cmd(ublk, UBLK_CMD_STOP_DEV);
if (rc < 0) { if (rc < 0) {
SPDK_ERRLOG("stop dev %d failed\n", ublk->ublk_id); SPDK_ERRLOG("stop dev %d failed\n", ublk->ublk_id);
} }
@ -672,7 +666,7 @@ ublk_close_dev_done(void *arg)
close(ublk->cdev_fd); close(ublk->cdev_fd);
} }
rc = ublk_ctrl_cmd(ublk, UBLK_CMD_DEL_DEV, NULL); rc = ublk_ctrl_cmd(ublk, UBLK_CMD_DEL_DEV);
if (rc < 0) { if (rc < 0) {
SPDK_ERRLOG("delete dev %d failed\n", ublk->ublk_id); SPDK_ERRLOG("delete dev %d failed\n", ublk->ublk_id);
} }
@ -1177,7 +1171,7 @@ _ublk_start_disk(struct spdk_ublk_dev *ublk)
{ {
int rc; int rc;
rc = ublk_ctrl_cmd(ublk, UBLK_CMD_ADD_DEV, &ublk->dev_info); rc = ublk_ctrl_cmd(ublk, UBLK_CMD_ADD_DEV);
if (rc < 0) { if (rc < 0) {
SPDK_ERRLOG("UBLK can't add dev %d, rc %s\n", ublk->ublk_id, spdk_strerror(-rc)); SPDK_ERRLOG("UBLK can't add dev %d, rc %s\n", ublk->ublk_id, spdk_strerror(-rc));
} }
@ -1191,7 +1185,7 @@ ublk_set_params(struct spdk_ublk_dev *ublk)
int rc; int rc;
ublk->dev_params.len = sizeof(struct ublk_params); ublk->dev_params.len = sizeof(struct ublk_params);
rc = ublk_ctrl_cmd(ublk, UBLK_CMD_SET_PARAMS, &ublk->dev_params); rc = ublk_ctrl_cmd(ublk, UBLK_CMD_SET_PARAMS);
if (rc < 0) { if (rc < 0) {
SPDK_ERRLOG("UBLK can't set params for dev %d, rc %s\n", ublk->ublk_id, spdk_strerror(-rc)); SPDK_ERRLOG("UBLK can't set params for dev %d, rc %s\n", ublk->ublk_id, spdk_strerror(-rc));
_ublk_try_close_dev(ublk); _ublk_try_close_dev(ublk);