From d0188836f8717da029d7c0b4072cadbba66e4786 Mon Sep 17 00:00:00 2001
From: Nenad Corbic <ncorbic@sangoma.com>
Date: Wed, 26 Oct 2011 16:17:11 -0400
Subject: [PATCH] freetdm: Do not set hw block clear flag on startup if port is
 already up

---
 .../ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c   | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c b/libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c
index dc8ed7dbc2..fbe5889615 100644
--- a/libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c
+++ b/libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_main.c
@@ -307,10 +307,12 @@ static void handle_hw_alarm(ftdm_event_t *e)
 					}
 				} else {
 					SS7_DEBUG("handle_hw_alarm: Clear\n");
-					sngss7_set_ckt_blk_flag(ss7_info, FLAG_GRP_HW_UNBLK_TX);
-					sngss7_clear_ckt_blk_flag(ss7_info, FLAG_GRP_HW_BLOCK_TX);
-					if (ftdmchan->state != FTDM_CHANNEL_STATE_SUSPENDED) {
-						ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_SUSPENDED);
+					if (sngss7_set_ckt_blk_flag(ss7_info, FLAG_GRP_HW_BLOCK_TX)) {
+						sngss7_set_ckt_blk_flag(ss7_info, FLAG_GRP_HW_UNBLK_TX);
+						sngss7_clear_ckt_blk_flag(ss7_info, FLAG_GRP_HW_BLOCK_TX);
+						if (ftdmchan->state != FTDM_CHANNEL_STATE_SUSPENDED) {
+							ftdm_set_state(ftdmchan, FTDM_CHANNEL_STATE_SUSPENDED);
+						}
 					}
 				}
 			}