Skip to content

Commit af0e187

Browse files
Colin Ian Kingjic23
authored andcommitted
iio: tsl2583: Fix division by a zero lux_val
The lux_val returned from tsl2583_get_lux can potentially be zero, so check for this to avoid a division by zero and an overflowed gain_trim_val. Fixes clang scan-build warning: drivers/iio/light/tsl2583.c:345:40: warning: Either the condition 'lux_val<0' is redundant or there is division by zero at line 345. [zerodivcond] Fixes: ac4f6ee ("staging: iio: TAOS tsl258x: Device driver") Signed-off-by: Colin Ian King <[email protected]> Cc: <[email protected]> Signed-off-by: Jonathan Cameron <[email protected]>
1 parent af0670b commit af0e187

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

drivers/iio/light/tsl2583.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,14 @@ static int tsl2583_als_calibrate(struct iio_dev *indio_dev)
341341
return lux_val;
342342
}
343343

344+
/* Avoid division by zero of lux_value later on */
345+
if (lux_val == 0) {
346+
dev_err(&chip->client->dev,
347+
"%s: lux_val of 0 will produce out of range trim_value\n",
348+
__func__);
349+
return -ENODATA;
350+
}
351+
344352
gain_trim_val = (unsigned int)(((chip->als_settings.als_cal_target)
345353
* chip->als_settings.als_gain_trim) / lux_val);
346354
if ((gain_trim_val < 250) || (gain_trim_val > 4000)) {

0 commit comments

Comments
 (0)