diff options
author | Oliver Smith <osmith@sysmocom.de> | 2022-04-27 14:52:06 +0200 |
---|---|---|
committer | osmith <osmith@sysmocom.de> | 2022-04-28 12:14:28 +0000 |
commit | 41aa1feb15561a6bc621952431fbd86eabe44247 (patch) | |
tree | 0d64f3fe21a4669b277ad69b6ef113e55dbc01c6 | |
parent | 3eb14ee7c755c411d80889aca5acedd96a61db1f (diff) |
bts_model_*_start: move set_feature calls to _init
With previous patch Idf2d933aa8b03b1f708e56a08707fe6c620a97aa, the
features get copied from the BTS model to the BTS. For rbs2000, bs11 and
nokia_site, an empty feature set was copied because the features weren't
set at this point. Fix this by moving the set_feature calls to _init().
Notably the set_feature calls had been moved for osmo-bts and nanobts
from _start to _init already in 2013 in the patch e84dd98d
("sysmobts: Avoid a crash when trying to look-up a BTS").
Fixes: 2d818b9f ("Always use reported features if available")
Related: SYS#5922, OS#5538
Change-Id: I43389ae48d5e0f01381602751f6bad902011b158
-rw-r--r-- | src/osmo-bsc/bts_ericsson_rbs2000.c | 16 | ||||
-rw-r--r-- | src/osmo-bsc/bts_nokia_site.c | 15 | ||||
-rw-r--r-- | src/osmo-bsc/bts_siemens_bs11.c | 14 |
3 files changed, 22 insertions, 23 deletions
diff --git a/src/osmo-bsc/bts_ericsson_rbs2000.c b/src/osmo-bsc/bts_ericsson_rbs2000.c index b3d79b4b5..36b378318 100644 --- a/src/osmo-bsc/bts_ericsson_rbs2000.c +++ b/src/osmo-bsc/bts_ericsson_rbs2000.c @@ -213,6 +213,14 @@ static struct gsm_bts_model model_rbs2k = { static int bts_model_rbs2k_start(struct gsm_network *net) { + osmo_signal_register_handler(SS_L_INPUT, inp_sig_cb, NULL); + osmo_signal_register_handler(SS_L_GLOBAL, gbl_sig_cb, NULL); + + return 0; +} + +int bts_model_rbs2k_init(void) +{ model_rbs2k.features.data = &model_rbs2k._features_data[0]; model_rbs2k.features.data_len = sizeof(model_rbs2k._features_data); @@ -222,13 +230,5 @@ static int bts_model_rbs2k_start(struct gsm_network *net) osmo_bts_set_feature(&model_rbs2k.features, BTS_FEAT_HSCSD); osmo_bts_set_feature(&model_rbs2k.features, BTS_FEAT_MULTI_TSC); - osmo_signal_register_handler(SS_L_INPUT, inp_sig_cb, NULL); - osmo_signal_register_handler(SS_L_GLOBAL, gbl_sig_cb, NULL); - - return 0; -} - -int bts_model_rbs2k_init(void) -{ return gsm_bts_model_register(&model_rbs2k); } diff --git a/src/osmo-bsc/bts_nokia_site.c b/src/osmo-bsc/bts_nokia_site.c index 75ffa95e4..e20519a4c 100644 --- a/src/osmo-bsc/bts_nokia_site.c +++ b/src/osmo-bsc/bts_nokia_site.c @@ -1759,14 +1759,6 @@ static struct gsm_network *my_net; static int bts_model_nokia_site_start(struct gsm_network *net) { - model_nokia_site.features.data = &model_nokia_site._features_data[0]; - model_nokia_site.features.data_len = - sizeof(model_nokia_site._features_data); - - osmo_bts_set_feature(&model_nokia_site.features, BTS_FEAT_HOPPING); - osmo_bts_set_feature(&model_nokia_site.features, BTS_FEAT_HSCSD); - osmo_bts_set_feature(&model_nokia_site.features, BTS_FEAT_MULTI_TSC); - osmo_signal_register_handler(SS_L_INPUT, inp_sig_cb, NULL); osmo_signal_register_handler(SS_L_GLOBAL, gbl_sig_cb, NULL); osmo_signal_register_handler(SS_NM, nm_sig_cb, NULL); @@ -1778,5 +1770,12 @@ static int bts_model_nokia_site_start(struct gsm_network *net) int bts_model_nokia_site_init(void) { + model_nokia_site.features.data = &model_nokia_site._features_data[0]; + model_nokia_site.features.data_len = sizeof(model_nokia_site._features_data); + + osmo_bts_set_feature(&model_nokia_site.features, BTS_FEAT_HOPPING); + osmo_bts_set_feature(&model_nokia_site.features, BTS_FEAT_HSCSD); + osmo_bts_set_feature(&model_nokia_site.features, BTS_FEAT_MULTI_TSC); + return gsm_bts_model_register(&model_nokia_site); } diff --git a/src/osmo-bsc/bts_siemens_bs11.c b/src/osmo-bsc/bts_siemens_bs11.c index 818d84a40..ed2c4c34d 100644 --- a/src/osmo-bsc/bts_siemens_bs11.c +++ b/src/osmo-bsc/bts_siemens_bs11.c @@ -604,13 +604,6 @@ static int inp_sig_cb(unsigned int subsys, unsigned int signal, static int bts_model_bs11_start(struct gsm_network *net) { - model_bs11.features.data = &model_bs11._features_data[0]; - model_bs11.features.data_len = sizeof(model_bs11._features_data); - - osmo_bts_set_feature(&model_bs11.features, BTS_FEAT_HOPPING); - osmo_bts_set_feature(&model_bs11.features, BTS_FEAT_HSCSD); - osmo_bts_set_feature(&model_bs11.features, BTS_FEAT_MULTI_TSC); - osmo_signal_register_handler(SS_L_INPUT, inp_sig_cb, NULL); osmo_signal_register_handler(SS_L_GLOBAL, gbl_sig_cb, NULL); @@ -619,5 +612,12 @@ static int bts_model_bs11_start(struct gsm_network *net) int bts_model_bs11_init(void) { + model_bs11.features.data = &model_bs11._features_data[0]; + model_bs11.features.data_len = sizeof(model_bs11._features_data); + + osmo_bts_set_feature(&model_bs11.features, BTS_FEAT_HOPPING); + osmo_bts_set_feature(&model_bs11.features, BTS_FEAT_HSCSD); + osmo_bts_set_feature(&model_bs11.features, BTS_FEAT_MULTI_TSC); + return gsm_bts_model_register(&model_bs11); } |