If strbuf is used (depmod, modprobe -c) then strbuf_reserve_extra is
performance critical. This reduces amount of instructions for
modprobe -c by around 10 %, the total instruction count for depmod
by 1 % (majority is within reading module files).
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
Link: https://github.com/kmod-project/kmod/pull/296
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
static bool strbuf_reserve_extra(struct strbuf *buf, size_t n)
{
+ if (n < buf->size - buf->used)
+ return true;
+
if (uaddsz_overflow(buf->used, n, &n) || n >= SIZE_MAX - BUF_STEP)
return false;
- if (n < buf->size)
- return true;
-
if (++n % BUF_STEP)
n = ((n / BUF_STEP) + 1) * BUF_STEP;