From nobody Sun Apr 12 03:16:31 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 4ftbKr2ythz6YM6w for ; Sun, 12 Apr 2026 03:16:32 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ftbKq6hNnz3NpZ for ; Sun, 12 Apr 2026 03:16:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1775963791; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=w8s1EykKSKaDa67plQL9B/0aPDo+4rcDxfR02l6kozU=; b=eD17fr76NAedBMYejetefZOoBYu+2+WYfnKx85UFiCjfH3liqutDqHmkH9FN5Gccks5/Gt trK9z4GhOmRqVYJT1p72F7UY4aTvQ80+3fNXmGm0BTArNFBePtUqBSid4NS66jamiDBidn w5yIT2Nr7S90M2u96U3ixZnxfEIQrp16zR+X4L0RDLW5WCU0iTd9f91k3GmEweM69dWrHy iA3XzmIldzBzbqFHTF+eX2qn/MJFztN/6YTR+9DZOIE7kWtBPLnreO/mF0ZAonPCi/ZPUa Wyb9GPRZ4ZNK70K8lfdTi32hjm/6z382ihYnAP2lghVdL84CGRk2lkG5K0o+rQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1775963791; a=rsa-sha256; cv=none; b=epf4JJyUctbkYc8ts0dGf7UyWZYHpLB2eLgzOunrnWT2qN/KWFCO+bZBNSXJqFEiBH53sx FT8GPoI6YsKTYpwAJQH4i8vlRXQCBVYzg0vZGZ0U9IzKMcF4qj8uLVUlIj3udfd0ZRlpLx cvjfzbA0p93tJDKBCWPO9/+7SfFU4sv74vbMaFaneOzjAJLL15JlXWBKxKBXpADBahq9SQ mlc+UbN7ZQoAjTM2fSzD4i9TP1nnKXimOOmw6TJngpqYUDI5/b3DGKgrISgh1n9upPrbGS d8MXF79ND7bck7REOYArvBhxpw5XNSA6xe2z/M3NvJTFDbJFYLd5sKvqWDxIow== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1775963791; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=w8s1EykKSKaDa67plQL9B/0aPDo+4rcDxfR02l6kozU=; b=lZ6OUAJch5tu9426HfsT5vr3LFFSiDqWQc8cV8d1HGq3FviST6cXmVRyhKOUQG6BIl1Mnp ZwooRqRGBZ3ZAdc5R18Vhkm+Dxr6WWkPeWhx+reJTk1NEc9pUkeEuhlxj16DAezmFsvD99 SuWnaWePe3ZnfGmf7+sAnWUWTMM2ew0eJhPuHE0MpBb2GzSJtMWTZb54Piz/uu9LCThIGp 1Voe5QgldkiS8AtrHAov8WizLTX+moKPhqtGlr5eC9KdZ+uEUO2i95YtykHEh0Q0TlRWDo a0SLcghcAW1g2/yb/U00xLnQpEJvxbahuN+Wtan0SRhRAqCBvstwYw+4lp4wyQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4ftbKq4wgJzySr for ; Sun, 12 Apr 2026 03:16:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 47639 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sun, 12 Apr 2026 03:16:31 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Abdelkader Boudih From: Kyle Evans Subject: git: b6321b9b8499 - stable/15 - uart: fix sleeping while holding mutex in uart_tty_detach() 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kevans X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: b6321b9b8499376d30bd7ca933ff25aae9877596 Auto-Submitted: auto-generated Date: Sun, 12 Apr 2026 03:16:31 +0000 Message-Id: <69db0e8f.47639.562d6ec0@gitrepo.freebsd.org> The branch stable/15 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=b6321b9b8499376d30bd7ca933ff25aae9877596 commit b6321b9b8499376d30bd7ca933ff25aae9877596 Author: Abdelkader Boudih AuthorDate: 2026-02-03 03:21:43 +0000 Commit: Kyle Evans CommitDate: 2026-04-12 03:15:12 +0000 uart: fix sleeping while holding mutex in uart_tty_detach() Move swi_remove() call before acquiring the tty lock. swi_remove() calls intr_event_remove_handler() which may sleep via msleep(), causing a lock order violation when called with the tty mutex held. The software interrupt handler removal operates on the interrupt event structure independently and does not require the tty lock. This matches the pattern used in other drivers such as tcp_hpts.c where swi_remove() is called without holding other locks. Reviewed by: imp, kevans (cherry picked from commit ed3a2469a71e0ef48cf8e636c35e64a011756da3) --- sys/dev/uart/uart_tty.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/dev/uart/uart_tty.c b/sys/dev/uart/uart_tty.c index d15d1d0c6ac2..7f0f730b3b6e 100644 --- a/sys/dev/uart/uart_tty.c +++ b/sys/dev/uart/uart_tty.c @@ -447,8 +447,9 @@ uart_tty_detach(struct uart_softc *sc) tp = sc->sc_u.u_tty.tp; - tty_lock(tp); swi_remove(sc->sc_softih); + + tty_lock(tp); tty_rel_gone(tp); return (0);