函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\bpf\trampoline.c Create Date:2022-07-27 14:32:58
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:bpf_trampoline_link_prog

函数原型:int bpf_trampoline_link_prog(struct bpf_prog *prog)

返回类型:int

参数:

类型参数名称
struct bpf_prog *prog
195  err等于0
197  tr等于trampoline
198  kind等于bpf_attach_type_to_tramp( For some prog types )
199  mutex_lock( & serializes access to fields of this trampoline )
200  如果 Number of attached programs. A counter per kind. [BPF_TRAMP_FENTRY]加 Number of attached programs. A counter per kind. [BPF_TRAMP_FEXIT]大于等于Each call __bpf_prog_enter + call bpf_func + call __bpf_prog_exit is ~50* bytes on x86. Pick a number to fit into PAGE_SIZE / 2
202  err等于负E2BIG
203  转到:out
205  如果非hlist_unhashed( & tramp_hlist)则
207  err等于负EBUSY
208  转到:out
210  hlist_add_head( & tramp_hlist, & list of BPF programs using this trampoline [kind])
211  Number of attached programs. A counter per kind. [kind]自加
212  err等于bpf_trampoline_update(trampoline)
213  如果err
214  hlist_del( & tramp_hlist)
215  Number of attached programs. A counter per kind. [kind]自减
217  out :
218  mutex_unlock - release the mutex*@lock: the mutex to be released* Unlock a mutex that has been locked by this task previously.* This function must not be used in interrupt context. Unlocking* of a not locked mutex is not allowed.
219  返回:err
调用者
名称描述
bpf_tracing_prog_attach