The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=03ac6fe4f6d2bce06a672024152eb894a423dfcb
commit 03ac6fe4f6d2bce06a672024152eb894a423dfcb Author: John Baldwin <[email protected]> AuthorDate: 2026-06-24 15:28:51 +0000 Commit: John Baldwin <[email protected]> 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); } }
