Message ID | 20181220072122.40469-1-kjlu@umn.edu (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | iio: ad9523: fix a missing check of return value | expand |
On Thu, 20 Dec 2018 01:21:22 -0600 Kangjie Lu <kjlu@umn.edu> 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@umn.edu> 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)
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)
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@umn.edu> --- drivers/iio/frequency/ad9523.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)