Lines Matching refs:ctrl
125 * @ctrl: Host NVMe controller instance which we got the address
129 int nvmf_get_address(struct nvme_ctrl *ctrl, char *buf, int size)
133 if (ctrl->opts->mask & NVMF_OPT_TRADDR)
134 len += scnprintf(buf, size, "traddr=%s", ctrl->opts->traddr);
135 if (ctrl->opts->mask & NVMF_OPT_TRSVCID)
137 (len) ? "," : "", ctrl->opts->trsvcid);
138 if (ctrl->opts->mask & NVMF_OPT_HOST_TRADDR)
140 (len) ? "," : "", ctrl->opts->host_traddr);
141 if (ctrl->opts->mask & NVMF_OPT_HOST_IFACE)
143 (len) ? "," : "", ctrl->opts->host_iface);
152 * @ctrl: Host NVMe controller instance maintaining the admin
171 int nvmf_reg_read32(struct nvme_ctrl *ctrl, u32 off, u32 *val)
181 ret = __nvme_submit_sync_cmd(ctrl->fabrics_q, &cmd, &res, NULL, 0,
187 dev_err(ctrl->device,
197 * @ctrl: Host NVMe controller instance maintaining the admin
216 int nvmf_reg_read64(struct nvme_ctrl *ctrl, u32 off, u64 *val)
227 ret = __nvme_submit_sync_cmd(ctrl->fabrics_q, &cmd, &res, NULL, 0,
233 dev_err(ctrl->device,
242 * @ctrl: Host NVMe controller instance maintaining the admin
261 int nvmf_reg_write32(struct nvme_ctrl *ctrl, u32 off, u32 val)
272 ret = __nvme_submit_sync_cmd(ctrl->fabrics_q, &cmd, NULL, NULL, 0,
275 dev_err(ctrl->device,
285 * @ctrl: The specific /dev/nvmeX device that had the error.
293 static void nvmf_log_connect_error(struct nvme_ctrl *ctrl,
300 dev_err(ctrl->device,
312 dev_err(ctrl->device,
317 dev_err(ctrl->device,
322 dev_err(ctrl->device,
327 dev_err(ctrl->device,
337 dev_err(ctrl->device,
342 dev_err(ctrl->device,
349 dev_err(ctrl->device,
354 dev_err(ctrl->device,
358 dev_err(ctrl->device,
363 dev_err(ctrl->device,
367 dev_err(ctrl->device,
371 dev_err(ctrl->device,
378 static struct nvmf_connect_data *nvmf_connect_data_prep(struct nvme_ctrl *ctrl,
387 uuid_copy(&data->hostid, &ctrl->opts->host->id);
389 strncpy(data->subsysnqn, ctrl->opts->subsysnqn, NVMF_NQN_SIZE);
390 strncpy(data->hostnqn, ctrl->opts->host->nqn, NVMF_NQN_SIZE);
395 static void nvmf_connect_cmd_prep(struct nvme_ctrl *ctrl, u16 qid,
403 cmd->connect.sqsize = cpu_to_le16(ctrl->sqsize);
410 cmd->connect.kato = cpu_to_le32(ctrl->kato * 1000);
413 if (ctrl->opts->disable_sqflow)
420 * @ctrl: Host nvme controller instance used to request
437 int nvmf_connect_admin_queue(struct nvme_ctrl *ctrl)
445 nvmf_connect_cmd_prep(ctrl, 0, &cmd);
447 data = nvmf_connect_data_prep(ctrl, 0xffff);
451 ret = __nvme_submit_sync_cmd(ctrl->fabrics_q, &cmd, &res,
455 nvmf_log_connect_error(ctrl, ret, le32_to_cpu(res.u32),
461 ctrl->cntlid = result & 0xFFFF;
465 dev_warn(ctrl->device,
471 ret = nvme_auth_negotiate(ctrl, 0);
473 dev_warn(ctrl->device,
478 ret = nvme_auth_wait(ctrl, 0);
480 dev_warn(ctrl->device,
483 dev_info(ctrl->device,
495 * @ctrl: Host nvme controller instance used to establish an
512 int nvmf_connect_io_queue(struct nvme_ctrl *ctrl, u16 qid)
520 nvmf_connect_cmd_prep(ctrl, qid, &cmd);
522 data = nvmf_connect_data_prep(ctrl, ctrl->cntlid);
526 ret = __nvme_submit_sync_cmd(ctrl->connect_q, &cmd, &res,
530 nvmf_log_connect_error(ctrl, ret, le32_to_cpu(res.u32),
537 dev_warn(ctrl->device,
543 ret = nvme_auth_negotiate(ctrl, qid);
545 dev_warn(ctrl->device,
549 ret = nvme_auth_wait(ctrl, qid);
551 dev_warn(ctrl->device,
561 bool nvmf_should_reconnect(struct nvme_ctrl *ctrl)
563 if (ctrl->opts->max_reconnects == -1 ||
564 ctrl->nr_reconnects < ctrl->opts->max_reconnects)
961 pr_warn("unknown parameter or missing value '%s' in ctrl creation request\n",
1032 void nvmf_map_queues(struct blk_mq_tag_set *set, struct nvme_ctrl *ctrl,
1035 struct nvmf_ctrl_options *opts = ctrl->opts;
1067 dev_info(ctrl->device,
1095 bool nvmf_ip_options_match(struct nvme_ctrl *ctrl,
1098 if (!nvmf_ctlr_matches_baseopts(ctrl, opts) ||
1099 strcmp(opts->traddr, ctrl->opts->traddr) ||
1100 strcmp(opts->trsvcid, ctrl->opts->trsvcid))
1117 (ctrl->opts->mask & NVMF_OPT_HOST_TRADDR)) {
1118 if (strcmp(opts->host_traddr, ctrl->opts->host_traddr))
1121 (ctrl->opts->mask & NVMF_OPT_HOST_TRADDR)) {
1126 (ctrl->opts->mask & NVMF_OPT_HOST_IFACE)) {
1127 if (strcmp(opts->host_iface, ctrl->opts->host_iface))
1130 (ctrl->opts->mask & NVMF_OPT_HOST_IFACE)) {
1186 struct nvme_ctrl *ctrl;
1233 ctrl = ops->create_ctrl(dev, opts);
1234 if (IS_ERR(ctrl)) {
1235 ret = PTR_ERR(ctrl);
1240 return ctrl;
1260 struct nvme_ctrl *ctrl;
1277 ctrl = nvmf_create_ctrl(nvmf_device, buf);
1278 if (IS_ERR(ctrl)) {
1279 ret = PTR_ERR(ctrl);
1283 seq_file->private = ctrl;
1313 struct nvme_ctrl *ctrl;
1316 ctrl = seq_file->private;
1317 if (!ctrl) {
1323 ctrl->instance, ctrl->cntlid);
1343 struct nvme_ctrl *ctrl = seq_file->private;
1345 if (ctrl)
1346 nvme_put_ctrl(ctrl);