handover_test: ack release only when lchan is still waiting

Change-Id: I4c7596df06d7c211adcfcd110a1984903a0820e1
This commit is contained in:
Neels Hofmeyr 2021-05-11 17:22:57 +02:00
parent 4ab0555f39
commit f9fea61fa9
1 changed files with 8 additions and 6 deletions

View File

@ -439,12 +439,14 @@ struct gsm_lchan *create_lchan(struct gsm_bts *bts, int full_rate, const char *c
static void lchan_release_ack(struct gsm_lchan *lchan) static void lchan_release_ack(struct gsm_lchan *lchan)
{ {
if (lchan->fi && lchan->fi->state == LCHAN_ST_WAIT_BEFORE_RF_RELEASE) { if (!lchan->fi || lchan->fi->state != LCHAN_ST_WAIT_BEFORE_RF_RELEASE)
/* don't wait before release */ return;
osmo_fsm_inst_state_chg(lchan->fi, LCHAN_ST_WAIT_RF_RELEASE_ACK, 0, 0); /* don't wait before release */
/* ack the release */ osmo_fsm_inst_state_chg(lchan->fi, LCHAN_ST_WAIT_RF_RELEASE_ACK, 0, 0);
osmo_fsm_inst_dispatch(lchan->fi, LCHAN_EV_RSL_RF_CHAN_REL_ACK, 0); if (lchan->fi->state == LCHAN_ST_UNUSED)
} return;
/* ack the release */
osmo_fsm_inst_dispatch(lchan->fi, LCHAN_EV_RSL_RF_CHAN_REL_ACK, 0);
} }
static void lchan_clear(struct gsm_lchan *lchan) static void lchan_clear(struct gsm_lchan *lchan)