[dahdi-commits] rmeyerriecks: linux/trunk r9494 - /linux/trunk/drivers/dahdi/dahdi-base.c

SVN commits to the DAHDI project dahdi-commits at lists.digium.com
Fri Nov 19 11:34:48 CST 2010


Author: rmeyerriecks
Date: Fri Nov 19 11:34:42 2010
New Revision: 9494

URL: http://svnview.digium.com/svn/dahdi?view=rev&rev=9494
Log:
dahdi: Fixup prior dahdi_mirror patch

Reworking tsearle's patch to fit with coding guidelines and make
process_masterspan a bit easier to read.

(closes issue #16831)
Reported by: tsearle
Signed-off-by: Russ Meyerriecks <rmeyerriecks at digium.com>
Acked-by: Shaun Ruffell <sruffell at digium.com>

Modified:
    linux/trunk/drivers/dahdi/dahdi-base.c

Modified: linux/trunk/drivers/dahdi/dahdi-base.c
URL: http://svnview.digium.com/svn/dahdi/linux/trunk/drivers/dahdi/dahdi-base.c?view=diff&rev=9494&r1=9493&r2=9494
==============================================================================
--- linux/trunk/drivers/dahdi/dahdi-base.c (original)
+++ linux/trunk/drivers/dahdi/dahdi-base.c Fri Nov 19 11:34:42 2010
@@ -8469,6 +8469,28 @@
 	return 0;
 }
 
+static inline void __pseudo_rx_audio(struct dahdi_chan *chan)
+{
+	unsigned char tmp[DAHDI_CHUNKSIZE];
+	spin_lock(&chan->lock);
+	__dahdi_getempty(chan, tmp);
+	__dahdi_receive_chunk(chan, tmp);
+	spin_unlock(&chan->lock);
+}
+
+#ifdef CONFIG_DAHDI_MIRROR
+static inline void pseudo_rx_audio(struct dahdi_chan *chan)
+{
+	if (!chan->srcmirror)
+		__pseudo_rx_audio(chan);
+}
+#else
+static inline void pseudo_rx_audio(struct dahdi_chan *chan)
+{
+	__pseudo_rx_audio(chan);
+}
+#endif /* CONFIG_DAHDI_MIRROR */
+
 static void process_masterspan(void)
 {
 	unsigned long flags;
@@ -8526,19 +8548,7 @@
 
 	/* do all the pseudo/conferenced channel transmits (putbuf's) */
 	list_for_each_entry(pseudo, &pseudo_chans, node) {
-		unsigned char tmp[DAHDI_CHUNKSIZE];
-		spin_lock(&pseudo->chan.lock);
-#ifdef CONFIG_DAHDI_MIRROR
-		// if this is a mirroring don't generate garbage
-		if(!pseudo->chan.srcmirror)
-		{
-#endif /* CONFIG_DAHDI_MIRROR */
-			__dahdi_getempty(&pseudo->chan, tmp);
-			__dahdi_receive_chunk(&pseudo->chan, tmp);
-#ifdef CONFIG_DAHDI_MIRROR
-		}
-#endif /* CONFIG_DAHDI_MIRROR */
-		spin_unlock(&pseudo->chan.lock);
+		pseudo_rx_audio(&pseudo->chan);
 	}
 
 	for (y = 1; y < maxspans; ++y) {




More information about the dahdi-commits mailing list