diff options
author | Harald Welte <laforge@gnumonks.org> | 2010-06-28 22:18:26 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2010-06-28 22:18:26 +0200 |
commit | f7fef48e1bb0fafb1a9ef4e63eee3602c9db3826 (patch) | |
tree | 3cff0077852b0e23d149788c9aab28eb9d338305 /openbsc | |
parent | c0d59504b48fc3896082a12fbebd7102ecb87094 (diff) |
[SGSN] LLC: properly free LLC entities at TLLI unassignment
Diffstat (limited to 'openbsc')
-rw-r--r-- | openbsc/src/gprs/gprs_llc.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/openbsc/src/gprs/gprs_llc.c b/openbsc/src/gprs/gprs_llc.c index edb428583..f45bd325c 100644 --- a/openbsc/src/gprs/gprs_llc.c +++ b/openbsc/src/gprs/gprs_llc.c @@ -151,6 +151,12 @@ static struct gprs_llc_llme *llme_alloc(uint32_t tlli) return llme; } +static void llme_free(struct gprs_llc_llme *llme) +{ + llist_del(&llme->list); + talloc_free(llme); +} + enum gprs_llc_cmd { GPRS_LLC_NULL, GPRS_LLC_RR, @@ -732,6 +738,7 @@ int gprs_llgmm_assign(struct gprs_llc_llme *llme, struct gprs_llc_lle *l = &llme->lle[i]; l->state = GPRS_LLES_UNASSIGNED; } + llme_free(llme); } else return -EINVAL; |