]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
x86/boot: Get rid of kstrtoull()
authorBorislav Petkov (AMD) <bp@alien8.de>
Mon, 4 May 2026 12:26:13 +0000 (14:26 +0200)
committerBorislav Petkov (AMD) <bp@alien8.de>
Mon, 4 May 2026 12:26:13 +0000 (14:26 +0200)
Fold the '+' check in the single-underscore-prefixed version
_kstrtoull() and remove the function. The arch/x86/boot/ namespace
prefixes everything copied from kernel proper with "boot_" so that
namespace clashes can be avoided.

No functional changes.

Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
arch/x86/boot/string.c
arch/x86/boot/string.h

index b25c6a9303b7314d5caf5c9306239811705294fe..ac0f900ebc47efa81c92e1bb2010ea41677899c4 100644 (file)
@@ -289,6 +289,9 @@ static int _kstrtoull(const char *s, unsigned int base, unsigned long long *res)
        unsigned long long _res;
        unsigned int rv;
 
+       if (s[0] == '+')
+               s++;
+
        s = _parse_integer_fixup_radix(s, &base);
        rv = _parse_integer(s, base, &_res);
        if (rv & KSTRTOX_OVERFLOW)
@@ -304,35 +307,12 @@ static int _kstrtoull(const char *s, unsigned int base, unsigned long long *res)
        return 0;
 }
 
-/**
- * kstrtoull - convert a string to an unsigned long long
- * @s: The start of the string. The string must be null-terminated, and may also
- *  include a single newline before its terminating null. The first character
- *  may also be a plus sign, but not a minus sign.
- * @base: The number base to use. The maximum supported base is 16. If base is
- *  given as 0, then the base of the string is automatically detected with the
- *  conventional semantics - If it begins with 0x the number will be parsed as a
- *  hexadecimal (case insensitive), if it otherwise begins with 0, it will be
- *  parsed as an octal number. Otherwise it will be parsed as a decimal.
- * @res: Where to write the result of the conversion on success.
- *
- * Returns 0 on success, -ERANGE on overflow and -EINVAL on parsing error.
- * Used as a replacement for the obsolete simple_strtoull. Return code must
- * be checked.
- */
-int kstrtoull(const char *s, unsigned int base, unsigned long long *res)
-{
-       if (s[0] == '+')
-               s++;
-       return _kstrtoull(s, base, res);
-}
-
 static int _kstrtoul(const char *s, unsigned int base, unsigned long *res)
 {
        unsigned long long tmp;
        int rv;
 
-       rv = kstrtoull(s, base, &tmp);
+       rv = _kstrtoull(s, base, &tmp);
        if (rv < 0)
                return rv;
        if (tmp != (unsigned long)tmp)
@@ -364,7 +344,7 @@ int boot_kstrtoul(const char *s, unsigned int base, unsigned long *res)
         */
        if (sizeof(unsigned long) == sizeof(unsigned long long) &&
            __alignof__(unsigned long) == __alignof__(unsigned long long))
-               return kstrtoull(s, base, (unsigned long long *)res);
+               return _kstrtoull(s, base, (unsigned long long *)res);
        else
                return _kstrtoul(s, base, res);
 }
index a5b05ebc037de5315ff52128942b81eca480b99c..4092bf2ed1eec3404269a085ff8c5835f8be3cab 100644 (file)
@@ -28,6 +28,5 @@ extern unsigned long long simple_strtoull(const char *cp, char **endp,
                                          unsigned int base);
 long simple_strtol(const char *cp, char **endp, unsigned int base);
 
-int kstrtoull(const char *s, unsigned int base, unsigned long long *res);
 int boot_kstrtoul(const char *s, unsigned int base, unsigned long *res);
 #endif /* BOOT_STRING_H */