[PATCH v9 2/8] watchdog: core: fix watchdog_check_min_max_timeout() return value
Fabio Porcedda
fabio.porcedda at gmail.com
Thu Feb 14 19:14:24 EST 2013
The device tree support is not mandatory, so the function doesn't
return error when is not used.
Return -EINVAL when the module parameter or
timeout-sec property is out of bounds.
Signed-off-by: Fabio Porcedda <fabio.porcedda at gmail.com>
Cc: Wim Van Sebroeck <wim at iguana.be>
Cc: linux-watchdog at vger.kernel.org
---
drivers/watchdog/watchdog_core.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/drivers/watchdog/watchdog_core.c b/drivers/watchdog/watchdog_core.c
index 94590f6..05d18b4 100644
--- a/drivers/watchdog/watchdog_core.c
+++ b/drivers/watchdog/watchdog_core.c
@@ -73,22 +73,28 @@ int watchdog_init_timeout(struct watchdog_device *wdd,
unsigned int timeout_parm, struct device *dev)
{
unsigned int t = 0;
+ int ret = 0;
watchdog_check_min_max_timeout(wdd);
/* try to get the tiemout module parameter first */
if (!watchdog_timeout_invalid(wdd, timeout_parm)) {
wdd->timeout = timeout_parm;
- return 0;
+ return ret;
}
+ if (timeout_parm)
+ ret = -EINVAL;
/* try to get the timeout_sec property */
if (dev == NULL || dev->of_node == NULL)
- return -EINVAL;
+ return ret;
of_property_read_u32(dev->of_node, "timeout-sec", &t);
if (!watchdog_timeout_invalid(wdd, t))
wdd->timeout = t;
- return 0;
+ else
+ ret = -EINVAL;
+
+ return ret;
}
EXPORT_SYMBOL_GPL(watchdog_init_timeout);
--
1.8.1.1
More information about the devicetree-discuss
mailing list