mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-22 02:17:36 -04:00
x86/boot: Get rid of kstrtoull()
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>
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user