Commit d14c1fac authored by Kui-Feng Lee's avatar Kui-Feng Lee Committed by Martin KaFai Lau

bpftool: Change pid_iter.bpf.c to comply with the change of bpf_link_fops.

To support epoll, a new instance of file_operations, bpf_link_fops_poll,
has been added for links that support epoll. The pid_iter.bpf.c checks
f_ops for links and other BPF objects. The check should fail for struct_ops
links without this patch.
Acked-by: default avatarQuentin Monnet <qmo@kernel.org>
Signed-off-by: default avatarKui-Feng Lee <thinker.li@gmail.com>
Link: https://lore.kernel.org/r/20240530065946.979330-9-thinker.li@gmail.comSigned-off-by: default avatarMartin KaFai Lau <martin.lau@kernel.org>
parent 1a4b858b
......@@ -29,6 +29,7 @@ enum bpf_link_type___local {
};
extern const void bpf_link_fops __ksym;
extern const void bpf_link_fops_poll __ksym __weak;
extern const void bpf_map_fops __ksym;
extern const void bpf_prog_fops __ksym;
extern const void btf_fops __ksym;
......@@ -84,7 +85,11 @@ int iter(struct bpf_iter__task_file *ctx)
fops = &btf_fops;
break;
case BPF_OBJ_LINK:
fops = &bpf_link_fops;
if (&bpf_link_fops_poll &&
file->f_op == &bpf_link_fops_poll)
fops = &bpf_link_fops_poll;
else
fops = &bpf_link_fops;
break;
default:
return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment