UPSTREAM: bpf: Refactor to provide aux info to bpf_iter_init_seq_priv_t

This patch refactored target bpf_iter_init_seq_priv_t callback
function to accept additional information. This will be needed
in later patches for map element targets since a particular
map should be passed to traverse elements for that particular
map. In the future, other information may be passed to target
as well, e.g., pid, cgroup id, etc. to customize the iterator.

Change-Id: I3676c634f448874f4d6f12b2199915972a158d10
Signed-off-by: Yonghong Song <yhs@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20200723184110.590156-1-yhs@fb.com
This commit is contained in:
Yonghong Song 2020-07-23 11:41:10 -07:00 • committed by basamaryan
commit ccd34e4b58
No known key found for this signature in database
GPG key ID: 210D5384FB2A5885
7 changed files with 15 additions and 9 deletions

View file

@ -442,7 +442,7 @@ static int prepare_seq_file(struct file *file, struct bpf_iter_link *link)
}
if (tinfo->reg_info->seq_info->init_seq_private) {
err = tinfo->reg_info->seq_info->init_seq_private(priv_data->target_private);
err = tinfo->reg_info->seq_info->init_seq_private(priv_data->target_private, NULL);
if (err)
goto release_seq_file;
}

View file

@ -293,7 +293,7 @@ static void task_file_seq_stop(struct seq_file *seq, void *v)
}
}
static int init_seq_pidns(void *priv_data)
static int init_seq_pidns(void *priv_data, struct bpf_iter_aux_info *aux)
{
struct bpf_iter_seq_task_common *common = priv_data;