summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2007-11-14 14:53:28 +0000
committertzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2007-11-14 14:53:28 +0000
commit32fe307d161209d3ea138065691d04bd6f4d6edc (patch)
treef14ae85be479e0700da25eaa8744003200966aee
parent3cb14617276c5dbfd90c3fe3039eda7b16e38aeb (diff)
Fix a deadlock spotted on some SMP installations.
git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.2@3229 5390a7c7-147a-4af0-8ec9-7488f05a26cb
-rw-r--r--xpp/xpp_zap.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/xpp/xpp_zap.c b/xpp/xpp_zap.c
index 67de877..aabc236 100644
--- a/xpp/xpp_zap.c
+++ b/xpp/xpp_zap.c
@@ -1364,7 +1364,7 @@ static void do_ec(xpd_t *xpd)
struct zt_chan *chans = xpd->span.chans;
int i;
-#if WITH_ECHO_SUPPRESSION
+#ifdef WITH_ECHO_SUPPRESSION
/* FIXME: need to Echo cancel double buffered data */
for (i = 0;i < xpd->span.channels; i++) {
if(unlikely(IS_SET(xpd->digital_signalling, i))) /* Don't echo cancel PRI/BRI D-chans */
@@ -1419,12 +1419,12 @@ static void xpp_receiveprep(xpd_t *xpd)
memset(chans[i].readchunk, 0x7F, ZT_CHUNKSIZE); // SILENCE
}
}
- do_ec(xpd);
spin_unlock_irqrestore(&xpd->lock, flags);
/*
* This should be out of spinlocks, as it may call back our hook setting
* methods
*/
+ do_ec(xpd);
zt_receive(&xpd->span);
}
@@ -1775,7 +1775,7 @@ int __init xpp_zap_init(void)
INFO("revision %s MAX_XPDS=%d (%d*%d)\n", XPP_VERSION,
MAX_XPDS, MAX_UNIT, MAX_SUBUNIT);
-#if WITH_ECHO_SUPPRESSION
+#ifdef WITH_ECHO_SUPPRESSION
INFO("FEATURE: with ECHO_SUPPRESSION\n");
#else
INFO("FEATURE: without ECHO_SUPPRESSION\n");