On Thu, 20 Dec 2018 01:21:22 -0600 Kangjie Lu <kjlu@xxxxxxx> wrote: > If ad9523_write() fails, indio_dev may get incorrect data. The fix > inserts a check for the return value of ad9523_write(), and it fails, > returns an error. > > Signed-off-by: Kangjie Lu <kjlu@xxxxxxx> Applied to the togreg branch of iio.git and pushed out as testing for the autobuilders to play with it. Thanks, Jonathan > --- > drivers/iio/frequency/ad9523.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/iio/frequency/ad9523.c b/drivers/iio/frequency/ad9523.c > index f3f94fbdd20a..3f9be69499ec 100644 > --- a/drivers/iio/frequency/ad9523.c > +++ b/drivers/iio/frequency/ad9523.c > @@ -943,11 +943,14 @@ static int ad9523_setup(struct iio_dev *indio_dev) > } > } > > - for_each_clear_bit(i, &active_mask, AD9523_NUM_CHAN) > - ad9523_write(indio_dev, > + for_each_clear_bit(i, &active_mask, AD9523_NUM_CHAN) { > + ret = ad9523_write(indio_dev, > AD9523_CHANNEL_CLOCK_DIST(i), > AD9523_CLK_DIST_DRIVER_MODE(TRISTATE) | > AD9523_CLK_DIST_PWR_DOWN_EN); > + if (ret < 0) > + return ret; > + } > > ret = ad9523_write(indio_dev, AD9523_POWER_DOWN_CTRL, 0); > if (ret < 0)