From nobody Sat Sep 12 18:19:10 2026 X-Original-To: dev-commits-src-all@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 4hj06l0Wmpz6sX29 for ; Sat, 12 Sep 2026 18:19:11 +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 4hj06k5ZdFz4qXY for ; Sat, 12 Sep 2026 18:19:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1789237150; 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=O5jalwk9LA4J3PBYJCC0gzUUBUnjpe0GSZ2MfFGQCzY=; b=WkTO2iBcWDMBlq1fyYbyEJCOM1wvvnJs3xKG0HYllX+3cWXY7nFkpWYIlTfzRJPyn7lhpV Kzsrvs31J3QWB6VZ5Q1xqN5feesUxj/zlEDV1ko8ORcnDoeSJdGkU2FQmNrPkKaAOfydrV nSN0N9C/CHd7tOS91CyLNWH1Vp2kWOr5F4PETxcAoKn3uUhI1ifZsSX8En5mgBz99SXq8B NsMuNBU+pG/hyc0jrlVeY8Pdv+Ij+5wbFTFbMZoTYAxsC6yrqJe8n2WuNk9WKG13/H1Ip6 5zayiDCqbZPTSMls7S20UOTzQna0LajtfnllA0Dk6sFz5frsNi6GCHYz8P4K4A== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1789237150; b=dXhpKGp9m2S7NHVjNzPlXfUfMZKWUg1BRn2FAn9XfxKE7lOrtJe/uqxLPujHY/Vt/zHM5m 3o456miUrZ5h32WPBMOLnNG0KWWHuk3qZRTmYpFZgSefOHRmklfCdNdrZHWN4HoGqiF8qx DqpHajnlvewbJSJgeUw3h8Je2L+iXp+pGEJGBZO99/lQFl3rf7UZzjkPWvcL65OJLyp8h4 G+QUQrp8Vysqmjh4gQcxBQeqwpM43D/YlxOAJcW62nE/IT0rZl8EvBZfFWhcdAZYwKp0cY mE0YvnhwMs2t6cMGLqY3SjiR4ortFx3KSZDY4+fYKwPTeD0DIsfVFTVvx9MmQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1789237150; 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=O5jalwk9LA4J3PBYJCC0gzUUBUnjpe0GSZ2MfFGQCzY=; b=kzGGu7wT6W8zx0McuwLqjjwrO8GeEAi8TbLRV927Jfa3xkm7GXHnvMmPoIwnG6Eu+ImfV8 NK76buv/5VSYf8P5KR3+rDZb5atzNHVR23yAAX1nIy+nzVzm9DOWEcJs3H3aymF8YwQdx6 1QoNSokUGsYMtTdlov4juiEyUtnPKRC/gx6StNW9XSG98YleMlT3hhpqmbdJeiZP3j1WlB c8QoQwGCa9PkApz3DVDXpTj5qQE6ad4/Zu9jk4D5zBdSZ859ahfkYskkLZOu26srazKywM VSpVkk4AM9M/WqImElhBCOJOJ+OB/wnVHV2SqSe32KOQzO0JrmhQ0Cj/izYt7Q== 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 4hj06k41Shz17LK for ; Sat, 12 Sep 2026 18:19:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 4493b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 12 Sep 2026 18:19:10 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: f9517d237461 - main - mpsutil: Better naming form the discovery_status function List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@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: f9517d23746115dfdd7da6d6919e20fe55882e4d Auto-Submitted: auto-generated Date: Sat, 12 Sep 2026 18:19:10 +0000 Message-Id: <6aa5979e.4493b.2c522886@gitrepo.freebsd.org> The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=f9517d23746115dfdd7da6d6919e20fe55882e4d commit f9517d23746115dfdd7da6d6919e20fe55882e4d Author: Warner Losh AuthorDate: 2026-09-11 15:17:47 +0000 Commit: Warner Losh CommitDate: 2026-09-12 16:59:16 +0000 mpsutil: Better naming form the discovery_status function It's really discovery_status_str(). Rename it and use open_memstream() to write the string so we don't have to play as many str* games. Fixes: afb60897a15c Noticed by: claude + Sonet 5 (size error, bad fix ignored) Sponsored by: Netflix --- usr.sbin/mpsutil/mps_show.c | 39 ++++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/usr.sbin/mpsutil/mps_show.c b/usr.sbin/mpsutil/mps_show.c index cf1ae4f5005b..f8f324269f8b 100644 --- a/usr.sbin/mpsutil/mps_show.c +++ b/usr.sbin/mpsutil/mps_show.c @@ -641,7 +641,7 @@ static const struct { { MPI2_SASIOUNIT0_DS_DOWNSTREAM_INITIATOR, "DownstreamInitiator" }, { MPI2_SASIOUNIT0_DS_MULTI_SUBTRACTIVE_SUBTRACTIVE, "MultiSubtractiveToSubtractive" }, { MPI2_SASIOUNIT0_DS_EXP_MULTI_SUBTRACTIVE, "ExpMultiSubtractive" }, - { MPI2_SASIOUNIT0_DS_MULTI_PORT_DOMAIN, "MultiPortDomain" }, + { MPI2_SASIOUNIT0_DS_MULTI_PORT_DOMAIN, "MultiPortDomain" }, { MPI2_SASIOUNIT0_DS_TABLE_TO_SUBTRACTIVE_LINK, "TableToSubtractiveLink" }, { MPI2_SASIOUNIT0_DS_UNSUPPORTED_DEVICE, "UnsupportedDevice" }, { MPI2_SASIOUNIT0_DS_TABLE_LINK, "TableLink" }, @@ -649,32 +649,36 @@ static const struct { { MPI2_SASIOUNIT0_DS_SMP_CRC_ERROR, "SmpCrcError" }, { MPI2_SASIOUNIT0_DS_SMP_FUNCTION_FAILED, "SmpFunctionFailed" }, { MPI2_SASIOUNIT0_DS_INDEX_NOT_EXIST, "RouteIndexNotExist" }, - { MPI2_SASIOUNIT0_DS_OUT_ROUTE_ENTRIES, "RouteTableFull" }, + { MPI2_SASIOUNIT0_DS_OUT_ROUTE_ENTRIES, "RouteTableFull" }, { MPI2_SASIOUNIT0_DS_SMP_TIMEOUT, "SmpTimeout" }, { MPI2_SASIOUNIT0_DS_MULTIPLE_PORTS, "MultiplePortsSameAddress" }, { MPI2_SASIOUNIT0_DS_UNADDRESSABLE_DEVICE, "UnaddressableDevice" }, { MPI2_SASIOUNIT0_DS_LOOP_DETECTED, "LoopDetected" }, }; -static void -snprint_discovery_status(char *buf, size_t buflen, uint32_t ds) +static char * +discovery_status_str(uint32_t ds) { - unsigned i; - int first = 1; + FILE *fp; + char *str; + size_t len, i; + int first; - buf[0] = '\0'; - if (ds == 0) { - strlcpy(buf, "-", buflen); - return; - } + if (ds == 0) + return (strdup("-")); + + fp = open_memstream(&str, &len); + first = 1; for (i = 0; i < nitems(discovery_status_bits); i++) { if ((ds & discovery_status_bits[i].mask) == 0) continue; - if (!first) - strlcat(buf, ",", buflen); - strlcat(buf, discovery_status_bits[i].name, buflen); + fprintf(fp, "%s%s", first ? "" : ",", + discovery_status_bits[i].name); first = 0; } + fclose(fp); + + return (str); } static const char * @@ -738,7 +742,7 @@ show_discovery(int ac, char **av) uint32_t ds; uint16_t flags; uint8_t astatus; - char dsbuf[256]; + char *dsstr; int fd, error, i, nsuspect, in_progress, disabled, suspect; fd = mps_open(mps_unit); @@ -771,13 +775,14 @@ show_discovery(int ac, char **av) disabled = (phy->PhyFlags & MPI2_SASIOUNIT0_PHYFLAGS_PHY_DISABLED) != 0; - snprint_discovery_status(dsbuf, sizeof(dsbuf), ds); + dsstr = discovery_status_str(ds); printf("%-4d%-5u%-11s%-9s%-6s0x%-8x0x%-8x%s%s\n", i, phy->Port, in_progress ? "InProgress" : "Idle", disabled ? "Y" : "N", get_device_speed(phy->NegotiatedLinkRate), le16toh(phy->AttachedDevHandle), - le16toh(phy->ControllerDevHandle), dsbuf, + le16toh(phy->ControllerDevHandle), dsstr, (ds != 0 || in_progress) ? " <== SUSPECT" : ""); + free(dsstr); if (ds != 0 || in_progress) nsuspect++; }