diff options
author | Alexandre Belloni <alexandre.belloni@bootlin.com> | 2019-10-19 22:49:38 +0200 |
---|---|---|
committer | Alexandre Belloni <alexandre.belloni@bootlin.com> | 2019-10-19 22:56:05 +0200 |
commit | ce0fd9db653b18ed15aea08ee80056cc9ec094e9 (patch) | |
tree | f734e58490c613d6dcbc9184071f4cb4bb4c0368 | |
parent | ac08888b2590f690bed1f1afe7a39bdda76eb41f (diff) | |
download | linux-ce0fd9db653b18ed15aea08ee80056cc9ec094e9.tar.gz linux-ce0fd9db653b18ed15aea08ee80056cc9ec094e9.tar.bz2 linux-ce0fd9db653b18ed15aea08ee80056cc9ec094e9.zip |
rtc: ds1343: check regmap_read return value
Check whether regmap_read fails before continuing in the sysfs .show
callbacks.
Link: https://lore.kernel.org/r/20191019204941.6203-6-alexandre.belloni@bootlin.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
-rw-r--r-- | drivers/rtc/rtc-ds1343.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/rtc/rtc-ds1343.c b/drivers/rtc/rtc-ds1343.c index 28f9463322d0..42c785cae94e 100644 --- a/drivers/rtc/rtc-ds1343.c +++ b/drivers/rtc/rtc-ds1343.c @@ -92,8 +92,11 @@ static ssize_t ds1343_show_glitchfilter(struct device *dev, { struct ds1343_priv *priv = dev_get_drvdata(dev->parent); int glitch_filt_status, data; + int res; - regmap_read(priv->map, DS1343_CONTROL_REG, &data); + res = regmap_read(priv->map, DS1343_CONTROL_REG, &data); + if (res) + return res; glitch_filt_status = !!(data & DS1343_EGFIL); @@ -147,10 +150,12 @@ static ssize_t ds1343_show_tricklecharger(struct device *dev, struct device_attribute *attr, char *buf) { struct ds1343_priv *priv = dev_get_drvdata(dev->parent); - int data; + int res, data; char *diodes = "disabled", *resistors = " "; - regmap_read(priv->map, DS1343_TRICKLE_REG, &data); + res = regmap_read(priv->map, DS1343_TRICKLE_REG, &data); + if (res) + return res; if ((data & 0xf0) == DS1343_TRICKLE_MAGIC) { switch (data & 0x0c) { |