[PATCH 2/2] mfd: gateworks-gsc: Propagate errors from gsc_store()
From: shao.mingyin
Date: Sun Nov 08 2026 - 02:21:01 EST
From: Shao Mingyin <shao.mingyin@xxxxxxxxxx>
gsc_store() ignores both the kstrtol() result and the value returned by
gsc_powerdown(), so an invalid argument or a failed I2C write is reported
to userspace as a successful sysfs store.
Return both errors to the caller. The gsc_powerdown() error only became
reachable with the preceding patch, which makes gsc_write() report I2C
failures.
Fixes: d85234994b2f ("mfd: Add Gateworks System Controller core driver")
Signed-off-by: Shao Mingyin <shao.mingyin@xxxxxxxxxx>
---
diff --git a/drivers/mfd/gateworks-gsc.c b/drivers/mfd/gateworks-gsc.c
index aa2252402095..999cf84405ba 100644
--- a/drivers/mfd/gateworks-gsc.c
+++ b/drivers/mfd/gateworks-gsc.c
@@ -125,10 +125,16 @@ static ssize_t gsc_store(struct device *dev, struct device_attribute *attr,
struct gsc_dev *gsc = dev_get_drvdata(dev);
const char *name = attr->attr.name;
long value;
+ int ret;
if (strcasecmp(name, "powerdown") == 0) {
- if (kstrtol(buf, 0, &value) == 0)
- gsc_powerdown(gsc, value);
+ ret = kstrtol(buf, 0, &value);
+ if (ret)
+ return ret;
+
+ ret = gsc_powerdown(gsc, value);
+ if (ret)
+ return ret;
} else {
dev_err(dev, "invalid command: '%s\n", name);
}
--
2.47.0