bpf: net: Refactor bpf_iter target registration
Currently bpf_iter_reg_target takes parameters from target and allocates memory to save them. This is really not necessary, esp. in the future we may grow information passed from targets to bpf_iter manager. The patch refactors the code so target reg_info becomes static and bpf_iter manager can just take a reference to it. Signed-off-by: Yonghong Song <yhs@fb.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Link: https://lore.kernel.org/bpf/20200513180219.2949605-1-yhs@fb.com
This commit is contained in:

committed by
Alexei Starovoitov

parent
2e3ed68bfc
commit
15172a46fa
@@ -306,22 +306,24 @@ static const struct seq_operations task_file_seq_ops = {
|
||||
.show = task_file_seq_show,
|
||||
};
|
||||
|
||||
static const struct bpf_iter_reg task_reg_info = {
|
||||
.target = "task",
|
||||
.seq_ops = &task_seq_ops,
|
||||
.init_seq_private = init_seq_pidns,
|
||||
.fini_seq_private = fini_seq_pidns,
|
||||
.seq_priv_size = sizeof(struct bpf_iter_seq_task_info),
|
||||
};
|
||||
|
||||
static const struct bpf_iter_reg task_file_reg_info = {
|
||||
.target = "task_file",
|
||||
.seq_ops = &task_file_seq_ops,
|
||||
.init_seq_private = init_seq_pidns,
|
||||
.fini_seq_private = fini_seq_pidns,
|
||||
.seq_priv_size = sizeof(struct bpf_iter_seq_task_file_info),
|
||||
};
|
||||
|
||||
static int __init task_iter_init(void)
|
||||
{
|
||||
struct bpf_iter_reg task_file_reg_info = {
|
||||
.target = "task_file",
|
||||
.seq_ops = &task_file_seq_ops,
|
||||
.init_seq_private = init_seq_pidns,
|
||||
.fini_seq_private = fini_seq_pidns,
|
||||
.seq_priv_size = sizeof(struct bpf_iter_seq_task_file_info),
|
||||
};
|
||||
struct bpf_iter_reg task_reg_info = {
|
||||
.target = "task",
|
||||
.seq_ops = &task_seq_ops,
|
||||
.init_seq_private = init_seq_pidns,
|
||||
.fini_seq_private = fini_seq_pidns,
|
||||
.seq_priv_size = sizeof(struct bpf_iter_seq_task_info),
|
||||
};
|
||||
int ret;
|
||||
|
||||
ret = bpf_iter_reg_target(&task_reg_info);
|
||||
|
Reference in New Issue
Block a user