Andrii Nakryiko 5eccd2db42 bpf: reuse btf_prepare_func_args() check for main program BTF validation
Instead of btf_check_subprog_arg_match(), use btf_prepare_func_args()
logic to validate "trustworthiness" of main BPF program's BTF information,
if it is present.

We ignored results of original BTF check anyway, often times producing
confusing and ominously-sounding "reg type unsupported for arg#0
function" message, which has no apparent effect on program correctness
and verification process.

All the -EFAULT returning sanity checks are already performed in
check_btf_info_early(), so there is zero reason to have this duplication
of logic between btf_check_subprog_call() and btf_check_subprog_arg_match().
Dropping btf_check_subprog_arg_match() simplifies
btf_check_func_arg_match() further removing `bool processing_call` flag.

One subtle bit that was done by btf_check_subprog_arg_match() was
potentially marking main program's BTF as unreliable. We do this
explicitly now with a dedicated simple check, preserving the original
behavior, but now based on well factored btf_prepare_func_args() logic.

Acked-by: Eduard Zingerman <eddyz87@gmail.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/r/20231215011334.2307144-3-andrii@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
2023-12-19 18:06:46 -08:00
..
2023-11-15 04:02:25 +01:00
2023-11-03 15:44:25 -10:00
2023-11-08 09:47:52 -08:00
2022-09-26 10:13:13 -07:00
2023-10-30 20:13:17 -10:00
2023-03-24 11:01:29 +01:00
2023-10-19 11:02:48 +02:00
2023-08-30 09:16:56 -07:00
2023-10-09 16:59:47 +10:00
2023-06-28 15:51:08 -07:00
2023-09-19 13:21:33 -07:00
2023-10-18 14:34:15 -07:00
2023-10-30 17:56:53 -10:00
2023-10-04 10:41:57 -07:00
2023-11-01 15:28:33 -10:00
2023-11-01 15:28:33 -10:00
2023-08-15 15:26:17 -07:00
2023-10-11 08:46:01 -07:00