On Wed, Jul 24, 2019 at 10:10 AM Brian Vazquez <brianvv@xxxxxxxxxx> wrote: > > Move reusable code from map_lookup_elem to helper functions to avoid code > duplication in kernel/bpf/syscall.c > > Suggested-by: Stanislav Fomichev <sdf@xxxxxxxxxx> > Signed-off-by: Brian Vazquez <brianvv@xxxxxxxxxx> Acked-by: Song Liu <songliubraving@xxxxxx> Some very minor nits though. > --- > kernel/bpf/syscall.c | 134 +++++++++++++++++++++++-------------------- > 1 file changed, 73 insertions(+), 61 deletions(-) > > diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c > index 5d141f16f6fa9..86cdc2f7bb56e 100644 > --- a/kernel/bpf/syscall.c > +++ b/kernel/bpf/syscall.c > @@ -126,6 +126,76 @@ static struct bpf_map *find_and_alloc_map(union bpf_attr *attr) > return map; > } > > +static u32 bpf_map_value_size(struct bpf_map *map) > +{ > + if (map->map_type == BPF_MAP_TYPE_PERCPU_HASH || > + map->map_type == BPF_MAP_TYPE_LRU_PERCPU_HASH || > + map->map_type == BPF_MAP_TYPE_PERCPU_ARRAY || > + map->map_type == BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE) > + return round_up(map->value_size, 8) * num_possible_cpus(); > + else if (IS_FD_MAP(map)) > + return sizeof(u32); > + else > + return map->value_size; ^ extra space after return > +} > + > +static int bpf_map_copy_value(struct bpf_map *map, void *key, void *value, > + __u64 flags) > +{ > + void *ptr; > + int err; > + > + if (bpf_map_is_dev_bound(map)) > + return bpf_map_offload_lookup_elem(map, key, value); ^ another extra space after return, did replace? :-) Thanks, Song