From nobody Fri Sep 11 05:32:39 2026 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4hh38m0TZ0z6rf24 for ; Fri, 11 Sep 2026 05:32:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hh38l5CMhz4P3L for ; Fri, 11 Sep 2026 05:32:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1789104759; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Q2/4LygPlFamhe7lf5HESYG9EPkfxURvkH05TOdrPpc=; b=c9G6CKt+4HbxGomFH08daCPkK9wRlEkbAUUSV7ncU7+5eU/lggGRacNGDwxS/Q9Bx2nIxj 3PiOxsIBnViZABltPMzF2w4mf9xPzfpKwiTWYmKamEU6m+qfUgLj/ITfD6vaN5y1bU21iz USar7iEeITiNe+bDkmQcnehKwD6MxrjL1lJal00O95yVQqhVSU2rMrmtCYXbULTAfnunMp DmVbRXUXJ9W54FKQkFHfbJfyMpEO8akvyoQE32qtwlOX030hxHWZxSsgIimZJ1ojKTXgoX u3V+vwcWXlyHBhlC3wjJEo4lUeO1wFqZd+lZsRPp/mLgi+EEK3XNvI4UlpfOMw== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1789104759; b=nJ3IP2f9NQ4UQIeewBu8fam5Y04xEpo5/NHCY7ynYJyf9/ZTV/TIuK2pKFQPiEPBwR4Wwz HdbfAa7LR4tDX+cP5SEfJUSm3dh+sGeXEpH6ju3Bg4O0Rz1u57hdm7tjPC0qlA1rqAU2Ag uUDBbHa01cCwLC8Rft4nsIUrDpJVF0Lns2Ns1kF/6iEnGY6nyirFJYGLOcdsES1ictWD0E qyT4XVfcvYGJPEVq54+t47rnIKQkD0BKY+acu1BawaDI89oyrlrYyuhilZJxpkZo2DEdMq unC7jUB/84Q1RVnn3BjNoTZ3kKh9tC+rsAgB9rJXvKhQVGnoh9LGawEZ01LmnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1789104759; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Q2/4LygPlFamhe7lf5HESYG9EPkfxURvkH05TOdrPpc=; b=yYaRMgEmXGsjRtSQWw11jjRSmkzxEbrWtT+642Pokg3kMY062Xd6o1iHjYvTHryhXNiD33 N7elTrvAG/m4bPoWfx/G8Oxf1q+mvnpNPZ21IgZDuIH5AcuNEE39oT2Mzk/y0TvRHhAEO6 6wQISgwEDeo2hJ0LTyTFYUku4c24jXoVRpphuU0UHboeRZekKtkxw7JmTDesYMui+aZgaD XeYclakXwDLLk/AW9czCpXheq0gpUeI92trGHtac8dUvV0XeDeyIyACd5G8Ih/bRIT5tIH wStj0dxxKUYDa47L7x0JbCHEFxBmndN0U15JVC4jP9RlGjXgsk6BAm0hM5ft7g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hh38l3y7kz10k9 for ; Fri, 11 Sep 2026 05:32:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3d57d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 11 Sep 2026 05:32:39 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: d04083d52b16 - main - cam: Add devctl message for invalidation of a periph. List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d04083d52b16893c7346ae4261ed52bf23501282 Auto-Submitted: auto-generated Date: Fri, 11 Sep 2026 05:32:39 +0000 Message-Id: <6aa39277.3d57d.2f97a4bc@gitrepo.freebsd.org> The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=d04083d52b16893c7346ae4261ed52bf23501282 commit d04083d52b16893c7346ae4261ed52bf23501282 Author: Warner Losh AuthorDate: 2026-09-11 05:13:08 +0000 Commit: Warner Losh CommitDate: 2026-09-11 05:13:08 +0000 cam: Add devctl message for invalidation of a periph. Report serial number, if available, otherwise report the path of the device invalidated. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D58527 --- sbin/devd/devd.conf.5 | 4 +++- sys/cam/cam_periph.c | 25 ++++++++++++++++++++++--- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/sbin/devd/devd.conf.5 b/sbin/devd/devd.conf.5 index 7fa0ecd92b72..26a1136c42a0 100644 --- a/sbin/devd/devd.conf.5 +++ b/sbin/devd/devd.conf.5 @@ -38,7 +38,7 @@ .\" ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS .\" SOFTWARE. .\" -.Dd February 26, 2026 +.Dd July 28, 2026 .Dt DEVD.CONF 5 .Os .Sh NAME @@ -362,6 +362,8 @@ system. Events related to peripheral devices. .It Li CAM Ta Li periph Ta Li error Ta Generic errors. +.It Li CAM Ta Li periph Ta Li invalidate Ta +Peripheral invalidation. .It Li CAM Ta Li periph Ta Li timeout Ta Command timeouts. .El diff --git a/sys/cam/cam_periph.c b/sys/cam/cam_periph.c index e34971a8e4ff..e2672fbff7c7 100644 --- a/sys/cam/cam_periph.c +++ b/sys/cam/cam_periph.c @@ -667,6 +667,17 @@ camperiphunit(struct periph_driver *p_drv, path_id_t pathid, return (unit); } +static void +cam_periph_invalidate_devctl(struct cam_periph *periph) +{ + struct sbuf sb; + char *sbmsg; + + sbmsg = cam_periph_devctl_sb_init(&sb, periph); + if (sbmsg != NULL) + cam_periph_devctl_sb_fini(&sb, sbmsg, "invalidate"); +} + void cam_periph_invalidate(struct cam_periph *periph) { @@ -680,6 +691,8 @@ cam_periph_invalidate(struct cam_periph *periph) return; CAM_DEBUG(periph->path, CAM_DEBUG_INFO, ("Periph invalidated\n")); + if (!rebooting) + cam_periph_invalidate_devctl(periph); if ((periph->flags & CAM_PERIPH_ANNOUNCED) && !rebooting) { struct sbuf sb; char buffer[160]; @@ -2135,14 +2148,20 @@ cam_periph_devctl_sb_init(struct sbuf *sb, struct cam_periph *periph) sbuf_printf(sb, "device=%s%d ", periph->periph_name, periph->unit_number); - sbuf_cat(sb, "serial=\""); if ((cgd = (struct ccb_getdev *)xpt_alloc_ccb_nowait()) != NULL) { xpt_gdev_type(cgd, periph->path); - if (cgd->ccb_h.status == CAM_REQ_CMP) + if (cgd->ccb_h.status == CAM_REQ_CMP && + cgd->serial_num_len > 0) { + sbuf_cat(sb, "serial=\""); sbuf_bcat(sb, cgd->serial_num, cgd->serial_num_len); + sbuf_cat(sb, "\" "); + } else { + sbuf_cat(sb, "path=\""); + xpt_path_sbuf(periph->path, sb); + sbuf_cat(sb, "\" "); + } xpt_free_ccb((union ccb *)cgd); } - sbuf_cat(sb, "\" "); return (sbmsg); }