summaryrefslogtreecommitdiffstats
path: root/kernel/bpf/helpers.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/bpf/helpers.c')
-rw-r--r--kernel/bpf/helpers.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/kernel/bpf/helpers.c b/kernel/bpf/helpers.c
index fbe544761628..a411fc17d265 100644
--- a/kernel/bpf/helpers.c
+++ b/kernel/bpf/helpers.c
@@ -301,6 +301,22 @@ const struct bpf_func_proto bpf_spin_unlock_proto = {
301 .arg1_type = ARG_PTR_TO_SPIN_LOCK, 301 .arg1_type = ARG_PTR_TO_SPIN_LOCK,
302}; 302};
303 303
304void copy_map_value_locked(struct bpf_map *map, void *dst, void *src,
305 bool lock_src)
306{
307 struct bpf_spin_lock *lock;
308
309 if (lock_src)
310 lock = src + map->spin_lock_off;
311 else
312 lock = dst + map->spin_lock_off;
313 preempt_disable();
314 ____bpf_spin_lock(lock);
315 copy_map_value(map, dst, src);
316 ____bpf_spin_unlock(lock);
317 preempt_enable();
318}
319
304#ifdef CONFIG_CGROUPS 320#ifdef CONFIG_CGROUPS
305BPF_CALL_0(bpf_get_current_cgroup_id) 321BPF_CALL_0(bpf_get_current_cgroup_id)
306{ 322{