From nobody Thu May 28 13:02:17 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 4gR68V0Wtnz6fj5H for ; Thu, 28 May 2026 13:02:18 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gR68T50yqz3WWL for ; Thu, 28 May 2026 13:02:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779973337; 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=0qnQ16s+qqvzc0cj7Ni5Kr+Er5JYBm2wUbkuJypCL28=; b=VPZj6Blo/KIN4jLXngB2J3S9U+HgwIsI9JcYphi01ozP5mT7FaJfLSqYHHjq99HuOuaXy9 pnBMvSfF7xxJg9tuvwXkaGL1ls8lTIIIGH0/WxMFUmGAEdlEDldpgaFukMw1qpszGQffZt Bx+W7oR/tAM+KX5PbnsG053mzTq2BYQSUDVZkOQvvecfsbHG7xf+cM6olIt5nj/bKvegw/ fYdjOe5VtVoVjXthbDRzfLBlGart27BWjnjCz0kh1XwnO67qiN0QUf8j8gbQyP4BGQpr43 F782aXmZkvZ+C+HdXmYJEV1TD+Q0F8JToSiTJPiP+LwnLZxS9BMl/M5gIsClrA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779973337; a=rsa-sha256; cv=none; b=bb8/OCHmb0jB6zqDV5Mmbp0vjqm9HCUoBqplLKLmmz2U7nJVuulEVYLrUVwvSHiVwN7oMt 4TDvKB7uS3Ow4yVpJcmhKDQSKUz523f7k36aj6VyuxWZ1zOns8ENfp2KaTMVPVMmoZBK1N RnZWdDdNMAkA+OcrQWHNeKjz1b5FZ4eCVG6HYkNpLojwErjzqsJQ07mKf0djt/8yiL2JC0 yoe81RqxLZfvlPLjtXbL7Vc+x/PUB+3VyklxuVaN/AeseMKJT8H8GdFJb7pS1UcA24XD/y 5qVnkaXIKJBZX21miNqh3L248ED1kL2gj4zIxTjxcsHf6R7wLSs/Dop4ZF1ylw== 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=1779973337; 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=0qnQ16s+qqvzc0cj7Ni5Kr+Er5JYBm2wUbkuJypCL28=; b=IosM6zxGDfg28PCkfRkuodtAF8sX85ulJMJCeI5W6hWOVQRcqocrszogUn8ecge4d6QfEl LeT8wg3xfSe/m7/hYofKdu6b3cYR1GvKIL0ZdCWfNgiJyaFCU8NQHzD8EvIrb3547rNghL f9TI2m+Bq1Ay+Su/2RIKxKlmPFq9BD4MOJH1U4IEcswBTNuHlNCoqR4KOPw+5jct/E6+NM SxdsgTE/c3UJwXy8nihZwA/9uYPb0OoEyGVS6vf1pS0p2BxaDIp9rGM/50ABvPE003eFa8 NtWLbxwgnd67+IqMzJpLXUE+Gcgm3LjCaA64UShZtS1MXTV5T1T/GWwpD4Cy5A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gR68T4Rvrzn6R for ; Thu, 28 May 2026 13:02:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 47551 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 28 May 2026 13:02:17 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Christos Margiolis Subject: git: fc9dc8482396 - main - snd_uaudio: Lock usbd_transfer_start() in uaudio_mixer_ctl_set() 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: christos X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: fc9dc848239652ec1e4135adb4833a5f002cef0f Auto-Submitted: auto-generated Date: Thu, 28 May 2026 13:02:17 +0000 Message-Id: <6a183cd9.47551.25b33885@gitrepo.freebsd.org> The branch main has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=fc9dc848239652ec1e4135adb4833a5f002cef0f commit fc9dc848239652ec1e4135adb4833a5f002cef0f Author: Christos Margiolis AuthorDate: 2026-05-28 09:31:52 +0000 Commit: Christos Margiolis CommitDate: 2026-05-28 13:02:01 +0000 snd_uaudio: Lock usbd_transfer_start() in uaudio_mixer_ctl_set() This section would be previously locked by sound(4)'s mixer lock (see e87654db5a09 ("snd_uaudio: Stop using mixer_get_lock()")), but snd_uaudio(4) no longer uses it. This particular code path was missed during testing, because my sound card does not reach it. Fixes: 9a00e0b8ca56 ("snd_uaudio: Do not use snd_mixer->lock as mixer_lock") Reported by: netchild Tested by: netchild Sponsored by: The FreeBSD Foundation MFC after: 6 days --- sys/dev/sound/usb/uaudio.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/sys/dev/sound/usb/uaudio.c b/sys/dev/sound/usb/uaudio.c index 27d5009da4fa..eedd52774b70 100644 --- a/sys/dev/sound/usb/uaudio.c +++ b/sys/dev/sound/usb/uaudio.c @@ -5386,8 +5386,8 @@ uaudio_mixer_bsd2value(struct uaudio_mixer_node *mc, int val) } static void -uaudio_mixer_ctl_set(struct uaudio_softc *sc, struct uaudio_mixer_node *mc, - uint8_t chan, int val) +uaudio_mixer_ctl_set(struct uaudio_softc *sc, unsigned index, + struct uaudio_mixer_node *mc, uint8_t chan, int val) { val = uaudio_mixer_bsd2value(mc, val); @@ -5396,7 +5396,9 @@ uaudio_mixer_ctl_set(struct uaudio_softc *sc, struct uaudio_mixer_node *mc, /* start the transfer, if not already started */ + mtx_lock(&sc->sc_child[index].mixer_lock); usbd_transfer_start(sc->sc_mixer_xfer[0]); + mtx_unlock(&sc->sc_child[index].mixer_lock); } static void @@ -5482,7 +5484,7 @@ uaudio_mixer_set(struct uaudio_softc *sc, struct snd_mixer *m, for (mc = sc->sc_mixer_root; mc != NULL; mc = mc->next) { if (mc->ctl == type) { for (chan = 0; chan < mc->nchan; chan++) { - uaudio_mixer_ctl_set(sc, mc, chan, + uaudio_mixer_ctl_set(sc, index, mc, chan, chan == 0 ? left : right); } } @@ -5523,7 +5525,7 @@ uaudio_mixer_setrecsrc(struct uaudio_softc *sc, struct snd_mixer *m, uint32_t sr for (i = mc->minval; (i > 0) && (i <= mc->maxval); i++) { if (temp != (1U << mc->slctrtype[i - 1])) continue; - uaudio_mixer_ctl_set(sc, mc, 0, i); + uaudio_mixer_ctl_set(sc, index, mc, 0, i); break; } }