summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Yanitskiy <axilirator@gmail.com>2018-03-11 04:20:57 +0700
committerVadim Yanitskiy <axilirator@gmail.com>2018-03-11 14:59:38 +0700
commit2778e4ef432c261cbeaeb344137c465adc8393dd (patch)
treeb422b735b97db9994e434f1c87f56cf1dc8f15a2
parentf06f31fdf7e0fc4fd2d4cb3a444855bfaafd59da (diff)
trxcon/sched_trx.c: fix: omit inactive logical channels
The sched_frame_clck_cb() is responsible for UL burst transmission. Iterating over each timeslot, it chooses a proper lchan handler according to a current frame number and a multiframe layout in use, takes a L2 UL frame from a TX buffer, and finally calls the chosen handler in order to to encode and transmit a taken frame. A handler should be called only for activated logical channels... but for some long time, there was a bug, so each lchan was processed, including inactive ones. It's time to fix this. Change-Id: I33e3ecc14be3ae64dfd02789c7f0970c945582c9
-rw-r--r--src/host/trxcon/sched_trx.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/host/trxcon/sched_trx.c b/src/host/trxcon/sched_trx.c
index 1197f2ca..8c859dee 100644
--- a/src/host/trxcon/sched_trx.c
+++ b/src/host/trxcon/sched_trx.c
@@ -86,6 +86,10 @@ static void sched_frame_clck_cb(struct trx_sched *sched)
if (lchan == NULL)
continue;
+ /* Omit inactive lchans */
+ if (!lchan->active)
+ continue;
+
/**
* If we aren't processing any primitive yet,
* attempt to obtain a new one from queue