<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">Index: src/sys/dev/audio.c
===================================================================
RCS file: /cvsroot/src/sys/dev/Attic/audio.c,v
retrieving revision 1.357.2.13
diff -u -r1.357.2.13 audio.c
--- src/sys/dev/audio.c	7 Jun 2018 18:24:16 -0000	1.357.2.13
+++ src/sys/dev/audio.c	18 Sep 2019 20:18:48 -0000
@@ -2260,6 +2260,10 @@
 			goto bad;
 	}
 
+	if (sc-&gt;sc_usemixer &amp;&amp; audio_can_capture(sc))
+		audio_init_ringbuffer(sc, &amp;vc-&gt;sc_mrr, AUMODE_PLAY);
+	if (sc-&gt;sc_usemixer &amp;&amp; audio_can_playback(sc))
+		audio_init_ringbuffer(sc, &amp;vc-&gt;sc_mpr, AUMODE_PLAY);
 	if (!sc-&gt;sc_usemixer || sc-&gt;sc_opens + sc-&gt;sc_recopens == 0) {
 		sc-&gt;sc_credentials = kauth_cred_get();
 		kauth_cred_hold(sc-&gt;sc_credentials);
@@ -3799,6 +3803,8 @@
 		inp = cb-&gt;s.inp;
 		cb-&gt;stamp += blksize;
 		if (cb-&gt;mmapped) {
+			cb-&gt;s.inp = audio_stream_add_inp(&amp;cb-&gt;s, cb-&gt;s.inp,
+			    blksize);
 			DPRINTF(("audio_pint: vc=%p mmapped outp=%p cc=%d "
 				 "inp=%p\n", vc, cb-&gt;s.outp, blksize,
 				  cb-&gt;s.inp));
@@ -5697,12 +5703,14 @@
 adj_done:								\
 				orig[m] = result;			\
 			}						\
+			orig = &amp;orig[m];				\
+			tomix = &amp;tomix[m];				\
 									\
-			if (&amp;orig[m] &gt;=					\
+			if (orig &gt;=					\
 			    (type *)sc-&gt;sc_mixring.sc_mpr.s.end)	\
 				orig =					\
 				 (type *)sc-&gt;sc_mixring.sc_mpr.s.start;	\
-			if (&amp;tomix[m] &gt;= (type *)cb-&gt;s.end)		\
+			if (tomix &gt;= (type *)cb-&gt;s.end)			\
 				tomix = (type *)cb-&gt;s.start;		\
 									\
 			resid -= cc;					\
</pre></body></html>