diff options
author | Jiong Wang <jiong.wang@netronome.com> | 2019-05-24 18:25:19 -0400 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2019-05-24 21:58:37 -0400 |
commit | 046561981b948e07df096a8402f9efc80bc784d9 (patch) | |
tree | f98a6321e327d3bb2649b2f8854d7106778b9f03 /tools/lib/bpf/libbpf.c | |
parent | d6c2308c742a655f4598364ab331959639aae166 (diff) |
libbpf: add "prog_flags" to bpf_program/bpf_prog_load_attr/bpf_load_program_attr
libbpf doesn't allow passing "prog_flags" during bpf program load in a
couple of load related APIs, "bpf_load_program_xattr", "load_program" and
"bpf_prog_load_xattr".
It makes sense to allow passing "prog_flags" which is useful for
customizing program loading.
Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: Jiong Wang <jiong.wang@netronome.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'tools/lib/bpf/libbpf.c')
-rw-r--r-- | tools/lib/bpf/libbpf.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c index 197b574406b3..ff149372b3c0 100644 --- a/tools/lib/bpf/libbpf.c +++ b/tools/lib/bpf/libbpf.c | |||
@@ -188,6 +188,7 @@ struct bpf_program { | |||
188 | void *line_info; | 188 | void *line_info; |
189 | __u32 line_info_rec_size; | 189 | __u32 line_info_rec_size; |
190 | __u32 line_info_cnt; | 190 | __u32 line_info_cnt; |
191 | __u32 prog_flags; | ||
191 | }; | 192 | }; |
192 | 193 | ||
193 | enum libbpf_map_type { | 194 | enum libbpf_map_type { |
@@ -2076,6 +2077,7 @@ load_program(struct bpf_program *prog, struct bpf_insn *insns, int insns_cnt, | |||
2076 | load_attr.line_info_rec_size = prog->line_info_rec_size; | 2077 | load_attr.line_info_rec_size = prog->line_info_rec_size; |
2077 | load_attr.line_info_cnt = prog->line_info_cnt; | 2078 | load_attr.line_info_cnt = prog->line_info_cnt; |
2078 | load_attr.log_level = prog->log_level; | 2079 | load_attr.log_level = prog->log_level; |
2080 | load_attr.prog_flags = prog->prog_flags; | ||
2079 | if (!load_attr.insns || !load_attr.insns_cnt) | 2081 | if (!load_attr.insns || !load_attr.insns_cnt) |
2080 | return -EINVAL; | 2082 | return -EINVAL; |
2081 | 2083 | ||
@@ -3521,6 +3523,7 @@ int bpf_prog_load_xattr(const struct bpf_prog_load_attr *attr, | |||
3521 | expected_attach_type); | 3523 | expected_attach_type); |
3522 | 3524 | ||
3523 | prog->log_level = attr->log_level; | 3525 | prog->log_level = attr->log_level; |
3526 | prog->prog_flags = attr->prog_flags; | ||
3524 | if (!first_prog) | 3527 | if (!first_prog) |
3525 | first_prog = prog; | 3528 | first_prog = prog; |
3526 | } | 3529 | } |