aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2008-12-27 11:13:36 +0000
committerHarald Welte <laforge@gnumonks.org>2008-12-27 11:13:36 +0000
commit9524e34ee4327210d6ede39c3efcd3bbcd1cd61d (patch)
tree25cf37c2597f7d621a334a7103b1d6c7648f05e7 /src
parent32636e8910fa7f80726d14ecc430dce451030466 (diff)
* lchan_free() the channels that we RF_CHAN_RELEASE
Diffstat (limited to 'src')
-rw-r--r--src/abis_rsl.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/abis_rsl.c b/src/abis_rsl.c
index 0cf206c20..914517360 100644
--- a/src/abis_rsl.c
+++ b/src/abis_rsl.c
@@ -544,6 +544,8 @@ static int abis_rsl_rx_dchan(struct msgb *msg)
case RSL_MT_CONN_FAIL:
DEBUGP(DRSL, "rsl_rx_dchan: Connection Fail, release channel\n");
rc = rsl_chan_release(msg->lchan);
+ /* FIXME: only free it after channel release ACK */
+ lchan_free(msg->lchan);
break;
case RSL_MT_MEAS_RES:
DEBUGP(DRSL, "rsl_rx_dchan: Measurement Result\n");
@@ -752,6 +754,7 @@ static int abis_rsl_rx_rll(struct msgb *msg)
case RSL_MT_REL_IND:
DEBUGP(DRLL, "RELEASE INDICATION chan_nr=0x%02x\n", rllh->chan_nr);
rc = rsl_chan_release(msg->lchan);
+ /* FIXME: only free it after channel release ACK */
lchan_free(msg->lchan);
break;
case RSL_MT_ERROR_IND: