函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:prog_array_map_poke_run

函数原型:static void prog_array_map_poke_run(struct bpf_map *map, u32 key, struct bpf_prog *old, struct bpf_prog *new)

返回类型:void

参数:

类型参数名称
struct bpf_map *map
u32key
struct bpf_prog *old
struct bpf_prog *new
752  aux = ({
752  __mptr等于map
752  循环
752  当0循环
752  __mptr__builtin_offsetof(structbpf_array, map)
752  })->aux
753  WARN_ON_ONCE(!是互斥锁)
759 i小于size_poke_tab循环
760  poke等于poke_tab[i]
791  如果非READ_ONCE(ip_stable)则继续下一循环
793  如果reason不等于BPF_POKE_REASON_TAIL_CALL则继续下一循环
795  如果map不等于mapkey不等于key则继续下一循环
799  ret等于bpf_arch_text_poke(ip, BPF_MOD_JUMP, old ? (u8 * )bpf_func + adj_off : NULL, new ? (u8 * )bpf_func + adj_off : NULL)
804  BUG_ON(ret < 0 && ret != - EINVAL)