From bafaff8b68f95e45c2f0057d36cda30006ab3fe2 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 24 May 2021 14:50:06 +0200 Subject: [PATCH] 4.9-stable patches added patches: iio-tsl2583-fix-division-by-a-zero-lux_val.patch --- ...l2583-fix-division-by-a-zero-lux_val.patch | 48 +++++++++++++++++++ queue-4.9/series | 1 + 2 files changed, 49 insertions(+) create mode 100644 queue-4.9/iio-tsl2583-fix-division-by-a-zero-lux_val.patch diff --git a/queue-4.9/iio-tsl2583-fix-division-by-a-zero-lux_val.patch b/queue-4.9/iio-tsl2583-fix-division-by-a-zero-lux_val.patch new file mode 100644 index 00000000000..bc529d460c8 --- /dev/null +++ b/queue-4.9/iio-tsl2583-fix-division-by-a-zero-lux_val.patch @@ -0,0 +1,48 @@ +From af0e1871d79cfbb91f732d2c6fa7558e45c31038 Mon Sep 17 00:00:00 2001 +From: Colin Ian King +Date: Fri, 7 May 2021 19:30:41 +0100 +Subject: iio: tsl2583: Fix division by a zero lux_val + +From: Colin Ian King + +commit af0e1871d79cfbb91f732d2c6fa7558e45c31038 upstream. + +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: ac4f6eee8fe8 ("staging: iio: TAOS tsl258x: Device driver") +Signed-off-by: Colin Ian King +Cc: +Signed-off-by: Jonathan Cameron +[Colin Ian King: minor context adjustments for 4.9.y] +Signed-off-by: Nobuhiro Iwamatsu +Signed-off-by: Greg Kroah-Hartman +--- + drivers/staging/iio/light/tsl2583.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +--- a/drivers/staging/iio/light/tsl2583.c ++++ b/drivers/staging/iio/light/tsl2583.c +@@ -382,6 +382,15 @@ static int taos_als_calibrate(struct iio + dev_err(&chip->client->dev, "taos_als_calibrate failed to get lux\n"); + return lux_val; + } ++ ++ /* Avoid division by zero of lux_value later on */ ++ if (lux_val == 0) { ++ dev_err(&chip->client->dev, ++ "%s: lux_val of 0 will produce out of range trim_value\n", ++ __func__); ++ return -ENODATA; ++ } ++ + gain_trim_val = (unsigned int)(((chip->taos_settings.als_cal_target) + * chip->taos_settings.als_gain_trim) / lux_val); + diff --git a/queue-4.9/series b/queue-4.9/series index efacf4f8835..1e0cf8cc53b 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -33,3 +33,4 @@ video-hgafb-fix-potential-null-pointer-dereference.patch vgacon-record-video-mode-changes-with-vt_resizex.patch vt-fix-character-height-handling-with-vt_resizex.patch tty-vt-always-invoke-vc-vc_sw-con_resize-callback.patch +iio-tsl2583-fix-division-by-a-zero-lux_val.patch -- 2.47.3