From: Martin KaFai Lau <ka...@fb.com> The next patch needs to set a bit in "prog" in cg_skb_func_proto(). Hence, the "const struct bpf_prog *" as a second argument will not work.
This patch removes the "const" from get_func_proto and makes the needed changes to all get_func_proto implementations to avoid compiler error. Signed-off-by: Martin KaFai Lau <ka...@fb.com> Signed-off-by: Lawrence Brakmo <bra...@fb.com> --- drivers/media/rc/bpf-lirc.c | 2 +- include/linux/bpf.h | 2 +- kernel/bpf/cgroup.c | 2 +- kernel/trace/bpf_trace.c | 10 +++++----- net/core/filter.c | 30 +++++++++++++++--------------- 5 files changed, 23 insertions(+), 23 deletions(-) diff --git a/drivers/media/rc/bpf-lirc.c b/drivers/media/rc/bpf-lirc.c index 390a722e6211..6adb7f734cb9 100644 --- a/drivers/media/rc/bpf-lirc.c +++ b/drivers/media/rc/bpf-lirc.c @@ -82,7 +82,7 @@ static const struct bpf_func_proto rc_pointer_rel_proto = { }; static const struct bpf_func_proto * -lirc_mode2_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) +lirc_mode2_func_proto(enum bpf_func_id func_id, struct bpf_prog *prog) { switch (func_id) { case BPF_FUNC_rc_repeat: diff --git a/include/linux/bpf.h b/include/linux/bpf.h index de18227b3d95..d5ba2fc01af3 100644 --- a/include/linux/bpf.h +++ b/include/linux/bpf.h @@ -287,7 +287,7 @@ struct bpf_verifier_ops { /* return eBPF function prototype for verification */ const struct bpf_func_proto * (*get_func_proto)(enum bpf_func_id func_id, - const struct bpf_prog *prog); + struct bpf_prog *prog); /* return true if 'size' wide access at offset 'off' within bpf_context * with 'type' (read or write) is allowed diff --git a/kernel/bpf/cgroup.c b/kernel/bpf/cgroup.c index 4e807973aa80..0de0f5d98b46 100644 --- a/kernel/bpf/cgroup.c +++ b/kernel/bpf/cgroup.c @@ -701,7 +701,7 @@ int __cgroup_bpf_check_dev_permission(short dev_type, u32 major, u32 minor, EXPORT_SYMBOL(__cgroup_bpf_check_dev_permission); static const struct bpf_func_proto * -cgroup_dev_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) +cgroup_dev_func_proto(enum bpf_func_id func_id, struct bpf_prog *prog) { switch (func_id) { case BPF_FUNC_map_lookup_elem: diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c index f1a86a0d881d..0d2f60828d7d 100644 --- a/kernel/trace/bpf_trace.c +++ b/kernel/trace/bpf_trace.c @@ -561,7 +561,7 @@ static const struct bpf_func_proto bpf_probe_read_str_proto = { }; static const struct bpf_func_proto * -tracing_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) +tracing_func_proto(enum bpf_func_id func_id, struct bpf_prog *prog) { switch (func_id) { case BPF_FUNC_map_lookup_elem: @@ -610,7 +610,7 @@ tracing_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) } static const struct bpf_func_proto * -kprobe_prog_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) +kprobe_prog_func_proto(enum bpf_func_id func_id, struct bpf_prog *prog) { switch (func_id) { case BPF_FUNC_perf_event_output: @@ -726,7 +726,7 @@ static const struct bpf_func_proto bpf_get_stack_proto_tp = { }; static const struct bpf_func_proto * -tp_prog_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) +tp_prog_func_proto(enum bpf_func_id func_id, struct bpf_prog *prog) { switch (func_id) { case BPF_FUNC_perf_event_output: @@ -790,7 +790,7 @@ static const struct bpf_func_proto bpf_perf_prog_read_value_proto = { }; static const struct bpf_func_proto * -pe_prog_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) +pe_prog_func_proto(enum bpf_func_id func_id, struct bpf_prog *prog) { switch (func_id) { case BPF_FUNC_perf_event_output: @@ -873,7 +873,7 @@ static const struct bpf_func_proto bpf_get_stack_proto_raw_tp = { }; static const struct bpf_func_proto * -raw_tp_prog_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) +raw_tp_prog_func_proto(enum bpf_func_id func_id, struct bpf_prog *prog) { switch (func_id) { case BPF_FUNC_perf_event_output: diff --git a/net/core/filter.c b/net/core/filter.c index 85749f6ec789..97916eedfe69 100644 --- a/net/core/filter.c +++ b/net/core/filter.c @@ -5508,7 +5508,7 @@ bpf_base_func_proto(enum bpf_func_id func_id) } static const struct bpf_func_proto * -sock_filter_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) +sock_filter_func_proto(enum bpf_func_id func_id, struct bpf_prog *prog) { switch (func_id) { /* inet and inet6 sockets are created in a process @@ -5524,7 +5524,7 @@ sock_filter_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) } static const struct bpf_func_proto * -sock_addr_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) +sock_addr_func_proto(enum bpf_func_id func_id, struct bpf_prog *prog) { switch (func_id) { /* inet and inet6 sockets are created in a process @@ -5558,7 +5558,7 @@ sock_addr_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) } static const struct bpf_func_proto * -sk_filter_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) +sk_filter_func_proto(enum bpf_func_id func_id, struct bpf_prog *prog) { switch (func_id) { case BPF_FUNC_skb_load_bytes: @@ -5575,7 +5575,7 @@ sk_filter_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) } static const struct bpf_func_proto * -cg_skb_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) +cg_skb_func_proto(enum bpf_func_id func_id, struct bpf_prog *prog) { switch (func_id) { case BPF_FUNC_get_local_storage: @@ -5592,7 +5592,7 @@ cg_skb_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) } static const struct bpf_func_proto * -tc_cls_act_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) +tc_cls_act_func_proto(enum bpf_func_id func_id, struct bpf_prog *prog) { switch (func_id) { case BPF_FUNC_skb_store_bytes: @@ -5685,7 +5685,7 @@ tc_cls_act_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) } static const struct bpf_func_proto * -xdp_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) +xdp_func_proto(enum bpf_func_id func_id, struct bpf_prog *prog) { switch (func_id) { case BPF_FUNC_perf_event_output: @@ -5723,7 +5723,7 @@ const struct bpf_func_proto bpf_sock_map_update_proto __weak; const struct bpf_func_proto bpf_sock_hash_update_proto __weak; static const struct bpf_func_proto * -sock_ops_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) +sock_ops_func_proto(enum bpf_func_id func_id, struct bpf_prog *prog) { switch (func_id) { case BPF_FUNC_setsockopt: @@ -5751,7 +5751,7 @@ const struct bpf_func_proto bpf_msg_redirect_map_proto __weak; const struct bpf_func_proto bpf_msg_redirect_hash_proto __weak; static const struct bpf_func_proto * -sk_msg_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) +sk_msg_func_proto(enum bpf_func_id func_id, struct bpf_prog *prog) { switch (func_id) { case BPF_FUNC_msg_redirect_map: @@ -5777,7 +5777,7 @@ const struct bpf_func_proto bpf_sk_redirect_map_proto __weak; const struct bpf_func_proto bpf_sk_redirect_hash_proto __weak; static const struct bpf_func_proto * -sk_skb_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) +sk_skb_func_proto(enum bpf_func_id func_id, struct bpf_prog *prog) { switch (func_id) { case BPF_FUNC_skb_store_bytes: @@ -5812,7 +5812,7 @@ sk_skb_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) } static const struct bpf_func_proto * -flow_dissector_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) +flow_dissector_func_proto(enum bpf_func_id func_id, struct bpf_prog *prog) { switch (func_id) { case BPF_FUNC_skb_load_bytes: @@ -5823,7 +5823,7 @@ flow_dissector_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) } static const struct bpf_func_proto * -lwt_out_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) +lwt_out_func_proto(enum bpf_func_id func_id, struct bpf_prog *prog) { switch (func_id) { case BPF_FUNC_skb_load_bytes: @@ -5850,7 +5850,7 @@ lwt_out_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) } static const struct bpf_func_proto * -lwt_in_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) +lwt_in_func_proto(enum bpf_func_id func_id, struct bpf_prog *prog) { switch (func_id) { case BPF_FUNC_lwt_push_encap: @@ -5861,7 +5861,7 @@ lwt_in_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) } static const struct bpf_func_proto * -lwt_xmit_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) +lwt_xmit_func_proto(enum bpf_func_id func_id, struct bpf_prog *prog) { switch (func_id) { case BPF_FUNC_skb_get_tunnel_key: @@ -5898,7 +5898,7 @@ lwt_xmit_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) } static const struct bpf_func_proto * -lwt_seg6local_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) +lwt_seg6local_func_proto(enum bpf_func_id func_id, struct bpf_prog *prog) { switch (func_id) { #if IS_ENABLED(CONFIG_IPV6_SEG6_BPF) @@ -8124,7 +8124,7 @@ static const struct bpf_func_proto sk_reuseport_load_bytes_relative_proto = { static const struct bpf_func_proto * sk_reuseport_func_proto(enum bpf_func_id func_id, - const struct bpf_prog *prog) + struct bpf_prog *prog) { switch (func_id) { case BPF_FUNC_sk_select_reuseport: -- 2.17.1