From 09eb417ec4ea5feeb867f8b27e62cddcc6272a81 Mon Sep 17 00:00:00 2001 From: Shaun Ruffell Date: Thu, 2 Jun 2011 20:01:29 +0000 Subject: [PATCH] dahdi: Do not release the echocan under lock. This allows any echocan cleanup to block if necessary. Especially useful for hardware echocans that may need to wait for hardware to complete the cleanup process. Signed-off-by: Shaun Ruffell Acked-by: Tzafrir Cohen git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9939 a0bf4364-ded3-4de4-8d8a-66a801d63aff --- drivers/dahdi/dahdi-base.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/dahdi/dahdi-base.c b/drivers/dahdi/dahdi-base.c index 2a5d6f9..cbc2961 100644 --- a/drivers/dahdi/dahdi-base.c +++ b/drivers/dahdi/dahdi-base.c @@ -1430,13 +1430,13 @@ static void close_channel(struct dahdi_chan *chan) if (chan->span && oldconf) dahdi_disable_dacs(chan); + spin_unlock_irqrestore(&chan->lock, flags); + if (ec_state) { ec_state->ops->echocan_free(chan, ec_state); release_echocan(ec_current); } - spin_unlock_irqrestore(&chan->lock, flags); - /* release conference resource, if any to release */ if (oldconf) dahdi_check_conf(oldconf);