Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Nov 2020 14:02:43 +0000 (UTC)
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r367892 - head/sys/dev/sound/pcm
Message-ID:  <202011201402.0AKE2hG8088717@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kib
Date: Fri Nov 20 14:02:43 2020
New Revision: 367892
URL: https://svnweb.freebsd.org/changeset/base/367892

Log:
  Unlock channels when any of them are locked, when returning for non-busy state.
  
  Reported and tested by:	"Wall, Stephen" <stephen.wall@redcom.com>
  Sponsored by:	The FreeBSD Foundation
  MFC after:	1 week

Modified:
  head/sys/dev/sound/pcm/dsp.c

Modified: head/sys/dev/sound/pcm/dsp.c
==============================================================================
--- head/sys/dev/sound/pcm/dsp.c	Fri Nov 20 13:00:28 2020	(r367891)
+++ head/sys/dev/sound/pcm/dsp.c	Fri Nov 20 14:02:43 2020	(r367892)
@@ -857,6 +857,8 @@ dsp_io_ops(struct cdev *i_dev, struct uio *buf)
 	getchns(i_dev, &rdch, &wrch, prio);
 
 	if (*ch == NULL || !((*ch)->flags & CHN_F_BUSY)) {
+		if (rdch != NULL || wrch != NULL)
+			relchns(i_dev, rdch, wrch, prio);
 		PCM_GIANT_EXIT(d);
 		return (EBADF);
 	}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202011201402.0AKE2hG8088717>