From nobody Fri Jan 2 16:58:24 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 4djVJK14N7z6Lvmv for ; Fri, 02 Jan 2026 16:58:25 +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 4djVJJ3LJGz42Zy for ; Fri, 02 Jan 2026 16:58:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1767373104; 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=dY3Dy1TDOfbv0IuD8RNMd1ZYDTsQHJY9BJe6vW12JNo=; b=oOcZko6bGAKGz5pDbucI5hp+20EYv5YPRDBfbEW9elXxh7zUbMIc/GWQxlQ0/kgWJeSyLo WRHFjbrZZP/Q4FRJvB4+YnkE2kOTbuB+cUV4AWxUZVAIIHoPoDjy9F6vFPRSTbmvOaUSgY AMT2LetHltp8lFxxOk/BWGKHHNEkuEFCVav1qw/VEz0e1TSI9D9kUIYzZL3y4kuj/QHla1 H2/kk8MwQ24VFJVjtY7lqCgxiFE73pc7RrfhjjB3RQERHSg8thJP8hPg7eYOeC4ru68GLu kkKCsSYvvtlLgI4ImHw1VA/db6BAbFgZxHNuyQJwDvNp3VwH0H09ACjd5ue2zQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1767373104; 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=dY3Dy1TDOfbv0IuD8RNMd1ZYDTsQHJY9BJe6vW12JNo=; b=Ank82lij8JkHlVDLruZIV5i00YZmm7BHPTYi9drNk7pzL5RVuxnicWRroc9Xq55aQOowN9 mvsQjoR74vEuoegad/7BOloJ89vUn6mkKYr4ZMTAECN0sKeFdjwBbhGkHff6GuxT66wFGW VbA53JaLNM+l1XGTuxfRbPCnQ1YJuqv/WiB+DGx7Sc4niKT+lgdStdmy4w719+mEZyIg6d L3a60XletUbBo55+/hXh4OxMbbduVugVOW844yKHsdUQB93QOu0iEu+O9SKwHAY6ha2HfJ 4GtCUhmLul0MZVtJF/IxCRJUDL72vAcvmFo7VklUlM2euarkvh63xfQrn5eTIw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1767373104; a=rsa-sha256; cv=none; b=Fyon/YJR8U9rcuGrLjW/tO07YUmw7RIB0xsUTmGfCaeJ7UH+z+6FXwkFKSWVNjL+qX0yt3 cjrLn/x+4sxiTBgmgjqvvCHEEw+EA3VBf4BlPKJsZ7KOu2wBcVlsn9kxQVJIFG0xTo+lM5 DkNcLA1hDArw2BXuDrD3ij1f0woAUmv448thCobKTL0S1gbGIFciJwz/ydcPvxU1AKYIPv 2OFXX76aXBoygJjg/Gf+KyUCPTX41qBjDHPVvT/Y+t9Fw0TfyxsWuVrHPwYu97aYCML/hm GyXalk20LcrBciRMvTho7ADf/klVYVshamv27glZvSbF7eWr7hSSVw5ySwxfjw== 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 4djVJJ1rrtzBMw for ; Fri, 02 Jan 2026 16:58:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 231b1 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 02 Jan 2026 16:58:24 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Christos Margiolis Subject: git: d912ea5879cd - main - sound: Merge midi_destroy() with midi_uninit() 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: christos X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d912ea5879cd6b1042671ae3986d496c63be4d49 Auto-Submitted: auto-generated Date: Fri, 02 Jan 2026 16:58:24 +0000 Message-Id: <6957f930.231b1.65ffa9ab@gitrepo.freebsd.org> The branch main has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=d912ea5879cd6b1042671ae3986d496c63be4d49 commit d912ea5879cd6b1042671ae3986d496c63be4d49 Author: Christos Margiolis AuthorDate: 2026-01-02 16:56:19 +0000 Commit: Christos Margiolis CommitDate: 2026-01-02 16:58:05 +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 --- 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) {