summaryrefslogtreecommitdiff
path: root/drivers/dahdi/wcb4xxp/base.c
diff options
context:
space:
mode:
authorShaun Ruffell <sruffell@digium.com>2008-10-31 17:11:02 +0000
committerShaun Ruffell <sruffell@digium.com>2008-10-31 17:11:02 +0000
commitb474b2743e9ced7315cc34dfcad95f37fbc55f92 (patch)
treecc619e0c9057ba4b568cb04b4c3f015a32fa8111 /drivers/dahdi/wcb4xxp/base.c
parent606a34888f058cf2806307fe671a04896d765ae4 (diff)
Fix for a case where a span might not always come back up after a disconnect.
Patch provided by akohlsmith. Issue: DAHDI-174 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@5186 a0bf4364-ded3-4de4-8d8a-66a801d63aff
Diffstat (limited to 'drivers/dahdi/wcb4xxp/base.c')
-rw-r--r--drivers/dahdi/wcb4xxp/base.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/dahdi/wcb4xxp/base.c b/drivers/dahdi/wcb4xxp/base.c
index 7b368ab..9c959eb 100644
--- a/drivers/dahdi/wcb4xxp/base.c
+++ b/drivers/dahdi/wcb4xxp/base.c
@@ -1130,6 +1130,10 @@ static void hfc_timer_expire(struct b4xxp_span *s, int t_no)
* T2 is not actually used in the driver, it is handled by the HFC-4S internally.
* T3 is used by the TE state machine; it is the maximum time the TE side should wait for the INFO4 (activated) signal.
*/
+
+/* First, disable the expired timer; hfc_force_st_state() may activate it again. */
+ s->hfc_timer_on[t_no] = 0;
+
switch(t_no) {
case HFC_T1: /* switch to G4 (pending deact.), resume auto mode */
hfc_force_st_state(b4, s->port, 4, 1);
@@ -1144,9 +1148,6 @@ static void hfc_timer_expire(struct b4xxp_span *s, int t_no)
if(printk_ratelimit())
dev_warn(b4->dev, "hfc_timer_expire found an unknown expired timer (%d)??\n", t_no);
}
-
-/* disable the expired timer */
- s->hfc_timer_on[t_no] = 0;
}
/*