summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShaun Ruffell <sruffell@digium.com>2010-03-22 09:20:44 +0000
committerShaun Ruffell <sruffell@digium.com>2010-03-22 09:20:44 +0000
commit9b59ddd84b6e6b3b6805924e735bcd5c8e6f1e4a (patch)
treeeba5a3d81eac455dd7544e9bde478e70126a6baf
parent44de2fe35d90fca285af3c0781cc5e6e34d88550 (diff)
wctdm24xxp: Make sure we're really stopped before deleting the channels.
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@8376 a0bf4364-ded3-4de4-8d8a-66a801d63aff
-rw-r--r--drivers/dahdi/wctdm24xxp/base.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/dahdi/wctdm24xxp/base.c b/drivers/dahdi/wctdm24xxp/base.c
index 02e85f0..e91f660 100644
--- a/drivers/dahdi/wctdm24xxp/base.c
+++ b/drivers/dahdi/wctdm24xxp/base.c
@@ -4152,6 +4152,8 @@ static void wctdm_back_out_gracefully(struct wctdm *wc)
struct sframe_packet *frame;
LIST_HEAD(local_list);
+ voicebus_release(&wc->vb);
+
for (i = 0; i < ARRAY_SIZE(wc->spans); ++i) {
if (wc->spans[i] && wc->spans[i]->span.chans)
kfree(wc->spans[i]->span.chans);
@@ -4165,8 +4167,6 @@ static void wctdm_back_out_gracefully(struct wctdm *wc)
wc->chans[i] = NULL;
}
- voicebus_release(&wc->vb);
-
spin_lock_irqsave(&wc->frame_list_lock, flags);
list_splice(&wc->frame_list, &local_list);
spin_unlock_irqrestore(&wc->frame_list_lock, flags);