aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gprs_rlcmac_sched.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp
index 3b940f47..97ee53e5 100644
--- a/src/gprs_rlcmac_sched.cpp
+++ b/src/gprs_rlcmac_sched.cpp
@@ -178,11 +178,14 @@ static struct msgb *sched_select_ctrl_msg(
}
}
- if (!tbf)
- return NULL;
-
/* any message */
if (msg) {
+ if (!tbf) {
+ LOGP(DRLCMACSCHED, LOGL_ERROR,
+ "Control message to be scheduled, but no TBF (TRX=%d, TS=%d)\n", trx, ts);
+ msgb_free(msg);
+ return NULL;
+ }
tbf->rotate_in_list();
LOGP(DRLCMACSCHED, LOGL_DEBUG, "Scheduling control "
"message at RTS for %s (TRX=%d, TS=%d)\n",
@@ -191,14 +194,12 @@ static struct msgb *sched_select_ctrl_msg(
tbf->ms()->update_dl_ctrl_msg();
return msg;
}
- /* schedule PACKET PAGING REQUEST */
+
+ /* schedule PACKET PAGING REQUEST, if any are pending */
msg = pdch->packet_paging_request();
if (msg) {
LOGP(DRLCMACSCHED, LOGL_DEBUG, "Scheduling paging request "
"message at RTS for (TRX=%d, TS=%d)\n", trx, ts);
-
- /* Updates the dl ctrl msg counter for ms */
- tbf->ms()->update_dl_ctrl_msg();
return msg;
}