Message ID | 1895f7dfe2a8067f6397ff565edf20130a28aa91.1567024943.git.hex@fb.com |
---|---|
State | Changes Requested |
Delegated to: | BPF Maintainers |
Headers | show |
Series | bpf: bpf_(prog|map|attach)_type_(from|to)_str helpers | expand |
Em Wed, Aug 28, 2019 at 02:03:06PM -0700, Julia Kartseva escreveu: > Add cases to switch statements in probe_load, bpf_prog_type__needs_kver > bpf_probe_map_type to fix enumeration value not handled in switch > compilation error. > prog_type_name array in bpftool/main.h doesn't have __MAX_BPF_PROG_TYPE > entity, same for map, so probe won't be called. Shouldn't this be added when adding that __MAX_BPF_PROG_TYPE value to the enum? Otherwise the build will fail when __MAX_BPF_PROG_TYPE is added but not handled in the switches. I.e. the tree should build patch by patch, not just at the end of patch series. - Arnaldo > Signed-off-by: Julia Kartseva <hex@fb.com> > --- > tools/lib/bpf/libbpf.c | 1 + > tools/lib/bpf/libbpf_probes.c | 2 ++ > 2 files changed, 3 insertions(+) > > diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c > index 2233f919dd88..72e6e5eb397f 100644 > --- a/tools/lib/bpf/libbpf.c > +++ b/tools/lib/bpf/libbpf.c > @@ -3580,6 +3580,7 @@ static bool bpf_prog_type__needs_kver(enum bpf_prog_type type) > case BPF_PROG_TYPE_PERF_EVENT: > case BPF_PROG_TYPE_CGROUP_SYSCTL: > case BPF_PROG_TYPE_CGROUP_SOCKOPT: > + case __MAX_BPF_PROG_TYPE: > return false; > case BPF_PROG_TYPE_KPROBE: > default: > diff --git a/tools/lib/bpf/libbpf_probes.c b/tools/lib/bpf/libbpf_probes.c > index 4b0b0364f5fc..8f2ba6a457ac 100644 > --- a/tools/lib/bpf/libbpf_probes.c > +++ b/tools/lib/bpf/libbpf_probes.c > @@ -102,6 +102,7 @@ probe_load(enum bpf_prog_type prog_type, const struct bpf_insn *insns, > case BPF_PROG_TYPE_FLOW_DISSECTOR: > case BPF_PROG_TYPE_CGROUP_SYSCTL: > case BPF_PROG_TYPE_CGROUP_SOCKOPT: > + case __MAX_BPF_PROG_TYPE: > default: > break; > } > @@ -250,6 +251,7 @@ bool bpf_probe_map_type(enum bpf_map_type map_type, __u32 ifindex) > case BPF_MAP_TYPE_XSKMAP: > case BPF_MAP_TYPE_SOCKHASH: > case BPF_MAP_TYPE_REUSEPORT_SOCKARRAY: > + case __MAX_BPF_MAP_TYPE: > default: > break; > } > -- > 2.17.1
diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c index 2233f919dd88..72e6e5eb397f 100644 --- a/tools/lib/bpf/libbpf.c +++ b/tools/lib/bpf/libbpf.c @@ -3580,6 +3580,7 @@ static bool bpf_prog_type__needs_kver(enum bpf_prog_type type) case BPF_PROG_TYPE_PERF_EVENT: case BPF_PROG_TYPE_CGROUP_SYSCTL: case BPF_PROG_TYPE_CGROUP_SOCKOPT: + case __MAX_BPF_PROG_TYPE: return false; case BPF_PROG_TYPE_KPROBE: default: diff --git a/tools/lib/bpf/libbpf_probes.c b/tools/lib/bpf/libbpf_probes.c index 4b0b0364f5fc..8f2ba6a457ac 100644 --- a/tools/lib/bpf/libbpf_probes.c +++ b/tools/lib/bpf/libbpf_probes.c @@ -102,6 +102,7 @@ probe_load(enum bpf_prog_type prog_type, const struct bpf_insn *insns, case BPF_PROG_TYPE_FLOW_DISSECTOR: case BPF_PROG_TYPE_CGROUP_SYSCTL: case BPF_PROG_TYPE_CGROUP_SOCKOPT: + case __MAX_BPF_PROG_TYPE: default: break; } @@ -250,6 +251,7 @@ bool bpf_probe_map_type(enum bpf_map_type map_type, __u32 ifindex) case BPF_MAP_TYPE_XSKMAP: case BPF_MAP_TYPE_SOCKHASH: case BPF_MAP_TYPE_REUSEPORT_SOCKARRAY: + case __MAX_BPF_MAP_TYPE: default: break; }
Add cases to switch statements in probe_load, bpf_prog_type__needs_kver bpf_probe_map_type to fix enumeration value not handled in switch compilation error. prog_type_name array in bpftool/main.h doesn't have __MAX_BPF_PROG_TYPE entity, same for map, so probe won't be called. Signed-off-by: Julia Kartseva <hex@fb.com> --- tools/lib/bpf/libbpf.c | 1 + tools/lib/bpf/libbpf_probes.c | 2 ++ 2 files changed, 3 insertions(+)