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:
parent
4ca619f528
commit
346c6011bc
|
@ -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--;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue