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 <[email protected]>
Signed-off-by: Menglong Dong <[email protected]>
---
v3:
- replace "FENTRY/FEXIT/FSESSION" with "Tracing"

v2:
- add a missing FSESSION in bpf_check_attach_target()
---
 kernel/bpf/verifier.c                               | 10 +++++-----
 tools/testing/selftests/bpf/prog_tests/exceptions.c |  8 ++++----
 tools/testing/selftests/bpf/verifier/sleepable.c    |  2 +-
 3 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
index 84699a428077..ac89ad992f27 100644
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -11690,7 +11690,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;
                }
@@ -25494,7 +25494,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);
@@ -25530,7 +25530,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;
@@ -25619,7 +25619,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)) {
@@ -25885,7 +25885,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;
        }
 
diff --git a/tools/testing/selftests/bpf/prog_tests/exceptions.c 
b/tools/testing/selftests/bpf/prog_tests/exceptions.c
index 84ab73e08b0e..e8cbaf2a3e82 100644
--- a/tools/testing/selftests/bpf/prog_tests/exceptions.c
+++ b/tools/testing/selftests/bpf/prog_tests/exceptions.c
@@ -128,7 +128,7 @@ static void test_exceptions_success(void)
                                       
bpf_program__fd(skel->progs.exception_ext_mod_cb_runtime),
                                       "exception_cb_mod"), 
"set_attach_target"))
                                goto done;
-               }), "FENTRY/FEXIT programs cannot attach to exception 
callback", 0);
+               }), "Tracing programs cannot attach to exception callback", 0);
 
        if (test__start_subtest("throwing fentry -> exception_cb"))
                RUN_EXT(-EINVAL, true, ({
@@ -138,7 +138,7 @@ static void test_exceptions_success(void)
                                       
bpf_program__fd(skel->progs.exception_ext_mod_cb_runtime),
                                       "exception_cb_mod"), 
"set_attach_target"))
                                goto done;
-               }), "FENTRY/FEXIT programs cannot attach to exception 
callback", 0);
+               }), "Tracing programs cannot attach to exception callback", 0);
 
        if (test__start_subtest("non-throwing fexit -> exception_cb"))
                RUN_EXT(-EINVAL, true, ({
@@ -148,7 +148,7 @@ static void test_exceptions_success(void)
                                       
bpf_program__fd(skel->progs.exception_ext_mod_cb_runtime),
                                       "exception_cb_mod"), 
"set_attach_target"))
                                goto done;
-               }), "FENTRY/FEXIT programs cannot attach to exception 
callback", 0);
+               }), "Tracing programs cannot attach to exception callback", 0);
 
        if (test__start_subtest("throwing fexit -> exception_cb"))
                RUN_EXT(-EINVAL, true, ({
@@ -158,7 +158,7 @@ static void test_exceptions_success(void)
                                       
bpf_program__fd(skel->progs.exception_ext_mod_cb_runtime),
                                       "exception_cb_mod"), 
"set_attach_target"))
                                goto done;
-               }), "FENTRY/FEXIT programs cannot attach to exception 
callback", 0);
+               }), "Tracing programs cannot attach to exception callback", 0);
 
        if (test__start_subtest("throwing extension (with custom cb) -> 
exception_cb"))
                RUN_EXT(-EINVAL, true, ({
diff --git a/tools/testing/selftests/bpf/verifier/sleepable.c 
b/tools/testing/selftests/bpf/verifier/sleepable.c
index 1f0d2bdc673f..c2b7f5ebf168 100644
--- a/tools/testing/selftests/bpf/verifier/sleepable.c
+++ b/tools/testing/selftests/bpf/verifier/sleepable.c
@@ -85,7 +85,7 @@
        .expected_attach_type = BPF_TRACE_RAW_TP,
        .kfunc = "sched_switch",
        .result = REJECT,
-       .errstr = "Only fentry/fexit/fmod_ret, lsm, iter, uprobe, and 
struct_ops programs can be sleepable",
+       .errstr = "Only fentry/fexit/fsession/fmod_ret, lsm, iter, uprobe, and 
struct_ops programs can be sleepable",
        .flags = BPF_F_SLEEPABLE,
        .runs = -1,
 },
-- 
2.53.0


Reply via email to