]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
media: rkvdec: reduce stack usage in rkvdec_init_v4l2_vp9_count_tbl()
authorArnd Bergmann <arnd@arndb.de>
Mon, 2 Feb 2026 09:47:51 +0000 (10:47 +0100)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Wed, 18 Mar 2026 10:21:31 +0000 (11:21 +0100)
commitc03b7dec3c4ddc97872fa12bfca75bae9cb46510
tree9fea7dcf20dcc4ba04c15fe257d87a838aa2d482
parent446c6a25a4494e137ec42e886da04e29efc2dc39
media: rkvdec: reduce stack usage in rkvdec_init_v4l2_vp9_count_tbl()

The deeply nested loop in rkvdec_init_v4l2_vp9_count_tbl() needs a lot
of registers, so when the clang register allocator runs out, it ends up
spilling countless temporaries to the stack:

drivers/media/platform/rockchip/rkvdec/rkvdec-vp9.c:966:12: error: stack frame size (1472) exceeds limit (1280) in 'rkvdec_vp9_start' [-Werror,-Wframe-larger-than]

Marking this function as noinline_for_stack keeps it out of
rkvdec_vp9_start(), giving the compiler more room for optimization.

The resulting code is good enough that both the total stack usage
and the loop get enough better to stay under the warning limit,
though it's still slow, and would need a larger rework if this
function ends up being called in a fast path.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/platform/rockchip/rkvdec/rkvdec-vp9.c