fix RSL Chan Mode Modif for dyn TS

bts_supports_cm() should never be fed with dynamic pchan kinds (e.g.
GSM_PCHAN_TCH_F_TCH_H_PDCH), but with the currently active pchan kind instead
(GSM_PCHAN_TCH_F). Otherwise the switch() inside bts_supports_cm() fails.

Change-Id: I26707e5e63f5117a8c35453e9cb6a654280b044c
This commit is contained in:
Neels Hofmeyr 2018-09-10 02:38:17 +02:00
parent 386c33fa84
commit ec01550b3e
1 changed files with 1 additions and 1 deletions

View File

@ -1498,7 +1498,7 @@ static int rsl_rx_mode_modif(struct msgb *msg)
cm = (struct rsl_ie_chan_mode *) TLVP_VAL(&tp, RSL_IE_CHAN_MODE);
lchan_tchmode_from_cmode(lchan, cm);
if (bts_supports_cm(lchan->ts->trx->bts, lchan->ts->pchan, lchan->tch_mode) != 1) {
if (bts_supports_cm(lchan->ts->trx->bts, ts_pchan(lchan->ts), lchan->tch_mode) != 1) {
LOGP(DRSL, LOGL_ERROR, "invalid mode/codec instructed by BSC, check BSC configuration.\n");
return rsl_tx_mode_modif_nack(lchan, RSL_ERR_SERV_OPT_UNAVAIL);
}