]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
bpf: use kvzmalloc to allocate BPF verifier environment
authorRik van Riel <riel@surriel.com>
Tue, 8 Oct 2024 21:07:35 +0000 (17:07 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 17 Nov 2024 13:58:08 +0000 (14:58 +0100)
commit44d3e3d8644bf3534a376d6f1073a764c73b4781
treef21a4057a51c32979de6c031e78932dca0a617ba
parent52a1b77eb0123132bea6b05fa7ac906f8436e572
bpf: use kvzmalloc to allocate BPF verifier environment

[ Upstream commit 434247637c66e1be2bc71a9987d4c3f0d8672387 ]

The kzmalloc call in bpf_check can fail when memory is very fragmented,
which in turn can lead to an OOM kill.

Use kvzmalloc to fall back to vmalloc when memory is too fragmented to
allocate an order 3 sized bpf verifier environment.

Admittedly this is not a very common case, and only happens on systems
where memory has already been squeezed close to the limit, but this does
not seem like much of a hot path, and it's a simple enough fix.

Signed-off-by: Rik van Riel <riel@surriel.com>
Reviewed-by: Shakeel Butt <shakeel.butt@linux.dev>
Link: https://lore.kernel.org/r/20241008170735.16766766@imladris.surriel.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
kernel/bpf/verifier.c