On Tue, Sep 13, 2022 at 1:29 AM Wang Yufen <wangyufen@xxxxxxxxxx> wrote: > > Use kvmemdup_bpfptr helper instead of open-coding to > simplify the code. > > Signed-off-by: Wang Yufen <wangyufen@xxxxxxxxxx> Acked-by: Stanislav Fomichev <sdf@xxxxxxxxxx> > --- > kernel/bpf/syscall.c | 13 ++++--------- > 1 file changed, 4 insertions(+), 9 deletions(-) > > diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c > index 4fb08c4..f862406 100644 > --- a/kernel/bpf/syscall.c > +++ b/kernel/bpf/syscall.c > @@ -1416,19 +1416,14 @@ static int map_update_elem(union bpf_attr *attr, bpfptr_t uattr) > } > > value_size = bpf_map_value_size(map); > - > - err = -ENOMEM; > - value = kvmalloc(value_size, GFP_USER | __GFP_NOWARN); > - if (!value) > + value = kvmemdup_bpfptr(uvalue, value_size); > + if (IS_ERR(value)) { > + err = PTR_ERR(value); > goto free_key; > - > - err = -EFAULT; > - if (copy_from_bpfptr(value, uvalue, value_size) != 0) > - goto free_value; > + } > > err = bpf_map_update_value(map, f, key, value, attr->flags); > > -free_value: > kvfree(value); > free_key: > kvfree(key); > -- > 1.8.3.1 >