bpf: remove struct bpf_map_type_list
There's no need to have struct bpf_map_type_list since it just contains a list_head, the type, and the ops pointer. Since the types are densely packed and not actually dynamically registered, it's much easier and smaller to have an array of type->ops pointer. Also initialize this array statically to remove code needed to initialize it. In order to save duplicating the list, move it to the types header file added by the previous patch and include it in the same fashion. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Acked-by: Alexei Starovoitov <ast@kernel.org> Acked-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
be9370a7d8
commit
40077e0cf6
@@ -264,7 +264,7 @@ static void stack_map_free(struct bpf_map *map)
|
||||
put_callchain_buffers();
|
||||
}
|
||||
|
||||
static const struct bpf_map_ops stack_map_ops = {
|
||||
const struct bpf_map_ops stack_map_ops = {
|
||||
.map_alloc = stack_map_alloc,
|
||||
.map_free = stack_map_free,
|
||||
.map_get_next_key = stack_map_get_next_key,
|
||||
@@ -272,15 +272,3 @@ static const struct bpf_map_ops stack_map_ops = {
|
||||
.map_update_elem = stack_map_update_elem,
|
||||
.map_delete_elem = stack_map_delete_elem,
|
||||
};
|
||||
|
||||
static struct bpf_map_type_list stack_map_type __ro_after_init = {
|
||||
.ops = &stack_map_ops,
|
||||
.type = BPF_MAP_TYPE_STACK_TRACE,
|
||||
};
|
||||
|
||||
static int __init register_stack_map(void)
|
||||
{
|
||||
bpf_register_map_type(&stack_map_type);
|
||||
return 0;
|
||||
}
|
||||
late_initcall(register_stack_map);
|
||||
|
Reference in New Issue
Block a user