iio: ad9523: fix a missing check of return value
authorKangjie Lu <kjlu@umn.edu>
Thu, 20 Dec 2018 07:21:22 +0000 (01:21 -0600)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 5 Jan 2019 16:10:50 +0000 (16:10 +0000)
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>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/frequency/ad9523.c

index f3f94fbdd20aba7aec96250b1c72b3b575399210..3f9be69499ecb75a5e363075aceb5da467ac815b 100644 (file)
@@ -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)