]> www.infradead.org Git - users/willy/pagecache.git/commitdiff
Merge branch 'vsnprintf'
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 20 Jan 2025 05:28:57 +0000 (21:28 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 20 Jan 2025 05:28:57 +0000 (21:28 -0800)
This merges the vsnprintf internal cleanups I did, which were triggered
by a combination of performance issues (see for example commit
f9ed1f7c2e26: "genirq/proc: Use seq_put_decimal_ull_width() for decimal
values") and discussion about tracing abusing the vsnprintf code in odd
ways.

The intent was to improve code generation, but also to possibly
eventually expose the cleaned-up printf format decoding state machine.

It certainly didn't get to the point where we'd want to expose the
format decoding to external users, but it's an improvement over what we
used to have.  Several of the complex case statements have been
simplified, or removed entirely to be replaced by simple table lookups.

* branch 'vsnprintf':
  vsnprintf: fix the number base for non-numeric formats
  vsnprintf: fix up kerneldoc for argument name changes
  vsprintf: don't make the 'binary' version pack small integer arguments
  vsnprintf: collapse the number format state into one single state
  vsnprintf: mark the indirect width and precision cases unlikely
  vsnprintf: inline skip_atoi() again
  vsprintf: deal with format specifiers with a lookup table
  vsprintf: deal with format flags with a simple lookup table
  vsprintf: associate the format state with the format pointer
  vsprintf: fix calling convention for format_decode()
  vsprintf: avoid nested switch statement on same variable
  vsprintf: simplify number handling


Trivial merge