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: 70a1d60a83
Related: SYS#6200
Change-Id: I8c6828f86b7ccbb2c4a09ca1aec859a2c597b679
This commit is contained in:
Pau Espin 2022-11-24 18:14:24 +01:00
parent 4ca619f528
commit 346c6011bc
1 changed files with 2 additions and 2 deletions

View File

@ -567,7 +567,7 @@ void paging_request_stop(struct bsc_msc_data **msc_p, enum bsc_paging_reason *re
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 @@ void paging_request_stop(struct bsc_msc_data **msc_p, enum bsc_paging_reason *re
* 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--;
}