Change in osmo-pcu[master]: pdch: Make sure pending ImmAssRej scheduled for disabled pdch are dro...

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/.

pespin gerrit-no-reply at lists.osmocom.org
Fri Sep 3 16:01:37 UTC 2021


pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25330 )

Change subject: pdch: Make sure pending ImmAssRej scheduled for disabled pdch are dropped
......................................................................

pdch: Make sure pending ImmAssRej scheduled for disabled pdch are dropped

When a PDCH TS becomes disabled (eg due to dyn TS being used for a
call), we are currently freeing all attached PDCHs in order to avoid
further use of it. However, pdch_free_all_tbf() was only freeing TBFs
attached to the PDCH, that is, TBFs having a valid TFI assigned.
There are some cases where temporary dummy TBFs are created which have
no TFI assigned, such as when creating an ImmAssReject. Let's take those
into account too, and make sure they are freed.

Related: OS#5226
Change-Id: Ibfe78448ebdedc8b049c80664711e166d910f9b7
---
M src/pdch.cpp
1 file changed, 12 insertions(+), 0 deletions(-)

Approvals:
  fixeria: Looks good to me, but someone else must approve
  pespin: Looks good to me, approved
  osmith: Looks good to me, but someone else must approve
  Jenkins Builder: Verified



diff --git a/src/pdch.cpp b/src/pdch.cpp
index da43bdf..49f9eb6 100644
--- a/src/pdch.cpp
+++ b/src/pdch.cpp
@@ -1145,6 +1145,9 @@
 
 void pdch_free_all_tbf(struct gprs_rlcmac_pdch *pdch)
 {
+	struct llist_item *pos;
+	struct llist_item *pos2;
+
 	for (uint8_t tfi = 0; tfi < 32; tfi++) {
 		struct gprs_rlcmac_tbf *tbf;
 
@@ -1155,6 +1158,15 @@
 		if (tbf)
 			tbf_free(tbf);
 	}
+
+	/* Some temporary dummy TBFs to tx ImmAssRej may be left linked to the
+	 * PDCH, since they have no TFI assigned (see handle_tbf_reject()).
+	 * Get rid of them too: */
+	llist_for_each_entry_safe(pos, pos2, &pdch->trx->ul_tbfs, list) {
+		struct gprs_rlcmac_ul_tbf *ul_tbf = as_ul_tbf((struct gprs_rlcmac_tbf *)pos->entry);
+		if (ul_tbf->control_ts == pdch->ts_no)
+			tbf_free(ul_tbf);
+	}
 }
 
 void pdch_disable(struct gprs_rlcmac_pdch *pdch)

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25330
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-pcu
Gerrit-Branch: master
Gerrit-Change-Id: Ibfe78448ebdedc8b049c80664711e166d910f9b7
Gerrit-Change-Number: 25330
Gerrit-PatchSet: 3
Gerrit-Owner: pespin <pespin at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy at sysmocom.de>
Gerrit-Reviewer: osmith <osmith at sysmocom.de>
Gerrit-Reviewer: pespin <pespin at sysmocom.de>
Gerrit-CC: laforge <laforge at osmocom.org>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210903/73a4695e/attachment.htm>


More information about the gerrit-log mailing list