From nobody Fri Jan 9 23:27:47 2026 X-Original-To: dev-commits-src-branches@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 4dnycN1JCSz6MYQ0 for ; Fri, 09 Jan 2026 23:27:48 +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" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4dnycM5z6nz3mwt for ; Fri, 09 Jan 2026 23:27:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1768001267; 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=IDo/3dSS5L0y+jF8h825cZUfuwLLgoRZvzNu/SU3i8I=; b=mV9s85EQCQVwSjTRGpsNguwR+285wH+OJwumpkoFXJXvp7y7nWd8vp3enG+JR6chPuzO1U jH5SMSO3mwc9teilMEbDJEhirWmEZOrM/QfrIG+Akmp/+lepurG4o1yJu4BGYjYIgP1sTn +e/D9ut10UGmzE88xVad/wU2RyfOKO0lRcCD4R4cjHrsUkVbYhEI7nWPJhIOop0/qHpxoj dvgRTYrVHKii9aUIajoVJBTNlGAFhOAO0N+Hj0/WEC1BZyCB2mL/IY4zrpETU70eb6asCt dyHZ0XXKEjDjiB50LY924hkFANZsq0lux5xhaKcWzXmZYv1ddEZQI9dQq/x/MA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1768001267; 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=IDo/3dSS5L0y+jF8h825cZUfuwLLgoRZvzNu/SU3i8I=; b=aw79IwHZh2pQV5ruwEl5jIt3KreUnJ3Dtys0ViteUe3MvO9TAugmYIswUAUyqlZywmPlEQ lCJhRGGW+/ZdecTEhaBiCtalUv5ktImaSGlZyozuJCV4qcJZ6Oicq0E7K6qBH75WX1KhT4 L6TsWkItDa45SpJ4mfZ5gm97+BJsu4Jq/MYngtrxQsut13t7I61OeN8XtNOLBx6xInx0vs lgd16rCvdHxAZ+1ZIAr0ek+dEZhUigJBbQt5IJCLO+8AwDp64AK9TDuo+UuxkzNUnQ/H/1 PqLgeASTdOu9ytPgPpuOCabLGIk9ujo+Wm9bZjNG3pEa20tH6AdHbjFmsKNhFA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1768001267; a=rsa-sha256; cv=none; b=v951Ku1fneRrLZiTqzS46Myo6PitZtBB/xQO1DwxNTjauXiZqX14voPAmjsD3KlKpWYPxl Ej3sbPbN9dJPQ236ZaS6HqxaKbkEYnJuC5TGJCPoMxo0pavPiz0reBDIR2wl7+S1w3PPjI F/6jb0oRhagh1RehITRTrj5CT6U6ADf6+1QPHJvyWlvQ4U3aX7KnfiM2Se8V8BSdhZERx4 1/B4zrqSfKMqlOTwYIh4T9byROXIPgtXOttes2+fvJFTqrgUnUrW4pZjHRVxcVmnS3nQm7 DafNzbZGSedLqAmlrbGfRS6/HSIsHiBkCakUYC8f/3/SypQOzwhm04zGykMeYg== 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 4dnycM5SpczTZM for ; Fri, 09 Jan 2026 23:27:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 31e43 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 09 Jan 2026 23:27:47 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 8c005f3da817 - stable/15 - sound: Merge midi_destroy() with midi_uninit() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org 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/stable/15 X-Git-Reftype: branch X-Git-Commit: 8c005f3da817456de3fc2f7d186b4898fcdff704 Auto-Submitted: auto-generated Date: Fri, 09 Jan 2026 23:27:47 +0000 Message-Id: <69618ef3.31e43.305b701c@gitrepo.freebsd.org> The branch stable/15 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=8c005f3da817456de3fc2f7d186b4898fcdff704 commit 8c005f3da817456de3fc2f7d186b4898fcdff704 Author: Christos Margiolis AuthorDate: 2026-01-02 16:56:19 +0000 Commit: Christos Margiolis CommitDate: 2026-01-09 23:27:23 +0000 sound: Merge midi_destroy() with midi_uninit() Also always call MPU_UNINIT(). It does not make sense not to if we are deallocating everything. Sponsored by: The FreeBSD Foundation MFC after: 1 week Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D54192 (cherry picked from commit d912ea5879cd6b1042671ae3986d496c63be4d49) --- sys/dev/sound/midi/midi.c | 57 ++++++++++++----------------------------------- 1 file changed, 14 insertions(+), 43 deletions(-) diff --git a/sys/dev/sound/midi/midi.c b/sys/dev/sound/midi/midi.c index 901e098d4883..2567f7412eb8 100644 --- a/sys/dev/sound/midi/midi.c +++ b/sys/dev/sound/midi/midi.c @@ -97,8 +97,6 @@ static struct cdevsw midi_cdevsw = { .d_name = "rmidi", }; -static int midi_destroy(struct snd_midi *, int); - struct unrhdr *dev_unr = NULL; struct unrhdr *chn_unr = NULL; @@ -186,21 +184,15 @@ err1: return NULL; } -/* - * midi_uninit does not call MIDI_UNINIT, as since this is the implementors - * entry point. midi_uninit if fact, does not send any methods. A call to - * midi_uninit is a defacto promise that you won't manipulate ch anymore - */ int midi_uninit(struct snd_midi *m) { - int err; - - err = EBUSY; mtx_lock(&m->lock); if (m->busy) { - if (!(m->rchan || m->wchan)) - goto err; + if (!(m->rchan || m->wchan)) { + mtx_unlock(&m->lock); + return (EBUSY); + } if (m->rchan) { wakeup(&m->rchan); @@ -211,14 +203,17 @@ midi_uninit(struct snd_midi *m) m->wchan = 0; } } - err = midi_destroy(m, 0); - if (!err) - goto exit; - -err: mtx_unlock(&m->lock); -exit: - return err; + MPU_UNINIT(m, m->cookie); + destroy_dev(m->dev); + free_unr(dev_unr, m->unit); + free_unr(chn_unr, m->channel); + free(MIDIQ_BUF(m->inq), M_MIDI); + free(MIDIQ_BUF(m->outq), M_MIDI); + mtx_destroy(&m->lock); + free(m, M_MIDI); + + return (0); } #ifdef notdef @@ -601,30 +596,6 @@ midi_poll(struct cdev *i_dev, int events, struct thread *td) return (revents); } -/* - * Single point of midi destructions. - */ -static int -midi_destroy(struct snd_midi *m, int midiuninit) -{ - mtx_assert(&m->lock, MA_OWNED); - - MIDI_DEBUG(3, printf("midi_destroy\n")); - m->dev->si_drv1 = NULL; - mtx_unlock(&m->lock); /* XXX */ - destroy_dev(m->dev); - /* XXX */ - if (midiuninit) - MPU_UNINIT(m, m->cookie); - free_unr(dev_unr, m->unit); - free_unr(chn_unr, m->channel); - free(MIDIQ_BUF(m->inq), M_MIDI); - free(MIDIQ_BUF(m->outq), M_MIDI); - mtx_destroy(&m->lock); - free(m, M_MIDI); - return 0; -} - static void midi_sysinit(void *data __unused) {