[PATCH] osmocom-bb[master]: host/trxcon/scheduler: fix prim queue flushing function

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Harald Welte gerrit-no-reply at lists.osmocom.org
Thu Feb 22 15:33:23 UTC 2018


Review at  https://gerrit.osmocom.org/6779

host/trxcon/scheduler: fix prim queue flushing function

For some reasons, the function, which is used to flush a queue of
transmit primitives, was intended to flush a list of msgb instances
instead of trx_ts_prim, so memory was being cleaned incorrectly.
Moreover, the items weren't actually removed from queue.

Change-Id: Ia84b57350a5c2eee0afebc65f62e30eaddb141d4
---
M src/host/trxcon/sched_trx.c
1 file changed, 8 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/79/6779/1

diff --git a/src/host/trxcon/sched_trx.c b/src/host/trxcon/sched_trx.c
index 7f6729c..c7520b9 100644
--- a/src/host/trxcon/sched_trx.c
+++ b/src/host/trxcon/sched_trx.c
@@ -37,12 +37,14 @@
 #include "trx_if.h"
 #include "logging.h"
 
-static void msgb_queue_flush(struct llist_head *list)
+static void prim_queue_flush(struct llist_head *list)
 {
-	struct msgb *msg, *msg2;
+	struct trx_ts_prim *prim, *prim_next;
 
-	llist_for_each_entry_safe(msg, msg2, list, list)
-		msgb_free(msg);
+	llist_for_each_entry_safe(prim, prim_next, list, list) {
+		llist_del(&prim->list);
+		talloc_free(prim);
+	}
 }
 
 static void sched_frame_clck_cb(struct trx_sched *sched)
@@ -191,7 +193,7 @@
 	LOGP(DSCH, LOGL_NOTICE, "Delete TDMA timeslot #%u\n", tn);
 
 	/* Flush queue primitives for TX */
-	msgb_queue_flush(&ts->tx_prims);
+	prim_queue_flush(&ts->tx_prims);
 
 	/* Remove ts from list and free memory */
 	trx->ts_list[tn] = NULL;
@@ -278,7 +280,7 @@
 	ts->mf_layout = NULL;
 
 	/* Flush queue primitives for TX */
-	msgb_queue_flush(&ts->tx_prims);
+	prim_queue_flush(&ts->tx_prims);
 
 	/* Free channel states */
 	talloc_free(ts->lchans);

-- 
To view, visit https://gerrit.osmocom.org/6779
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia84b57350a5c2eee0afebc65f62e30eaddb141d4
Gerrit-PatchSet: 1
Gerrit-Project: osmocom-bb
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <laforge at gnumonks.org>



More information about the gerrit-log mailing list