At some point skip_atoi() had been marked 'noinline_for_stack', but it turns out that this is now a pessimization, and not inlining it actually results in a stack frame in format decoding due to the call and thus hurts stack usage rather than helping. With the simplistic atoi function inlined, the format decoding now needs no frame at all.
Showing the changes to lib/vsprintf.c (1 of 1 file). Show all
Unified · Split
| @@ -160,8 +160,7 @@ long long simple_strtoll(const char *cp, char **endp, unsigned int base) · 159 unmodified lines | |||
| 160 | } | 160 | } |
| 161 | EXPORT_SYMBOL(simple_strtoll); | 161 | EXPORT_SYMBOL(simple_strtoll); |
| 162 | 162 | ||
| 163 | static noinline_for_stack | 163 | static inline int skip_atoi(const char **s) |
| 164 | int skip_atoi(const char **s) | ||
| 165 | { | 164 | { |
| 166 | int i = 0; | 165 | int i = 0; |
| 167 | 166 | ||