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.
diff --git a/openbsc/src/handover_logic.c b/openbsc/src/handover_logic.c
index cdb0664..92580bf 100644
--- a/openbsc/src/handover_logic.c
+++ b/openbsc/src/handover_logic.c
@@ -182,7 +182,9 @@
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);
}