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.w...@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);
        }
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to