diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-06-30 13:04:13 +0800 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-06-30 13:04:13 +0800 |
commit | d9c9f07c2c05ac84b53c70c983fc5ffe468dc9ca (patch) | |
tree | e481ccbea25b0b53124fd06be585987dbba77cf7 /openbsc/src/handover_logic.c | |
parent | f2553a6c3a9c677f71fd7f123c54d80a915f7a0a (diff) |
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.
Diffstat (limited to 'openbsc/src/handover_logic.c')
-rw-r--r-- | openbsc/src/handover_logic.c | 4 |
1 files changed, 3 insertions, 1 deletions
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); } |