laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/30298 )
Change subject: paging: Fix regression stopping active requests on unanswered BTS ......................................................................
paging: Fix regression stopping active requests on unanswered BTS
When rewriting the loop, the pointer passed all the time to paging_remove_request() was the one of the BTS which answered the request, not the one actually handling the related unanwared still active paging request.
Fixes: 70a1d60a836431eb64367a0d08b95d43a42ea37c Related: SYS#6200 Change-Id: I8c6828f86b7ccbb2c4a09ca1aec859a2c597b679 --- M src/osmo-bsc/paging.c 1 file changed, 2 insertions(+), 2 deletions(-)
Approvals: pespin: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, approved
diff --git a/src/osmo-bsc/paging.c b/src/osmo-bsc/paging.c index 27162d6..b9f2e54 100644 --- a/src/osmo-bsc/paging.c +++ b/src/osmo-bsc/paging.c @@ -567,7 +567,7 @@ struct gsm_paging_request *req; req = llist_first_entry(&bsub->active_paging_requests, struct gsm_paging_request, bsub_entry); - LOG_PAGING_BTS(req, bts, DPAG, LOGL_DEBUG, "Stop paging\n"); + LOG_PAGING_BTS(req, req->bts, DPAG, LOGL_DEBUG, "Stop paging\n"); reasons |= req->reason; if (!paged_from_msc) { /* If this happened, it would be a bit weird: it means there was no Paging Request @@ -575,7 +575,7 @@ * pending on a different BTS. But why not return an MSC when we found one. */ paged_from_msc = req->msc; } - paging_remove_request(&bts->paging, req); + paging_remove_request(&req->bts->paging, req); remaining--; }