[dahdi-commits] sruffell: linux/trunk r10205 - /linux/trunk/drivers/dahdi/dahdi-base.c

SVN commits to the DAHDI project dahdi-commits at lists.digium.com
Fri Sep 23 15:18:40 CDT 2011


Author: sruffell
Date: Fri Sep 23 15:18:36 2011
New Revision: 10205

URL: http://svnview.digium.com/svn/dahdi?view=rev&rev=10205
Log:
dahdi: Check for master in DAHDI_STARTUP / resolves MeetMe regression.

There were a couple of reports that MeetMe conferences were not
working in 2.5.0.1 and that downgrading to 2.4.1.2 resolved the
issue. This could occur if there were no analog spans in a system,
and all the digital spans were out of alarm before DAHDI_STARTUP
ioctl was called by dahdi_cfg. If the spans were *not* out of alarm,
they would be marked master when the span changes it's alarm state.

This would result in a condition where no spans were marked as the
"master" and so the core timer was handling conferencing. The core
timer runs by default at 4ms and most board drivers run at 1ms
intervals, but a channel currently only buffers up 2ms of data when
conferenced. Therefore, 2ms of audio from a board was continuously
dropped from the conference every 4ms by default.

This fixes a regression first introduced in 2.5.0 which was
specifically added in revision r9611 "dahdi: Do not locate new
master in interrupt context."

Internal-reference-ID: DAHDI-894
Signed-off-by: Shaun Ruffell <sruffell at digium.com>
Tested-by: Dennis Martinez <dmartinez 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=10205&r1=10204&r2=10205
==============================================================================
--- linux/trunk/drivers/dahdi/dahdi-base.c (original)
+++ linux/trunk/drivers/dahdi/dahdi-base.c Fri Sep 23 15:18:36 2011
@@ -4797,6 +4797,10 @@
 			 */
 			s->chans[x]->rxhooksig = DAHDI_RXSIG_INITIAL;
 		}
+
+		/* Now that this span is running, it might be selected as the
+		 * master span */
+		__dahdi_find_master_span();
 	}
 	put_span(s);
 	return 0;




More information about the dahdi-commits mailing list