From ad27ef2b1567c2ca64c1c367d06d53f79cb26c74 Mon Sep 17 00:00:00 2001 From: Philipp Maier Date: Wed, 12 Oct 2022 12:21:41 +0200 Subject: [PATCH] abis_rsl: delete CHAN RQD from queue when rach ind was sent The CHAN REQ entry is not deleted after its information was passed on to the PCU. This causes the same entry to be used over and over again while blocking other incoming CHAN RQD. Change-Id: Ia4abc55fc6fcb1c00991cc84d09529131d014910 Related: OS#5198 --- src/osmo-bsc/abis_rsl.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 3b83b0e1e..304e95ce3 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -2147,8 +2147,8 @@ void abis_rsl_chan_rqd_queue_poll(struct gsm_bts *bts) /* Handle PDCH related rach requests (in case of BSC-co-located-PCU) */ if (rqd->reason == GSM_CHREQ_REASON_PDCH) { - rsl_rx_pchan_rqd(rqd); - return; + if (rsl_rx_pchan_rqd(rqd) == 0) + goto leave; } /* Ensure that emergency calls will get priority over regular calls, however releasing @@ -2234,6 +2234,8 @@ void abis_rsl_chan_rqd_queue_poll(struct gsm_bts *bts) }; lchan_activate(lchan, &info); + +leave: llist_del(&rqd->entry); talloc_free(rqd); return;