mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
bpf: add missing fsession to the verifier log
The fsession attach type is missed in the verifier log in check_get_func_ip(), bpf_check_attach_target() and check_attach_btf_id(). Update them to make the verifier log proper. Meanwhile, update the corresponding selftests. Acked-by: Leon Hwang <leon.hwang@linux.dev> Signed-off-by: Menglong Dong <dongml2@chinatelecom.cn> Link: https://lore.kernel.org/r/20260412060346.142007-2-dongml2@chinatelecom.cn Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
committed by
Alexei Starovoitov
parent
46ffc1f782
commit
9fd19e3ed7
@@ -10152,7 +10152,7 @@ static int check_get_func_ip(struct bpf_verifier_env *env)
|
||||
|
||||
if (type == BPF_PROG_TYPE_TRACING) {
|
||||
if (!bpf_prog_has_trampoline(env->prog)) {
|
||||
verbose(env, "func %s#%d supported only for fentry/fexit/fmod_ret programs\n",
|
||||
verbose(env, "func %s#%d supported only for fentry/fexit/fsession/fmod_ret programs\n",
|
||||
func_id_name(func_id), func_id);
|
||||
return -ENOTSUPP;
|
||||
}
|
||||
@@ -19135,7 +19135,7 @@ int bpf_check_attach_target(struct bpf_verifier_log *log,
|
||||
btf = tgt_prog ? tgt_prog->aux->btf : prog->aux->attach_btf;
|
||||
if (!btf) {
|
||||
bpf_log(log,
|
||||
"FENTRY/FEXIT program can only be attached to another program annotated with BTF\n");
|
||||
"Tracing program can only be attached to another program annotated with BTF\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
t = btf_type_by_id(btf, btf_id);
|
||||
@@ -19171,7 +19171,7 @@ int bpf_check_attach_target(struct bpf_verifier_log *log,
|
||||
if (aux->func && aux->func[subprog]->aux->exception_cb) {
|
||||
bpf_log(log,
|
||||
"%s programs cannot attach to exception callback\n",
|
||||
prog_extension ? "Extension" : "FENTRY/FEXIT");
|
||||
prog_extension ? "Extension" : "Tracing");
|
||||
return -EINVAL;
|
||||
}
|
||||
conservative = aux->func_info_aux[subprog].unreliable;
|
||||
@@ -19260,7 +19260,7 @@ int bpf_check_attach_target(struct bpf_verifier_log *log,
|
||||
case BPF_TRACE_RAW_TP:
|
||||
if (tgt_prog) {
|
||||
bpf_log(log,
|
||||
"Only FENTRY/FEXIT progs are attachable to another BPF prog\n");
|
||||
"Only FENTRY/FEXIT/FSESSION progs are attachable to another BPF prog\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
if (!btf_type_is_typedef(t)) {
|
||||
@@ -19526,7 +19526,7 @@ static int check_attach_btf_id(struct bpf_verifier_env *env)
|
||||
}
|
||||
|
||||
if (prog->sleepable && !can_be_sleepable(prog)) {
|
||||
verbose(env, "Only fentry/fexit/fmod_ret, lsm, iter, uprobe, and struct_ops programs can be sleepable\n");
|
||||
verbose(env, "Only fentry/fexit/fsession/fmod_ret, lsm, iter, uprobe, and struct_ops programs can be sleepable\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user