Review at  https://gerrit.osmocom.org/7501

gscon: fix illegal state transitions

The GSCON fsm has two illegal state transions. The transions
themselves are logically legal but theur respective entries
in out_state_mask are missing.

- remove unnecessary transition from ST_ACTIVE to ST_ACTIVE
- Add ST_CLEARING to the out_state_mask of ST_WAIT_HO_COMPL

Change-Id: I165c3e8b4b268b50e5f4a482b0fe890e940637b3
Closes: OS#3109
---
M src/libbsc/bsc_subscr_conn_fsm.c
1 file changed, 1 insertion(+), 2 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/01/7501/1

diff --git a/src/libbsc/bsc_subscr_conn_fsm.c b/src/libbsc/bsc_subscr_conn_fsm.c
index 03eec3f..a24cb31 100644
--- a/src/libbsc/bsc_subscr_conn_fsm.c
+++ b/src/libbsc/bsc_subscr_conn_fsm.c
@@ -417,7 +417,6 @@
                        if (!conn->user_plane.fi_bts) {
                                resp = 
gsm0808_create_assignment_failure(GSM0808_CAUSE_EQUIPMENT_FAILURE, NULL);
                                sigtran_send(conn, resp, fi);
-                               osmo_fsm_inst_state_chg(fi, ST_ACTIVE, 0, 0);
                                return;
                        }
                        break;
@@ -916,7 +915,7 @@
        [ST_WAIT_HO_COMPL] = {
                .name = OSMO_STRINGIFY(WAIT_HO_COMPL),
                .in_event_mask = S(GSCON_EV_HO_COMPL) | S(GSCON_EV_HO_FAIL) | 
S(GSCON_EV_HO_TIMEOUT),
-               .out_state_mask = S(ST_ACTIVE) | S(ST_WAIT_MDCX_BTS_HO),
+               .out_state_mask = S(ST_ACTIVE) | S(ST_WAIT_MDCX_BTS_HO) | 
S(ST_CLEARING),
                .action = gscon_fsm_wait_ho_compl,
        },
        [ST_WAIT_MDCX_BTS_HO] = {

-- 
To view, visit https://gerrit.osmocom.org/7501
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I165c3e8b4b268b50e5f4a482b0fe890e940637b3
Gerrit-PatchSet: 1
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Owner: dexter <[email protected]>

Reply via email to