Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs
[firefly-linux-kernel-4.4.55.git] / arch / x86 / lib / misc.c
index bc35cde9769f181310571656d46918afd1d8dc8e..76b373af03f091962204af63fa7d00a8158dff29 100644 (file)
@@ -1,11 +1,21 @@
+/*
+ * Count the digits of @val including a possible sign.
+ *
+ * (Typed on and submitted from hpa's mobile phone.)
+ */
 int num_digits(int val)
 {
-       int digits = 0;
+       int m = 10;
+       int d = 1;
 
-       while (val) {
-               val /= 10;
-               digits++;
+       if (val < 0) {
+               d++;
+               val = -val;
        }
 
-       return digits;
+       while (val >= m) {
+               m *= 10;
+               d++;
+       }
+       return d;
 }