From 021971781de88bb9cd58f18c79a71379a6cfa920 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Fri, 7 Sep 2018 16:24:04 +0200 Subject: lchan_fsm: allow late RTP release events without erroring Change-Id: Ia463f97402b957bd13a95d18d291d1c1f006f089 --- src/osmo-bsc/lchan_fsm.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index 7d4738045..1ef7869d3 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -967,6 +967,10 @@ static void lchan_fsm_wait_rf_release_ack(struct osmo_fsm_inst *fi, uint32_t eve lchan_fsm_state_chg(LCHAN_ST_UNUSED); break; + case LCHAN_EV_RTP_RELEASED: + /* ignore late lchan_rtp_fsm release events */ + return; + default: OSMO_ASSERT(false); } @@ -1119,6 +1123,7 @@ static const struct osmo_fsm_state lchan_fsm_states[] = { .name = "WAIT_BEFORE_RF_RELEASE", .in_event_mask = 0 | S(LCHAN_EV_RLL_REL_IND) /* allow late REL_IND of SAPI[0] */ + | S(LCHAN_EV_RTP_RELEASED) /* ignore late lchan_rtp_fsm release events */ , .out_state_mask = 0 | S(LCHAN_ST_UNUSED) @@ -1131,6 +1136,7 @@ static const struct osmo_fsm_state lchan_fsm_states[] = { .action = lchan_fsm_wait_rf_release_ack, .in_event_mask = 0 | S(LCHAN_EV_RSL_RF_CHAN_REL_ACK) + | S(LCHAN_EV_RTP_RELEASED) /* ignore late lchan_rtp_fsm release events */ , .out_state_mask = 0 | S(LCHAN_ST_UNUSED) @@ -1140,6 +1146,9 @@ static const struct osmo_fsm_state lchan_fsm_states[] = { }, [LCHAN_ST_WAIT_AFTER_ERROR] = { .name = "WAIT_AFTER_ERROR", + .in_event_mask = 0 + | S(LCHAN_EV_RTP_RELEASED) /* ignore late lchan_rtp_fsm release events */ + , .out_state_mask = 0 | S(LCHAN_ST_UNUSED) , -- cgit v1.2.3