From 7af71dfdcb9b5363a8fde03a4579e5ce896f1916 Mon Sep 17 00:00:00 2001 From: none Date: Tue, 9 Mar 2021 14:23:06 +0100 Subject: [PATCH] lock ldpc bitrate adjustment to prevent race condition during tuner stop --- ddbridge/ddbridge-sx8.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/ddbridge/ddbridge-sx8.c b/ddbridge/ddbridge-sx8.c index 8160a92..b713860 100644 --- a/ddbridge/ddbridge-sx8.c +++ b/ddbridge/ddbridge-sx8.c @@ -147,11 +147,14 @@ static int read_status(struct dvb_frontend *fe, enum fe_status *status) if (res.status == MCI_DEMOD_LOCKED) { *status = 0x1f; if (state->mci.signal_info.dvbs2_signal_info.standard == 2) { - sx8_base->used_ldpc_bitrate[state->mci.nr] = - p->symbol_rate * - dvbs2_bits_per_symbol[ - state->mci.signal_info. - dvbs2_signal_info.pls_code]; + mutex_lock(&mci_base->tuner_lock); + if (state->started) + sx8_base->used_ldpc_bitrate[state->mci.nr] = + p->symbol_rate * + dvbs2_bits_per_symbol[ + state->mci.signal_info. + dvbs2_signal_info.pls_code]; + mutex_unlock(&mci_base->tuner_lock); } else sx8_base->used_ldpc_bitrate[state->mci.nr] = 0; }