Thread (3 messages) 3 messages, 3 authors, 2019-01-03

Re: [PATCH] backlight: (adp8870) fix a missing check for adp8870_write

From: Sam Ravnborg <hidden>
Date: 2018-12-27 09:39:57
Also in: dri-devel, lkml

Hi Kangjie
quoted hunk ↗ jump to hunk
adp8870_write() may fail. This fix checks if adp8870_write fails, and if
so, returns its error code.

Signed-off-by: Kangjie Lu <redacted>
---
 drivers/video/backlight/adp8870_bl.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/drivers/video/backlight/adp8870_bl.c b/drivers/video/backlight/adp8870_bl.c
index 8d50e0299578..79901fb4fcd1 100644
--- a/drivers/video/backlight/adp8870_bl.c
+++ b/drivers/video/backlight/adp8870_bl.c
@@ -811,9 +811,14 @@ static ssize_t adp8870_bl_ambient_light_zone_store(struct device *dev,
 		if (!ret) {
 			reg_val &= ~(CFGR_BLV_MASK << CFGR_BLV_SHIFT);
 			reg_val |= (val - 1) << CFGR_BLV_SHIFT;
-			adp8870_write(data->client, ADP8870_CFGR, reg_val);
-		}
-		mutex_unlock(&data->lock);
+			ret = adp8870_write(data->client,
+					ADP8870_CFGR, reg_val);
+			if (ret) {
+				mutex_unlock(&data->lock);
+				return ret;
+			}
+		}	else
+			mutex_unlock(&data->lock);
 	}
Something looks wrong with the indent.
If you have braces around first part of if () then use
barces also after else. Then it is easier to follow the code.
In this case please consider another approach where you
have only a single mutex_unlock() both in the good and
in the error case.

	Sam
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help