Hello all, Just a minor question ... > >> + >> +static irqreturn_t ad7779_trigger_handler(int irq, void *p) { >> + struct iio_poll_func *pf = p; >> + struct iio_dev *indio_dev = pf->indio_dev; >> + struct ad7779_state *st = iio_priv(indio_dev); >> + int ret; >> + int bit; >> + int k = 0; >> + /* >> + * Each channel shifts out HEADER + 24 bits of data therefore 8 * u32 >> + * for the data and 64 bits for the timestamp >> + */ >> + u32 tmp[10]; >> + >> + struct spi_transfer sd_readback_tr[] = { >> + { >> + .rx_buf = st->spidata_rx, >> + .tx_buf = st->spidata_tx, >> + .len = AD7779_NUM_CHANNELS * AD7779_CHAN_DATA_SIZE, >> + } >> + }; >> + >> + if (!iio_buffer_enabled(indio_dev)) >> + goto exit_handler; > >If buffers aren't enabled, the push to buffers won't do anything. So this race shouldn't matter. If it does, what happens? >I'm curious because I'd expect any races that cause trouble in this case to be pretty universal across drivers. I added that condition rather because the DRDY pulse will keep on being generated even when the buffers are not active, and it would be better to exit the function sooner. I tested it and it does not break to remove the condition, I just thought it made more sense like this. Should I delete it? >.... Best regards, Ramona Nechita