diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2019-01-30 16:46:58 +0100 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2019-02-06 01:30:44 +0100 |
commit | 4daa21076f823b2f1aa07581befa5ed77d95aead (patch) | |
tree | bbddeeb31a0f61fc633d2137d1b8a45428b0e872 /src/osmo-bsc/lchan_fsm.c | |
parent | 963763dfec6843adef2bd61425192c39d14e3ba0 (diff) |
handover_fsm: do not access conn->assignment.req, it may be outdated
handover_fsm.c accesses conn->assignment.req.s15_s0 to find out the current
lchan's AMR configuration. However, conn->assignment.* values are only valid
during an ongoing assignment. Those values may be overwritten by any failed
Assignment attempt, at any time, and hence do not reflect the currently
assigned conn->lchan. Those realms must be kept separate.
The assignment.req.s15_s0 get passed to lchan_activate(), so it makes most
sense to store these values in struct gsm_lchan once the lchan activation
succeeded.
Add gsm_lchan.s15_s0, store the s15_s0 received in lchan_activate_info during
lchan_activate().
In handover_fsm.c, use conn->lchan->s15_s0 instead of conn->assignment.*.
Change-Id: Id8018fd9d56421f2ab7be91703018f6d6f21c929
Diffstat (limited to 'src/osmo-bsc/lchan_fsm.c')
-rw-r--r-- | src/osmo-bsc/lchan_fsm.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index f344cf990..70f762225 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -544,6 +544,7 @@ static void lchan_fsm_wait_ts_ready_onenter(struct osmo_fsm_inst *fi, uint32_t p lchan_fail("Can not generate multirate configuration IE\n"); return; } + lchan->s15_s0 = info->s15_s0; } switch (info->chan_mode) { |