aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/bpf/syscall.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/bpf/syscall.c')
-rw-r--r--kernel/bpf/syscall.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c
index 78d9dd95e25f..1617407f9ee5 100644
--- a/kernel/bpf/syscall.c
+++ b/kernel/bpf/syscall.c
@@ -727,6 +727,9 @@ static int map_lookup_elem(union bpf_attr *attr)
727 err = bpf_fd_htab_map_lookup_elem(map, key, value); 727 err = bpf_fd_htab_map_lookup_elem(map, key, value);
728 } else if (map->map_type == BPF_MAP_TYPE_REUSEPORT_SOCKARRAY) { 728 } else if (map->map_type == BPF_MAP_TYPE_REUSEPORT_SOCKARRAY) {
729 err = bpf_fd_reuseport_array_lookup_elem(map, key, value); 729 err = bpf_fd_reuseport_array_lookup_elem(map, key, value);
730 } else if (map->map_type == BPF_MAP_TYPE_QUEUE ||
731 map->map_type == BPF_MAP_TYPE_STACK) {
732 err = map->ops->map_peek_elem(map, value);
730 } else { 733 } else {
731 rcu_read_lock(); 734 rcu_read_lock();
732 ptr = map->ops->map_lookup_elem(map, key); 735 ptr = map->ops->map_lookup_elem(map, key);
@@ -857,6 +860,9 @@ static int map_update_elem(union bpf_attr *attr)
857 /* rcu_read_lock() is not needed */ 860 /* rcu_read_lock() is not needed */
858 err = bpf_fd_reuseport_array_update_elem(map, key, value, 861 err = bpf_fd_reuseport_array_update_elem(map, key, value,
859 attr->flags); 862 attr->flags);
863 } else if (map->map_type == BPF_MAP_TYPE_QUEUE ||
864 map->map_type == BPF_MAP_TYPE_STACK) {
865 err = map->ops->map_push_elem(map, value, attr->flags);
860 } else { 866 } else {
861 rcu_read_lock(); 867 rcu_read_lock();
862 err = map->ops->map_update_elem(map, key, value, attr->flags); 868 err = map->ops->map_update_elem(map, key, value, attr->flags);