On Tue, Nov 28, 2023, at 15:08, Herve Codina wrote: > @@ -272,6 +274,8 @@ int qmc_chan_get_info(struct qmc_chan *chan, struct > qmc_chan_info *info) > if (ret) > return ret; > > + spin_lock_irqsave(&chan->ts_lock, flags); > + > info->mode = chan->mode; > info->rx_fs_rate = tsa_info.rx_fs_rate; > info->rx_bit_rate = tsa_info.rx_bit_rate; > @@ -280,6 +284,8 @@ int qmc_chan_get_info(struct qmc_chan *chan, struct > qmc_chan_info *info) > info->tx_bit_rate = tsa_info.tx_bit_rate; > info->nb_rx_ts = hweight64(chan->rx_ts_mask); > > + spin_unlock_irqrestore(&chan->ts_lock, flags); > + > return 0; > } I would normally use spin_lock_irq() instead of spin_lock_irqsave() in functions that are only called outside of atomic context. > +static int qmc_chan_start_rx(struct qmc_chan *chan); > + > int qmc_chan_stop(struct qmc_chan *chan, int direction) > { ... > -static void qmc_chan_start_rx(struct qmc_chan *chan) > +static int qmc_setup_chan_trnsync(struct qmc *qmc, struct qmc_chan *chan); > + > +static int qmc_chan_start_rx(struct qmc_chan *chan) > { Can you reorder the static functions in a way that avoids the forward declarations? Arnd