From b474b2743e9ced7315cc34dfcad95f37fbc55f92 Mon Sep 17 00:00:00 2001 From: Shaun Ruffell Date: Fri, 31 Oct 2008 17:11:02 +0000 Subject: 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 --- drivers/dahdi/wcb4xxp/base.c | 7 ++++--- 1 file 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; } /* -- cgit v1.2.3