Message ID | 20230726150225.483464-4-herve.codina@bootlin.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Add support for QMC HDLC, framer infrastruture and PEF2256 framer | expand |
Le 26/07/2023 à 17:01, Herve Codina a écrit : > The qmc_chan_reset_rx() set the is_rx_stopped flag. This leads to an > inconsistent state in the following sequence. > qmc_chan_stop() > qmc_chan_reset() > Indeed, after the qmc_chan_reset() call, the channel must still be > stopped. Only a qmc_chan_start() call can move the channel from stopped > state to started state. > > Fix the issue removing the is_rx_stopped flag setting from > qmc_chan_reset() > > Fixes: 3178d58e0b97 ("soc: fsl: cpm1: Add support for QMC") > Signed-off-by: Herve Codina <herve.codina@bootlin.com> Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu> > --- > drivers/soc/fsl/qe/qmc.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/drivers/soc/fsl/qe/qmc.c b/drivers/soc/fsl/qe/qmc.c > index 7ad0d77f1740..8dc73cc1a83b 100644 > --- a/drivers/soc/fsl/qe/qmc.c > +++ b/drivers/soc/fsl/qe/qmc.c > @@ -685,7 +685,6 @@ static void qmc_chan_reset_rx(struct qmc_chan *chan) > qmc_read16(chan->s_param + QMC_SPE_RBASE)); > > chan->rx_pending = 0; > - chan->is_rx_stopped = false; > > spin_unlock_irqrestore(&chan->rx_lock, flags); > }
diff --git a/drivers/soc/fsl/qe/qmc.c b/drivers/soc/fsl/qe/qmc.c index 7ad0d77f1740..8dc73cc1a83b 100644 --- a/drivers/soc/fsl/qe/qmc.c +++ b/drivers/soc/fsl/qe/qmc.c @@ -685,7 +685,6 @@ static void qmc_chan_reset_rx(struct qmc_chan *chan) qmc_read16(chan->s_param + QMC_SPE_RBASE)); chan->rx_pending = 0; - chan->is_rx_stopped = false; spin_unlock_irqrestore(&chan->rx_lock, flags); }
The qmc_chan_reset_rx() set the is_rx_stopped flag. This leads to an inconsistent state in the following sequence. qmc_chan_stop() qmc_chan_reset() Indeed, after the qmc_chan_reset() call, the channel must still be stopped. Only a qmc_chan_start() call can move the channel from stopped state to started state. Fix the issue removing the is_rx_stopped flag setting from qmc_chan_reset() Fixes: 3178d58e0b97 ("soc: fsl: cpm1: Add support for QMC") Signed-off-by: Herve Codina <herve.codina@bootlin.com> --- drivers/soc/fsl/qe/qmc.c | 1 - 1 file changed, 1 deletion(-)