projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
47e34cb
)
bpf: use kvmemdup_bpfptr helper
author
Wang Yufen
<wangyufen@huawei.com>
Tue, 13 Sep 2022 08:40:33 +0000
(16:40 +0800)
committer
Martin KaFai Lau
<martin.lau@kernel.org>
Fri, 16 Sep 2022 18:58:18 +0000
(11:58 -0700)
Use kvmemdup_bpfptr helper instead of open-coding to
simplify the code.
Signed-off-by: Wang Yufen <wangyufen@huawei.com>
Acked-by: Stanislav Fomichev <sdf@google.com>
Link:
https://lore.kernel.org/r/1663058433-14089-1-git-send-email-wangyufen@huawei.com
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
kernel/bpf/syscall.c
patch
|
blob
|
history
diff --git
a/kernel/bpf/syscall.c
b/kernel/bpf/syscall.c
index 69be1c612daa5ea8eb819b64fc10759765ab1c47..dab156f09f8de7d642087dcf0a1ee090400af3a5 100644
(file)
--- a/
kernel/bpf/syscall.c
+++ b/
kernel/bpf/syscall.c
@@
-1417,19
+1417,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);