blk-mq: don't count completed flush data request as inflight in case of quiesce
[linux-block.git] / lib / vsprintf.c
index afb88b24fa7482c0d367c51e637d2cdccb5c6d38..3e3733a7084fb70156e59e89443654e199f14442 100644 (file)
@@ -60,7 +60,8 @@
 bool no_hash_pointers __ro_after_init;
 EXPORT_SYMBOL_GPL(no_hash_pointers);
 
-static noinline unsigned long long simple_strntoull(const char *startp, size_t max_chars, char **endp, unsigned int base)
+noinline
+static unsigned long long simple_strntoull(const char *startp, char **endp, unsigned int base, size_t max_chars)
 {
        const char *cp;
        unsigned long long result = 0ULL;
@@ -95,7 +96,7 @@ static noinline unsigned long long simple_strntoull(const char *startp, size_t m
 noinline
 unsigned long long simple_strtoull(const char *cp, char **endp, unsigned int base)
 {
-       return simple_strntoull(cp, INT_MAX, endp, base);
+       return simple_strntoull(cp, endp, base, INT_MAX);
 }
 EXPORT_SYMBOL(simple_strtoull);
 
@@ -130,8 +131,8 @@ long simple_strtol(const char *cp, char **endp, unsigned int base)
 }
 EXPORT_SYMBOL(simple_strtol);
 
-static long long simple_strntoll(const char *cp, size_t max_chars, char **endp,
-                                unsigned int base)
+noinline
+static long long simple_strntoll(const char *cp, char **endp, unsigned int base, size_t max_chars)
 {
        /*
         * simple_strntoull() safely handles receiving max_chars==0 in the
@@ -140,9 +141,9 @@ static long long simple_strntoll(const char *cp, size_t max_chars, char **endp,
         * and the content of *cp is irrelevant.
         */
        if (*cp == '-' && max_chars > 0)
-               return -simple_strntoull(cp + 1, max_chars - 1, endp, base);
+               return -simple_strntoull(cp + 1, endp, base, max_chars - 1);
 
-       return simple_strntoull(cp, max_chars, endp, base);
+       return simple_strntoull(cp, endp, base, max_chars);
 }
 
 /**
@@ -155,7 +156,7 @@ static long long simple_strntoll(const char *cp, size_t max_chars, char **endp,
  */
 long long simple_strtoll(const char *cp, char **endp, unsigned int base)
 {
-       return simple_strntoll(cp, INT_MAX, endp, base);
+       return simple_strntoll(cp, endp, base, INT_MAX);
 }
 EXPORT_SYMBOL(simple_strtoll);
 
@@ -3648,13 +3649,11 @@ int vsscanf(const char *buf, const char *fmt, va_list args)
                        break;
 
                if (is_sign)
-                       val.s = simple_strntoll(str,
-                                               field_width >= 0 ? field_width : INT_MAX,
-                                               &next, base);
+                       val.s = simple_strntoll(str, &next, base,
+                                               field_width >= 0 ? field_width : INT_MAX);
                else
-                       val.u = simple_strntoull(str,
-                                                field_width >= 0 ? field_width : INT_MAX,
-                                                &next, base);
+                       val.u = simple_strntoull(str, &next, base,
+                                                field_width >= 0 ? field_width : INT_MAX);
 
                switch (qualifier) {
                case 'H':       /* that's 'hh' in format */