[asterisk-commits] jpeeler: branch 1.6.2 r271338 - in /branches/1.6.2: ./ channels/chan_dahdi.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Fri Jun 18 13:40:39 CDT 2010


Author: jpeeler
Date: Fri Jun 18 13:40:34 2010
New Revision: 271338

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=271338
Log:
Merged revisions 269307 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/trunk

........
  r269307 | rmudgett | 2010-06-09 11:54:38 -0500 (Wed, 09 Jun 2010) | 12 lines
  
  Eliminate deadlock potential in dahdi_fixup().
  
  Calling dahdi_indicate() within dahdi_fixup() while the owner pointers are
  in a potentially inconsistent state is a potentially bad thing in
  principle.
  
  However, calling dahdi_indicate() when the channel private lock is already
  held can cause a deadlock if the PRI lock is needed because
  dahdi_indicate() will also get the channel private lock.  The pri_grab()
  function assumes that the channel private lock is held once to avoid
  deadlock.
........

Modified:
    branches/1.6.2/   (props changed)
    branches/1.6.2/channels/chan_dahdi.c

Propchange: branches/1.6.2/
------------------------------------------------------------------------------
Binary property 'trunk-merged' - no diff available.

Modified: branches/1.6.2/channels/chan_dahdi.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.6.2/channels/chan_dahdi.c?view=diff&rev=271338&r1=271337&r2=271338
==============================================================================
--- branches/1.6.2/channels/chan_dahdi.c (original)
+++ branches/1.6.2/channels/chan_dahdi.c Fri Jun 18 13:40:34 2010
@@ -5535,10 +5535,11 @@
 				dahdi_unlink(NULL, p, 0);
 			p->subs[x].owner = newchan;
 		}
-	if (newchan->_state == AST_STATE_RINGING)
-		dahdi_indicate(newchan, AST_CONTROL_RINGING, NULL, 0);
 	update_conf(p);
 	ast_mutex_unlock(&p->lock);
+	if (newchan->_state == AST_STATE_RINGING) {
+		dahdi_indicate(newchan, AST_CONTROL_RINGING, NULL, 0);
+	}
 	return 0;
 }
 




More information about the asterisk-commits mailing list