diff options
author | Vadim Yanitskiy <axilirator@gmail.com> | 2018-03-11 04:20:57 +0700 |
---|---|---|
committer | Vadim Yanitskiy <axilirator@gmail.com> | 2018-03-11 14:59:38 +0700 |
commit | 2778e4ef432c261cbeaeb344137c465adc8393dd (patch) | |
tree | b422b735b97db9994e434f1c87f56cf1dc8f15a2 /src | |
parent | f06f31fdf7e0fc4fd2d4cb3a444855bfaafd59da (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
Diffstat (limited to 'src')
-rw-r--r-- | src/host/trxcon/sched_trx.c | 4 |
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 |