Re: [PATCH bpf-next v8 04/11] bpf: support fsession for bpf_session_is_return

From: Menglong Dong

Date: Fri Jan 09 2026 - 22:38:12 EST


On 2026/1/10 10:40, Alexei Starovoitov wrote:
> On Wed, Jan 7, 2026 at 6:25 PM Menglong Dong <menglong8.dong@xxxxxxxxx> wrote:
> >
> > + } else if (func_id == special_kfunc_list[KF_bpf_session_is_return]) {
> > + if (prog->expected_attach_type == BPF_TRACE_FSESSION)
> > + addr = (unsigned long)bpf_fsession_is_return;
>
> ...
>
> > +bool bpf_fsession_is_return(void *ctx)
> > +{
> > + /* This helper call is inlined by verifier. */
> > + return !!(((u64 *)ctx)[-1] & (1 << BPF_TRAMP_M_IS_RETURN));
> > +}
> > +
>
> Why do this specialization and introduce a global function
> that will never be called, since it will be inlined anyway?

Ah, the specialization and the definition of the global function
is not unnecessary. I thought that it's kinda fallback solution
that we define the function even if it is inlined by the verifier.

>
> Remove the first hunk and make the 2nd a comment instead of a real function?

Agree. So it will be:

+static bool bpf_fsession_is_return(void *ctx)
+{
+ /* This helper call is implemented and inlined by the verifier, and the logic is:
+ * return !!(((u64 *)ctx)[-1] & (1 << BPF_TRAMP_M_IS_RETURN));
+ */
+ return false;
+}

>
>