nm_channel_fsm: Release lchans after BTS shutdown

This fixes some TTCN3 tests where some lchan resources were kept from
previous tests.

Change-Id: I78dca32cd061fba86cc88c4c4f323b33d51c58d0
This commit is contained in:
Pau Espin 2021-10-06 18:51:01 +02:00
parent b1409015fa
commit 15c23179dc
3 changed files with 15 additions and 0 deletions

View File

@ -194,4 +194,6 @@ int conf_lchans_as_pchan(struct gsm_bts_trx_ts *ts,
bool ts_is_pdch(const struct gsm_bts_trx_ts *ts);
void gsm_ts_release(struct gsm_bts_trx_ts *ts);
#endif /* _GSM_DATA_H */

View File

@ -305,3 +305,13 @@ bool ts_is_pdch(const struct gsm_bts_trx_ts *ts)
return false;
}
}
void gsm_ts_release(struct gsm_bts_trx_ts *ts)
{
unsigned int ln;
for (ln = 0; ln < ARRAY_SIZE(ts->lchan); ln++) {
struct gsm_lchan *lchan = &ts->lchan[ln];
gsm_lchan_release(lchan, LCHAN_REL_ACT_OML);
}
}

View File

@ -193,6 +193,9 @@ static void nm_chan_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *dat
oml_mo_state_chg(&ts->mo, -1, -1, NM_STATE_SHUTDOWN);
break;
case NM_EV_SHUTDOWN_FINISH:
gsm_ts_release(ts);
if (ts->vamos.peer)
gsm_ts_release(ts->vamos.peer);
nm_chan_fsm_state_chg(fi, NM_CHAN_ST_OP_DISABLED_NOTINSTALLED);
break;
default: