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: Quentin Monnet <qmo@kernel.org> Signed-off-by: Kui-Feng Lee <thinker.li@gmail.com> Link: https://lore.kernel.org/r/20240530065946.979330-9-thinker.li@gmail.com Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
This commit is contained in:
parent
1a4b858b6a
commit
d14c1fac0c
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user