pespin has submitted this change. (
https://gerrit.osmocom.org/c/osmo-bsc/+/30299 )
Change subject: paging: paging: Drop unneeded extra param in paging_remove_request()
......................................................................
paging: paging: Drop unneeded extra param in paging_remove_request()
The BTS can be obtained easily from the backpointer in req->bts. Having
the extra param can only lead to confusion and introduction of bugs, as
happened in bug fixed by Change-Id
I8c6828f86b7ccbb2c4a09ca1aec859a2c597b679.
Related: SYS#6200
Change-Id: I545fd853fdffce7f23f0d99203c66c3b39144e4b
---
M src/osmo-bsc/paging.c
1 file changed, 18 insertions(+), 15 deletions(-)
Approvals:
Jenkins Builder: Verified
fixeria: Looks good to me, but someone else must approve
osmith: Looks good to me, approved
diff --git a/src/osmo-bsc/paging.c b/src/osmo-bsc/paging.c
index b9f2e54..0395c14 100644
--- a/src/osmo-bsc/paging.c
+++ b/src/osmo-bsc/paging.c
@@ -83,17 +83,20 @@
/*
* Kill one paging request update the internal list...
*/
-static void paging_remove_request(struct gsm_bts_paging_state *paging_bts,
- struct gsm_paging_request *to_be_deleted)
+static void paging_remove_request(struct gsm_paging_request *req)
{
- osmo_timer_del(&to_be_deleted->T3113);
- llist_del(&to_be_deleted->entry);
- paging_bts->pending_requests_len--;
- osmo_stat_item_dec(osmo_stat_item_group_get_item(to_be_deleted->bts->bts_statg,
BTS_STAT_PAGING_REQ_QUEUE_LENGTH), 1);
- bsc_subscr_remove_active_paging_request(to_be_deleted->bsub, to_be_deleted);
- talloc_free(to_be_deleted);
- if (llist_empty(&paging_bts->pending_requests))
- osmo_timer_del(&paging_bts->work_timer);
+ struct gsm_bts *bts = req->bts;
+ struct gsm_bts_paging_state *bts_pag_st = &bts->paging;
+
+ osmo_timer_del(&req->T3113);
+ llist_del(&req->entry);
+ bts_pag_st->pending_requests_len--;
+ osmo_stat_item_dec(osmo_stat_item_group_get_item(bts->bts_statg,
BTS_STAT_PAGING_REQ_QUEUE_LENGTH), 1);
+ bsc_subscr_remove_active_paging_request(req->bsub, req);
+ talloc_free(req);
+
+ if (llist_empty(&bts_pag_st->pending_requests))
+ osmo_timer_del(&bts_pag_st->work_timer);
}
static void page_ms(struct gsm_paging_request *request)
@@ -342,7 +345,7 @@
rate_ctr_inc(rate_ctr_group_get_ctr(bsc_gsmnet->bsc_ctrs, BSC_CTR_PAGING_EXPIRED));
/* destroy it now. Do not access req afterwards */
- paging_remove_request(&req->bts->paging, req);
+ paging_remove_request(req);
log_set_context(LOG_CTX_BSC_SUBSCR, NULL);
}
@@ -559,7 +562,7 @@
LOG_PAGING_BTS(req, bts, DPAG, LOGL_DEBUG, "Stop paging\n");
rate_ctr_inc(rate_ctr_group_get_ctr(bts->bts_ctrs, BTS_CTR_PAGING_RESPONDED));
rate_ctr_inc(rate_ctr_group_get_ctr(bts->network->bsc_ctrs,
BSC_CTR_PAGING_RESPONDED));
- paging_remove_request(&bts->paging, req);
+ paging_remove_request(req);
remaining--;
}
@@ -575,7 +578,7 @@
* pending on a different BTS. But why not return an MSC when we found one. */
paged_from_msc = req->msc;
}
- paging_remove_request(&req->bts->paging, req);
+ paging_remove_request(req);
remaining--;
}
@@ -604,7 +607,7 @@
continue;
}
/* No reason to keep the paging, remove it: */
- paging_remove_request(&req->bts->paging, req);
+ paging_remove_request(req);
remaining--;
if (remaining == 0)
break;
@@ -642,7 +645,7 @@
continue;
/* now give up the data structure */
LOG_PAGING_BTS(req, bts, DPAG, LOGL_DEBUG, "Stop paging (flush)\n");
- paging_remove_request(&bts->paging, req);
+ paging_remove_request(req);
num_cancelled++;
}
--
To view, visit
https://gerrit.osmocom.org/c/osmo-bsc/+/30299
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I545fd853fdffce7f23f0d99203c66c3b39144e4b
Gerrit-Change-Number: 30299
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: merged