From nobody Thu Sep 10 15:25:30 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 4hghMG4pTMz6sDCp for ; Thu, 10 Sep 2026 15:25:30 +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 4hghMG4LSVz4l2j for ; Thu, 10 Sep 2026 15:25:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1789053930; 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=CWPuHFjDAZOjtCfwJ6ZjU+jBTGcqk1lJDr47OMdNOAk=; b=j/ZV6gP32XzzDNZBCOylgmqwtQEKr4+4rejXW9/rSEjNCs4N9RPpIXEL57sCurK3ITI/Ej LyuPUCcsFtr1tv/VYFV7pN/r3+PTdIKKuqx8DZu9uOGe2N77aWeQlcjMmXQ3wY8Eu5XAd4 JbaWDxDo1ejDHSdsZsVZbD3xTeg83T6WObd4UPUARGj6paRBeAlRspYXEoU6I7v42Dj37F u7ZYyP7WNwZML6sDQR2eMlZnS3KWvfozcaJOgqfT+TtPop9CB7kKvmFNrTKnemYJ/kOBDj +2QjnvZGEQmdJVIt/bqb72XbR+zZkEUgsPZqy/0D0LIdqcVtzAPjDV992OQSGw== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1789053930; b=tNwTt4qZNgFVVPVaRAtEzyefwUPXSCmfVRcH5iTodwNI0QilqVHfTOTkngID/81JqAcoG5 4uudip2D3dAbiVu4az4rHAangT7xeTM5OXEqNfXwUFU+LC/d+5VjtrDbThyTnRr9cqjdz1 KHMRan0582uLYBhhbSxWT4NMZzYvd+j5m6CbtSeWrfsMAw9PD27uUJkxm3g7Qh/6fJj+4b 360kM4WM87Yk8oI67Es6ujfX2682zixRPEweRD+ni/uFnigDeu62C6SJHef5BF1iosiTcX QByAfBM7D7y0LhPWxZLvn7lwFGiKlnYCLZWBe5TiQPPaK7ymPP5cLIQEFBJeVQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1789053930; 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=CWPuHFjDAZOjtCfwJ6ZjU+jBTGcqk1lJDr47OMdNOAk=; b=g9ugqHSwi6aGbs9BJh/v7IJnFdFBS9poMug5kr+6sQyne9UE4B3eNIygA4vRISC3/Vq69Y zLf1xglmM5/mhHNdZD9GpradwXMAyo7VaTTBLOUNAwdX0APF1p2BYtHxNmqGESggaWoCmc dr9YN2JFrTv8wBPIvD3gQcPPCieyE+GPYxFTU/8Y3UN8kst4SOENHSepZsboGSRFO2LFtk UvJBLil7PRPR6o3Q57m12i2HnBQJMd+ySb0b6b95iLjEOG9o/RWg9nuRMG13tJzRsWAgSV VfUtow/xPO+o1sF3FQGkLu6o6FDtRg4eWPGQvbLo8IL0CHXB1j1/qZsMG6w1sg== 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 4hghMG34l4zZ6N for ; Thu, 10 Sep 2026 15:25:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 30f5e by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 10 Sep 2026 15:25:30 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Abdelkader Boudih Subject: git: 755b9d539325 - main - ng_hci: build the devd notification in a stack buffer 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: seuros X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 755b9d5393253e1d5d3f9a894c18ac8bedb39b5d Auto-Submitted: auto-generated Date: Thu, 10 Sep 2026 15:25:30 +0000 Message-Id: <6aa2cbea.30f5e.3111a01f@gitrepo.freebsd.org> The branch main has been updated by seuros: URL: https://cgit.FreeBSD.org/src/commit/?id=755b9d5393253e1d5d3f9a894c18ac8bedb39b5d commit 755b9d5393253e1d5d3f9a894c18ac8bedb39b5d Author: Abdelkader Boudih AuthorDate: 2026-09-10 15:25:16 +0000 Commit: Abdelkader Boudih CommitDate: 2026-09-10 15:25:16 +0000 ng_hci: build the devd notification in a stack buffer sbuf_new_auto() sleeps, and ng_hci_default_rcvmsg() can run under the raw HCI socket pcb mutex held across NG_SEND_MSG_PATH(). Reported by: WITNESS Fixes: ad91d47db306 Reviewed by: glebius, adrian Differential Revision: https://reviews.freebsd.org/D59550 --- sys/netgraph/bluetooth/hci/ng_hci_main.c | 77 +++++++++++--------------------- 1 file changed, 26 insertions(+), 51 deletions(-) diff --git a/sys/netgraph/bluetooth/hci/ng_hci_main.c b/sys/netgraph/bluetooth/hci/ng_hci_main.c index 190cb80a1c4c..5ddbb940b1ca 100644 --- a/sys/netgraph/bluetooth/hci/ng_hci_main.c +++ b/sys/netgraph/bluetooth/hci/ng_hci_main.c @@ -126,6 +126,29 @@ ng_hci_append_bdaddr_to_sbuf(struct sbuf *sb, const bdaddr_t *ba) ba->b[2], ba->b[1], ba->b[0]); } /* ng_hci_append_bdaddr_to_sbuf */ +static void +ng_hci_notify_devd(node_p node, ng_hci_unit_p unit, const char *event) +{ + char buf[NG_NODESIZ + 32]; + struct sbuf sb; + + sbuf_new(&sb, buf, sizeof(buf), SBUF_FIXEDLEN); + sbuf_printf(&sb, "node=%s bdaddr=", NG_NODE_NAME(node)); + ng_hci_append_bdaddr_to_sbuf(&sb, &unit->bdaddr); + sbuf_printf(&sb, "\n"); + + if (sbuf_finish(&sb) != 0) + log(LOG_WARNING, + "hci: failed to signal %s to devd: " + "%02x:%02x:%02x:%02x:%02x:%02x\n", event, + unit->bdaddr.b[5], unit->bdaddr.b[4], unit->bdaddr.b[3], + unit->bdaddr.b[2], unit->bdaddr.b[1], unit->bdaddr.b[0]); + else + devctl_notify("BLUETOOTH", "HCI", event, sbuf_data(&sb)); + + sbuf_delete(&sb); +} + /***************************************************************************** ***************************************************************************** ** Netgraph methods implementation @@ -286,29 +309,7 @@ ng_hci_disconnect(hook_p hook) unit->state &= ~(NG_HCI_UNIT_CONNECTED|NG_HCI_UNIT_INITED); /* Signal power off to devd */ - { - struct sbuf *sb; - sb = sbuf_new_auto(); - sbuf_printf(sb, "node=%s bdaddr=", - NG_NODE_NAME(NG_HOOK_NODE(hook))); - ng_hci_append_bdaddr_to_sbuf(sb, &unit->bdaddr); - sbuf_printf(sb, "\n"); - - if (sbuf_finish(sb) > 0) { - log(LOG_WARNING, - "hci: failed to signal bt device " \ - "power off to devd: " \ - "%02x:%02x:%02x:%02x:%02x:%02x\n", - unit->bdaddr.b[5], unit->bdaddr.b[4], - unit->bdaddr.b[3], unit->bdaddr.b[2], - unit->bdaddr.b[1], unit->bdaddr.b[0]); - } else { - devctl_notify("BLUETOOTH", "HCI", - "POWERED_OFF", sbuf_data(sb)); - } - - sbuf_delete(sb); - } + ng_hci_notify_devd(NG_HOOK_NODE(hook), unit, "POWERED_OFF"); } else return (EINVAL); @@ -413,34 +414,8 @@ ng_hci_default_rcvmsg(node_p node, item_p item, hook_p lasthook) ng_hci_node_is_up(unit->node, unit->acl, NULL, 0); ng_hci_node_is_up(unit->node, unit->sco, NULL, 0); - /* Signal init to devd */ - { - struct sbuf *sb; - sb = sbuf_new_auto(); - sbuf_printf(sb, "node=%s bdaddr=", - NG_NODE_NAME(node)); - ng_hci_append_bdaddr_to_sbuf(sb, - &unit->bdaddr); - sbuf_printf(sb, "\n"); - - if (sbuf_finish(sb) > 0) { - log(LOG_WARNING, - "hci: failed to signal bt " \ - "device init to devd: " - "%02x:%02x:%02x:%02x:%02x:%02x\n", - unit->bdaddr.b[5], - unit->bdaddr.b[4], - unit->bdaddr.b[3], - unit->bdaddr.b[2], - unit->bdaddr.b[1], - unit->bdaddr.b[0]); - } else { - devctl_notify("BLUETOOTH", "HCI", - "INITIALIZED", sbuf_data(sb)); - } - - sbuf_delete(sb); - } + /* Signal init to devd */ + ng_hci_notify_devd(node, unit, "INITIALIZED"); break;