From: Anshul Garg <aksgarg1...@gmail.com>

Instead of having same code for negative and postive
integer, use sign variable for integer parsing.

Signed-off-by: Anshul Garg <aksgarg1...@gmail.com>
---
 lib/kstrtox.c |   24 ++++++++++--------------
 1 file changed, 10 insertions(+), 14 deletions(-)

diff --git a/lib/kstrtox.c b/lib/kstrtox.c
index ec8da78..744cbb0 100644
--- a/lib/kstrtox.c
+++ b/lib/kstrtox.c
@@ -146,23 +146,19 @@ EXPORT_SYMBOL(kstrtoull);
 int kstrtoll(const char *s, unsigned int base, long long *res)
 {
        unsigned long long tmp;
-       int rv;
+       int rv, sign = 1;
 
        if (s[0] == '-') {
-               rv = _kstrtoull(s + 1, base, &tmp);
-               if (rv < 0)
-                       return rv;
-               if ((long long)(-tmp) >= 0)
-                       return -ERANGE;
-               *res = -tmp;
-       } else {
-               rv = kstrtoull(s, base, &tmp);
-               if (rv < 0)
-                       return rv;
-               if ((long long)tmp < 0)
-                       return -ERANGE;
-               *res = tmp;
+               sign = -1;
+               s++;
        }
+
+       rv = kstrtoull(s, base, &tmp);
+       if (rv < 0)
+               return rv;
+       if ((long long)tmp < 0)
+               return -ERANGE;
+       *res = sign * tmp;
        return 0;
 }
 EXPORT_SYMBOL(kstrtoll);
-- 
1.7.9.5


---
This email has been checked for viruses by Avast antivirus software.
http://www.avast.com

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to