[PATCH] staging: iio: Add error code handling

Cristina Moraru cristina.moraru09 at gmail.com
Wed Oct 21 01:37:01 EEST 2015


Write function can return non-zero values indicating
errors. This values must be caught and handled.

Signed-off-by: Cristina Moraru <cristina.moraru09 at gmail.com>
---
 drivers/staging/iio/addac/adt7316.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/iio/addac/adt7316.c b/drivers/staging/iio/addac/adt7316.c
index 3adc451..6d67edf 100644
--- a/drivers/staging/iio/addac/adt7316.c
+++ b/drivers/staging/iio/addac/adt7316.c
@@ -1850,10 +1850,11 @@ static ssize_t adt7316_set_int_mask(struct device *dev,
 		mask = ADT7316_INT_MASK2_VDD;	/* disable vdd int */
 
 	ret = chip->bus.write(chip->bus.client, ADT7316_INT_MASK2, mask);
-	if (!ret) {
-		chip->int_mask &= ~ADT7316_VDD_INT_MASK;
-		chip->int_mask |= data & ADT7316_VDD_INT_MASK;
-	}
+	if (ret)
+		return -EIO;
+
+	chip->int_mask &= ~ADT7316_VDD_INT_MASK;
+	chip->int_mask |= data & ADT7316_VDD_INT_MASK;
 
 	if (data & ADT7316_TEMP_AIN_INT_MASK) {
 		if ((chip->id & ID_FAMILY_MASK) == ID_ADT73XX)
@@ -1864,6 +1865,8 @@ static ssize_t adt7316_set_int_mask(struct device *dev,
 			mask = (~data) & ADT7316_TEMP_AIN_INT_MASK;
 	}
 	ret = chip->bus.write(chip->bus.client, ADT7316_INT_MASK1, mask);
+	if (ret)
+		return -EIO;
 
 	chip->int_mask = mask;
 
-- 
1.9.1



More information about the firefly mailing list