pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/33906 )
Change subject: layer23: modem: Avoid direct transition ST_PACKET_TRANSFER->ST_PACKET_IDLE ......................................................................
layer23: modem: Avoid direct transition ST_PACKET_TRANSFER->ST_PACKET_IDLE
Right now the existing code is switching to state IDLE and hence running grr_st_packet_idle_onenter() which attempts stuff like starting an attach. This is all done while the L1CTL RESET + FBSB is still in progress. We should instead wait to receive confirmation from those. As an easy implementation for now, simply switch to the GRR_ST_PACKET_NOT_READY state, which will move to GRR_ST_PACKET_IDLE once it starts receiving CCCH blocks (aka it will already have gone through L1CTL RESET + FBSB completely).
Change-Id: Ie797b36701d10c6052500c637a08b061bb1e4bd7 --- M src/host/layer23/src/modem/grr.c 1 file changed, 20 insertions(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/06/33906/1
diff --git a/src/host/layer23/src/modem/grr.c b/src/host/layer23/src/modem/grr.c index 2047eef..12d7059 100644 --- a/src/host/layer23/src/modem/grr.c +++ b/src/host/layer23/src/modem/grr.c @@ -688,7 +688,7 @@ break; case GRR_EV_PDCH_RELEASE_REQ: modem_sync_to_cell(ms); - osmo_fsm_inst_state_chg(fi, GRR_ST_PACKET_IDLE, 0, 0); + osmo_fsm_inst_state_chg(fi, GRR_ST_PACKET_NOT_READY, 0, 0); break; default: OSMO_ASSERT(0); @@ -717,8 +717,7 @@ }, [GRR_ST_PACKET_TRANSFER] = { .name = "PACKET_TRANSFER", - .out_state_mask = S(GRR_ST_PACKET_NOT_READY) - | S(GRR_ST_PACKET_IDLE), + .out_state_mask = S(GRR_ST_PACKET_NOT_READY), .in_event_mask = S(GRR_EV_PDCH_UL_TBF_CFG_REQ) | S(GRR_EV_PDCH_DL_TBF_CFG_REQ) | S(GRR_EV_PDCH_BLOCK_REQ)