aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/common/rsl.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/common/rsl.c b/src/common/rsl.c
index 10b95ae1..aac520ca 100644
--- a/src/common/rsl.c
+++ b/src/common/rsl.c
@@ -1784,19 +1784,23 @@ static void ipacc_dyn_pdch_ts_disconnected(struct gsm_bts_trx_ts *ts)
LOGP(DRSL, LOGL_DEBUG,
"%s PDCH DEACT operation: channel disconnected, will reconnect as TCH\n",
gsm_lchan_name(ts->lchan));
- ts->lchan[0].type = GSM_LCHAN_TCH_F;
as_pchan = GSM_PCHAN_TCH_F;
} else if (ts->flags & TS_F_PDCH_ACT_PENDING) {
LOGP(DRSL, LOGL_DEBUG,
"%s PDCH ACT operation: channel disconnected, will reconnect as PDTCH\n",
gsm_lchan_name(ts->lchan));
- ts->lchan[0].type = GSM_LCHAN_PDTCH;
as_pchan = GSM_PCHAN_PDCH;
} else
/* No reconnect pending. */
return;
+ rc = conf_lchans_as_pchan(ts, as_pchan);
+ if (rc)
+ goto error_nack;
+
rc = bts_model_ts_connect(ts, as_pchan);
+
+error_nack:
/* Error? then NACK right now. */
if (rc)
ipacc_dyn_pdch_complete(ts, rc);