diff options
Diffstat (limited to 'kernel/bpf/map_in_map.c')
| -rw-r--r-- | kernel/bpf/map_in_map.c | 8 | 
1 files changed, 6 insertions, 2 deletions
diff --git a/kernel/bpf/map_in_map.c b/kernel/bpf/map_in_map.c index 2c5c64c2a53b..cd5eafaba97e 100644 --- a/kernel/bpf/map_in_map.c +++ b/kernel/bpf/map_in_map.c @@ -69,9 +69,13 @@ struct bpf_map *bpf_map_meta_alloc(int inner_map_ufd)  	/* Misc members not needed in bpf_map_meta_equal() check. */  	inner_map_meta->ops = inner_map->ops;  	if (inner_map->ops == &array_map_ops) { +		struct bpf_array *inner_array_meta = +			container_of(inner_map_meta, struct bpf_array, map); +		struct bpf_array *inner_array = container_of(inner_map, struct bpf_array, map); + +		inner_array_meta->index_mask = inner_array->index_mask; +		inner_array_meta->elem_size = inner_array->elem_size;  		inner_map_meta->bypass_spec_v1 = inner_map->bypass_spec_v1; -		container_of(inner_map_meta, struct bpf_array, map)->index_mask = -		     container_of(inner_map, struct bpf_array, map)->index_mask;  	}  	fdput(f);  |