From d9c9f07c2c05ac84b53c70c983fc5ffe468dc9ca Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Wed, 30 Jun 2010 13:04:13 +0800 Subject: handover: lchan_free will only free the local resources. lchan_free only free's the local resource of the BSC but does not release the channel at the BTS. Use lchan_release to properly release the channel. This code assumes that the timeout happens after a CHAN ACT ACK/NACK otherwise we have some problems. The comment indicates that this is the case. --- openbsc/src/handover_logic.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'openbsc/src/handover_logic.c') diff --git a/openbsc/src/handover_logic.c b/openbsc/src/handover_logic.c index cdb066447..92580bfb7 100644 --- a/openbsc/src/handover_logic.c +++ b/openbsc/src/handover_logic.c @@ -182,7 +182,9 @@ static void ho_T3103_cb(void *_ho) DEBUGP(DHO, "HO T3103 expired\n"); counter_inc(net->stats.handover.timeout); - lchan_free(ho->new_lchan); + ho->new_lchan->conn->ho_lchan = NULL; + ho->new_lchan->conn = NULL; + lchan_release(ho->new_lchan, 0, 1); llist_del(&ho->list); talloc_free(ho); } -- cgit v1.2.3