strict_strtoul as used in parse_gw_bandwidth is defined for unsigned long and strict_strtol should be used instead for long.
Signed-off-by: Sven Eckelmann sven@narfation.org --- Added compat.h helper function
compat.h | 10 ++++++++++ gateway_common.c | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/compat.h b/compat.h index 0f0e66e..66a8adc 100644 --- a/compat.h +++ b/compat.h @@ -104,6 +104,16 @@ static inline int skb_cow_head(struct sk_buff *skb, unsigned int headroom) ret; \ })
+#define strict_strtol(cp, base, res) \ + ({ \ + int ret = 0; \ + char *endp; \ + *res = simple_strtol(cp, &endp, base); \ + if (cp == endp) \ + ret = -EINVAL; \ + ret; \ +}) + #define to_battr(a) container_of(a, struct bat_attribute, attr)
ssize_t bat_wrapper_show(struct kobject *kobj, struct attribute *attr, diff --git a/gateway_common.c b/gateway_common.c index ed3bd36..e74307b 100644 --- a/gateway_common.c +++ b/gateway_common.c @@ -97,7 +97,7 @@ static bool parse_gw_bandwidth(struct net_device *net_dev, char *buff, *tmp_ptr = '\0'; }
- ret = strict_strtoul(buff, 10, &ldown); + ret = strict_strtol(buff, 10, &ldown); if (ret) { bat_err(net_dev, "Download speed of gateway mode invalid: %s\n", @@ -122,7 +122,7 @@ static bool parse_gw_bandwidth(struct net_device *net_dev, char *buff, *tmp_ptr = '\0'; }
- ret = strict_strtoul(slash_ptr + 1, 10, &lup); + ret = strict_strtol(slash_ptr + 1, 10, &lup); if (ret) { bat_err(net_dev, "Upload speed of gateway mode invalid: "