mirror of https://github.com/PentHertz/srsLTE.git
Mutex more operations in worker to fix segfault when HO. Protect pdsch/pusch from regenerating sequence
This commit is contained in:
parent
3d3f98b21e
commit
c012a6ea83
|
@ -427,6 +427,8 @@ int srslte_pdsch_set_rnti(srslte_pdsch_t *q, uint16_t rnti) {
|
|||
return -1;
|
||||
}
|
||||
}
|
||||
q->users[rnti_idx]->sequence_generated = false;
|
||||
|
||||
for (int i = 0; i < SRSLTE_NSUBFRAMES_X_FRAME; i++) {
|
||||
for (int j = 0; j < SRSLTE_MAX_CODEWORDS; j++) {
|
||||
if (srslte_sequence_pdsch(&q->users[rnti_idx]->seq[j][i], rnti, j, 2 * i, q->cell.id,
|
||||
|
|
|
@ -444,6 +444,7 @@ int srslte_pusch_set_rnti(srslte_pusch_t *q, uint16_t rnti) {
|
|||
return -1;
|
||||
}
|
||||
}
|
||||
q->users[rnti_idx]->sequence_generated = false;
|
||||
for (i = 0; i < SRSLTE_NSUBFRAMES_X_FRAME; i++) {
|
||||
if (srslte_sequence_pusch(&q->users[rnti_idx]->seq[i], rnti, 2 * i, q->cell.id,
|
||||
q->max_re * srslte_mod_bits_x_symbol(SRSLTE_MOD_64QAM)))
|
||||
|
|
|
@ -86,6 +86,7 @@ phch_worker::~phch_worker()
|
|||
|
||||
void phch_worker::reset()
|
||||
{
|
||||
pthread_mutex_lock(&mutex);
|
||||
bzero(&dl_metrics, sizeof(dl_metrics_t));
|
||||
bzero(&ul_metrics, sizeof(ul_metrics_t));
|
||||
bzero(&dmrs_cfg, sizeof(srslte_refsignal_dmrs_pusch_cfg_t));
|
||||
|
@ -101,6 +102,7 @@ void phch_worker::reset()
|
|||
I_sr = 0;
|
||||
cfi = 0;
|
||||
rssi_read_cnt = 0;
|
||||
pthread_mutex_unlock(&mutex);
|
||||
}
|
||||
|
||||
void phch_worker::enable_pdsch_coworker() {
|
||||
|
@ -1402,6 +1404,7 @@ void phch_worker::enable_pregen_signals(bool enabled)
|
|||
|
||||
void phch_worker::set_ul_params(bool pregen_disabled)
|
||||
{
|
||||
pthread_mutex_lock(&mutex);
|
||||
|
||||
phy_interface_rrc::phy_cfg_common_t *common = &phy->config->common;
|
||||
LIBLTE_RRC_PHYSICAL_CONFIG_DEDICATED_STRUCT *dedicated = &phy->config->dedicated;
|
||||
|
@ -1504,7 +1507,9 @@ void phch_worker::set_ul_params(bool pregen_disabled)
|
|||
/* SR configuration */
|
||||
I_sr = dedicated->sched_request_cnfg.sr_cnfg_idx;
|
||||
sr_configured = true;
|
||||
|
||||
|
||||
pthread_mutex_unlock(&mutex);
|
||||
|
||||
if (pregen_enabled && !pregen_disabled) {
|
||||
Info("Pre-generating UL signals worker=%d\n", get_id());
|
||||
srslte_ue_ul_pregen_signals(&ue_ul);
|
||||
|
|
Loading…
Reference in New Issue