git: 03ac6fe4f6d2 - main - ctld: Simplify handling of non-iSCSI and non-NVMe kernel ports
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 24 Jun 2026 15:29:04 UTC
The branch main has been updated by jhb:
URL: https://cgit.FreeBSD.org/src/commit/?id=03ac6fe4f6d2bce06a672024152eb894a423dfcb
commit 03ac6fe4f6d2bce06a672024152eb894a423dfcb
Author: John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2026-06-24 15:28:51 +0000
Commit: John Baldwin <jhb@FreeBSD.org>
CommitDate: 2026-06-24 15:28:51 +0000
ctld: Simplify handling of non-iSCSI and non-NVMe kernel ports
Just add these directly to the kports object rather than treating them
as iSCSI ports.
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D57283
---
usr.sbin/ctld/kernel.cc | 35 ++++++++++++++++++++++-------------
1 file changed, 22 insertions(+), 13 deletions(-)
diff --git a/usr.sbin/ctld/kernel.cc b/usr.sbin/ctld/kernel.cc
index ef7ef87af090..f84440d64c23 100644
--- a/usr.sbin/ctld/kernel.cc
+++ b/usr.sbin/ctld/kernel.cc
@@ -441,19 +441,13 @@ retry_port:
return (true);
}
-void
-add_iscsi_port(struct kports &kports, struct conf *conf,
- const struct cctl_port &port, std::string &name)
+static void
+add_iscsi_port(struct conf *conf, const struct cctl_port &port,
+ std::string &name)
{
if (port.cfiscsi_target.empty()) {
log_debugx("CTL iSCSI port %u \"%s\" is not managed by ctld; "
"ignoring", port.port_id, name.c_str());
- if (!kports.has_port(name)) {
- if (!kports.add_port(name, port.port_id)) {
- log_warnx("kports::add_port failed");
- return;
- }
- }
return;
}
if (port.cfiscsi_state != 1) {
@@ -493,7 +487,7 @@ add_iscsi_port(struct kports &kports, struct conf *conf,
}
}
-void
+static void
add_nvmf_port(struct conf *conf, const struct cctl_port &port,
std::string &name)
{
@@ -532,6 +526,22 @@ add_nvmf_port(struct conf *conf, const struct cctl_port &port,
}
}
+static void
+add_kernel_port(struct kports &kports, const struct cctl_port &port,
+ std::string &name)
+{
+ log_debugx("CTL kernel port %u \"%s\"", port.port_id, name.c_str());
+ if (kports.has_port(name)) {
+ log_warnx("Ignoring duplicate kernel port \"%s\"",
+ name.c_str());
+ return;
+ }
+
+ if (!kports.add_port(name, port.port_id)) {
+ log_warnx("kports::add_port failed");
+ }
+}
+
conf_up
conf_new_from_kernel(struct kports &kports)
{
@@ -559,12 +569,11 @@ conf_new_from_kernel(struct kports &kports)
}
if (port.port_frontend == "iscsi") {
- add_iscsi_port(kports, conf.get(), port, name);
+ add_iscsi_port(conf.get(), port, name);
} else if (port.port_frontend == "nvmf") {
add_nvmf_port(conf.get(), port, name);
} else {
- /* XXX: Treat all unknown ports as iSCSI? */
- add_iscsi_port(kports, conf.get(), port, name);
+ add_kernel_port(kports, port, name);
}
}