.map_delete_elem = array_map_delete_elem,
 };
 
-static struct bpf_map_type_list array_type __read_mostly = {
+static struct bpf_map_type_list array_type __ro_after_init = {
        .ops = &array_ops,
        .type = BPF_MAP_TYPE_ARRAY,
 };
        .map_delete_elem = array_map_delete_elem,
 };
 
-static struct bpf_map_type_list percpu_array_type __read_mostly = {
+static struct bpf_map_type_list percpu_array_type __ro_after_init = {
        .ops = &percpu_array_ops,
        .type = BPF_MAP_TYPE_PERCPU_ARRAY,
 };
        .map_fd_put_ptr = prog_fd_array_put_ptr,
 };
 
-static struct bpf_map_type_list prog_array_type __read_mostly = {
+static struct bpf_map_type_list prog_array_type __ro_after_init = {
        .ops = &prog_array_ops,
        .type = BPF_MAP_TYPE_PROG_ARRAY,
 };
        .map_release = perf_event_fd_array_release,
 };
 
-static struct bpf_map_type_list perf_event_array_type __read_mostly = {
+static struct bpf_map_type_list perf_event_array_type __ro_after_init = {
        .ops = &perf_event_array_ops,
        .type = BPF_MAP_TYPE_PERF_EVENT_ARRAY,
 };
        .map_fd_put_ptr = cgroup_fd_array_put_ptr,
 };
 
-static struct bpf_map_type_list cgroup_array_type __read_mostly = {
+static struct bpf_map_type_list cgroup_array_type __ro_after_init = {
        .ops = &cgroup_array_ops,
        .type = BPF_MAP_TYPE_CGROUP_ARRAY,
 };
 
        .map_delete_elem = htab_map_delete_elem,
 };
 
-static struct bpf_map_type_list htab_type __read_mostly = {
+static struct bpf_map_type_list htab_type __ro_after_init = {
        .ops = &htab_ops,
        .type = BPF_MAP_TYPE_HASH,
 };
        .map_delete_elem = htab_lru_map_delete_elem,
 };
 
-static struct bpf_map_type_list htab_lru_type __read_mostly = {
+static struct bpf_map_type_list htab_lru_type __ro_after_init = {
        .ops = &htab_lru_ops,
        .type = BPF_MAP_TYPE_LRU_HASH,
 };
        .map_delete_elem = htab_map_delete_elem,
 };
 
-static struct bpf_map_type_list htab_percpu_type __read_mostly = {
+static struct bpf_map_type_list htab_percpu_type __ro_after_init = {
        .ops = &htab_percpu_ops,
        .type = BPF_MAP_TYPE_PERCPU_HASH,
 };
        .map_delete_elem = htab_lru_map_delete_elem,
 };
 
-static struct bpf_map_type_list htab_lru_percpu_type __read_mostly = {
+static struct bpf_map_type_list htab_lru_percpu_type __ro_after_init = {
        .ops = &htab_lru_percpu_ops,
        .type = BPF_MAP_TYPE_LRU_PERCPU_HASH,
 };
 
        .map_delete_elem = trie_delete_elem,
 };
 
-static struct bpf_map_type_list trie_type __read_mostly = {
+static struct bpf_map_type_list trie_type __ro_after_init = {
        .ops = &trie_ops,
        .type = BPF_MAP_TYPE_LPM_TRIE,
 };
 
        .map_delete_elem = stack_map_delete_elem,
 };
 
-static struct bpf_map_type_list stack_map_type __read_mostly = {
+static struct bpf_map_type_list stack_map_type __ro_after_init = {
        .ops = &stack_map_ops,
        .type = BPF_MAP_TYPE_STACK_TRACE,
 };
 
        .is_valid_access = kprobe_prog_is_valid_access,
 };
 
-static struct bpf_prog_type_list kprobe_tl = {
+static struct bpf_prog_type_list kprobe_tl __ro_after_init = {
        .ops    = &kprobe_prog_ops,
        .type   = BPF_PROG_TYPE_KPROBE,
 };
        .is_valid_access = tp_prog_is_valid_access,
 };
 
-static struct bpf_prog_type_list tracepoint_tl = {
+static struct bpf_prog_type_list tracepoint_tl __ro_after_init = {
        .ops    = &tracepoint_prog_ops,
        .type   = BPF_PROG_TYPE_TRACEPOINT,
 };
        .convert_ctx_access     = pe_prog_convert_ctx_access,
 };
 
-static struct bpf_prog_type_list perf_event_tl = {
+static struct bpf_prog_type_list perf_event_tl __ro_after_init = {
        .ops    = &perf_event_prog_ops,
        .type   = BPF_PROG_TYPE_PERF_EVENT,
 };
 
        .convert_ctx_access     = sock_filter_convert_ctx_access,
 };
 
-static struct bpf_prog_type_list sk_filter_type __read_mostly = {
+static struct bpf_prog_type_list sk_filter_type __ro_after_init = {
        .ops    = &sk_filter_ops,
        .type   = BPF_PROG_TYPE_SOCKET_FILTER,
 };
 
-static struct bpf_prog_type_list sched_cls_type __read_mostly = {
+static struct bpf_prog_type_list sched_cls_type __ro_after_init = {
        .ops    = &tc_cls_act_ops,
        .type   = BPF_PROG_TYPE_SCHED_CLS,
 };
 
-static struct bpf_prog_type_list sched_act_type __read_mostly = {
+static struct bpf_prog_type_list sched_act_type __ro_after_init = {
        .ops    = &tc_cls_act_ops,
        .type   = BPF_PROG_TYPE_SCHED_ACT,
 };
 
-static struct bpf_prog_type_list xdp_type __read_mostly = {
+static struct bpf_prog_type_list xdp_type __ro_after_init = {
        .ops    = &xdp_ops,
        .type   = BPF_PROG_TYPE_XDP,
 };
 
-static struct bpf_prog_type_list cg_skb_type __read_mostly = {
+static struct bpf_prog_type_list cg_skb_type __ro_after_init = {
        .ops    = &cg_skb_ops,
        .type   = BPF_PROG_TYPE_CGROUP_SKB,
 };
 
-static struct bpf_prog_type_list lwt_in_type __read_mostly = {
+static struct bpf_prog_type_list lwt_in_type __ro_after_init = {
        .ops    = &lwt_inout_ops,
        .type   = BPF_PROG_TYPE_LWT_IN,
 };
 
-static struct bpf_prog_type_list lwt_out_type __read_mostly = {
+static struct bpf_prog_type_list lwt_out_type __ro_after_init = {
        .ops    = &lwt_inout_ops,
        .type   = BPF_PROG_TYPE_LWT_OUT,
 };
 
-static struct bpf_prog_type_list lwt_xmit_type __read_mostly = {
+static struct bpf_prog_type_list lwt_xmit_type __ro_after_init = {
        .ops    = &lwt_xmit_ops,
        .type   = BPF_PROG_TYPE_LWT_XMIT,
 };
 
-static struct bpf_prog_type_list cg_sock_type __read_mostly = {
+static struct bpf_prog_type_list cg_sock_type __ro_after_init = {
        .ops    = &cg_sock_ops,
        .type   = BPF_PROG_TYPE_CGROUP_SOCK
 };