aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--openbsc/src/libbsc/abis_rsl.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/openbsc/src/libbsc/abis_rsl.c b/openbsc/src/libbsc/abis_rsl.c
index e50e332c0..b75c3f355 100644
--- a/openbsc/src/libbsc/abis_rsl.c
+++ b/openbsc/src/libbsc/abis_rsl.c
@@ -446,14 +446,6 @@ int rsl_chan_activate_lchan(struct gsm_lchan *lchan, uint8_t act_type,
struct rsl_ie_chan_mode cm;
struct gsm48_chan_desc cd;
- rc = channel_mode_from_lchan(&cm, lchan);
- if (rc < 0) {
- LOGP(DRSL, LOGL_ERROR,
- "%s Cannot find channel mode from lchan type\n",
- gsm_ts_and_pchan_name(lchan->ts));
- return rc;
- }
-
/* If a TCH_F/PDCH TS is in PDCH mode, deactivate PDCH first. */
if (lchan->ts->pchan == GSM_PCHAN_TCH_F_PDCH
&& (lchan->ts->flags & TS_F_PDCH_ACTIVE)) {
@@ -463,6 +455,14 @@ int rsl_chan_activate_lchan(struct gsm_lchan *lchan, uint8_t act_type,
return rsl_ipacc_pdch_activate(lchan->ts, 0);
}
+ rc = channel_mode_from_lchan(&cm, lchan);
+ if (rc < 0) {
+ LOGP(DRSL, LOGL_ERROR,
+ "%s Cannot find channel mode from lchan type\n",
+ gsm_ts_and_pchan_name(lchan->ts));
+ return rc;
+ }
+
rsl_lchan_set_state(lchan, LCHAN_S_ACT_REQ);
ta = lchan->rqd_ta;