Please sign in to comment.
lib/kstrtox: common code between kstrto*() and simple_strto*() functions
Currently termination logic (\0 or \n\0) is hardcoded in _kstrtoull(), avoid that for code reuse between kstrto*() and simple_strtoull(). Essentially, make them different only in termination logic. simple_strtoull() (and scanf(), BTW) ignores integer overflow, that's a bug we currently don't have guts to fix, making KSTRTOX_OVERFLOW hack necessary. Almost forgot: patch shrinks code size by about ~80 bytes on x86_64. Signed-off-by: Alexey Dobriyan <firstname.lastname@example.org> Signed-off-by: Andrew Morton <email@example.com> Signed-off-by: Linus Torvalds <firstname.lastname@example.org>
- Loading branch information...
Showing with 68 additions and 48 deletions.
|@@ -0,0 +1,8 @@|
|+#define KSTRTOX_OVERFLOW (1U << 31)|
|+const char *_parse_integer_fixup_radix(const char *s, unsigned int *base);|
|+unsigned int _parse_integer(const char *s, unsigned int base, unsigned long long *res);|