Defined in 1 files as a function:

Referenced in 8 files:

Smatch caller information:

kernel/bpf/local_storage.c bpf_percpu_cgroup_storage_copy() -> copy_map_value()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->map_type 21
PARAM_VALUE 0 map->ops 0-8176211074560897023,8176211074560897025-u64max
PARAM_VALUE 0 map->ops->map_lookup_batch 0,631431616227323904,968212869968297984,3636988385139924992,5229998854994575360,6341067303080312832,6609440822477774848
PARAM_VALUE 0 map->ops->map_release 0,4096-ptr_max
PARAM_VALUE 1 dst 16,4096-ptr_max
BUF_SIZE 0 map s32min-(-2),1-s32max
BUF_SIZE 0 map s32min-(-2),1-s32max
BUF_SIZE 1 dst (-1)-s32max
BUF_SIZE 1 dst (-1)-s32max
CAPPED_DATA 0 map 1
DATA_SOURCE 0 map $0
DATA_SOURCE 1 dst $2
NOCHECK_CALL
UNITS 1 dst unit_byte
LOCK2 rcu_read

kernel/bpf/local_storage.c bpf_percpu_cgroup_storage_update() -> copy_map_value()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->map_type 21
PARAM_VALUE 0 map->ops 0-8176211074560897023,8176211074560897025-u64max
PARAM_VALUE 0 map->ops->map_update_batch 0,7911141981172039680
PARAM_VALUE 2 src 16,4096-ptr_max
BUF_SIZE 0 map s32min-(-2),1-s32max
BUF_SIZE 0 map s32min-(-2),1-s32max
BUF_SIZE 2 src (-1)-s32max
BUF_SIZE 2 src (-1)-s32max
DATA_SOURCE 0 map $0
DATA_SOURCE 2 src $2
NOCHECK_CALL
USER_DATA 2 *src s64min-s64max
USER_PTR 2 src
LOCK2 rcu_read

kernel/bpf/local_storage.c bpf_percpu_cgroup_storage_update() -> copy_map_value()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->map_type 21
PARAM_VALUE 0 map->ops 0-8176211074560897023,8176211074560897025-u64max
PARAM_VALUE 0 map->ops->map_update_batch 0,7911141981172039680
PARAM_VALUE 2 src 16,4096-ptr_max
BUF_SIZE 0 map s32min-(-2),1-s32max
BUF_SIZE 0 map s32min-(-2),1-s32max
BUF_SIZE 2 src (-1)-s32max
BUF_SIZE 2 src (-1)-s32max
DATA_SOURCE 0 map $0
NOCHECK_CALL
USER_PTR 2 src
LOCK2 rcu_read

kernel/bpf/bpf_local_storage.c bpf_selem_alloc() -> copy_map_value()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->objcg 0,4096-ptr_max
PARAM_VALUE 0 map->ops 4096-ptr_max
PARAM_VALUE 2 src 1-u64max
BUF_SIZE 2 src (-1)-s32max
BUF_SIZE 2 src (-1)-s32max
DATA_SOURCE 2 src $2
RX_PATH
NOCHECK_CALL
USER_DATA 2 *src s64min-s64max
USER_PTR 2 src

kernel/bpf/arraymap.c array_map_update_elem() -> copy_map_value()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->ops 4096-ptr_max
PARAM_VALUE 0 map->ops->map_update_batch 0,7911141981172039680
BUF_SIZE 0 map s32min-(-1),1-s32max
BUF_SIZE 0 map s32min-(-1),1-s32max
BUF_SIZE 2 src (-1)-s32max
BUF_SIZE 2 src (-1)-s32max
DATA_SOURCE 0 map $0
DATA_SOURCE 2 src $2
NOCHECK_CALL
USER_DATA 2 *src s64min-s64max
USER_PTR 2 src
HALF_LOCKED2 rcu_read

kernel/bpf/arraymap.c array_map_update_elem() -> copy_map_value()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->ops 4096-ptr_max
PARAM_VALUE 0 map->ops->map_update_batch 0,7911141981172039680
PARAM_VALUE 1 dst 4096-ptr_max
BUF_SIZE 0 map s32min-(-1),1-s32max
BUF_SIZE 0 map s32min-(-1),1-s32max
BUF_SIZE 2 src (-1)-s32max
BUF_SIZE 2 src (-1)-s32max
DATA_SOURCE 0 map $0
DATA_SOURCE 2 src $2
NOCHECK_CALL
USER_DATA 2 *src s64min-s64max
USER_PTR 2 src
HALF_LOCKED2 rcu_read

kernel/bpf/arraymap.c bpf_percpu_array_copy() -> copy_map_value()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->map_type 6
PARAM_VALUE 0 map->ops 0-8176211074560897023,8176211074560897025-u64max
PARAM_VALUE 0 map->ops->map_lookup_batch 0,631431616227323904,968212869968297984,3636988385139924992,5229998854994575360,6341067303080312832,6609440822477774848
PARAM_VALUE 0 map->ops->map_release 0,4096-ptr_max
PARAM_VALUE 1 dst 16,4096-ptr_max
BUF_SIZE 0 map s32min-(-2),1-s32max
BUF_SIZE 0 map s32min-(-2),1-s32max
BUF_SIZE 1 dst (-1)-s32max
BUF_SIZE 1 dst (-1)-s32max
CAPPED_DATA 0 map 1
DATA_SOURCE 0 map $0
DATA_SOURCE 1 dst $2
NOCHECK_CALL
UNITS 1 dst unit_byte
LOCK2 rcu_read

kernel/bpf/arraymap.c bpf_percpu_array_update() -> copy_map_value()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->map_type 6
PARAM_VALUE 0 map->ops 0-8176211074560897023,8176211074560897025-u64max
PARAM_VALUE 0 map->ops->map_update_batch 0,7911141981172039680
PARAM_VALUE 2 src 16,4096-ptr_max
BUF_SIZE 0 map s32min-(-2),1-s32max
BUF_SIZE 0 map s32min-(-2),1-s32max
BUF_SIZE 2 src (-1)-s32max
BUF_SIZE 2 src (-1)-s32max
DATA_SOURCE 0 map $0
DATA_SOURCE 2 src $2
NOCHECK_CALL
USER_DATA 2 *src s64min-s64max
USER_PTR 2 src
LOCK2 rcu_read

kernel/bpf/arraymap.c bpf_percpu_array_update() -> copy_map_value()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->map_type 6
PARAM_VALUE 0 map->ops 0-8176211074560897023,8176211074560897025-u64max
PARAM_VALUE 0 map->ops->map_update_batch 0,7911141981172039680
PARAM_VALUE 2 src 16,4096-ptr_max
BUF_SIZE 0 map s32min-(-2),1-s32max
BUF_SIZE 0 map s32min-(-2),1-s32max
BUF_SIZE 2 src (-1)-s32max
BUF_SIZE 2 src (-1)-s32max
DATA_SOURCE 0 map $0
NOCHECK_CALL
USER_PTR 2 src
LOCK2 rcu_read

net/core/bpf_sk_storage.c bpf_sk_storage_clone_elem() -> copy_map_value()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->map_flags 512-u32max
PARAM_VALUE 0 map->objcg 0,4096-ptr_max
PARAM_VALUE 0 map->ops 4096-ptr_max
PARAM_VALUE 0 map->record 0,4096-u64max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &newsk->sk_lock.slock
HALF_LOCKED2 &sk->sk_lock.slock
HALF_LOCKED2 sk

net/core/bpf_sk_storage.c diag_get() -> copy_map_value()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->record 0,4096-u64max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 *dst s64min-s64max
USER_PTR 1 dst
LOCK2 rcu_read
HALF_LOCKED2 &ilb->lock

kernel/bpf/syscall.c bpf_map_copy_value() -> copy_map_value()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->map_type 0-2,9,11,14-19,24-25,27-29,31-u32max
PARAM_VALUE 0 map->ops 4096-8176211074560897023,8176211074560897025-ptr_max
PARAM_VALUE 0 map->ops->map_lookup_batch 0,631431616227323904,968212869968297984,3636988385139924992,5229998854994575360,6341067303080312832,6609440822477774848
PARAM_VALUE 0 map->ops->map_lookup_elem_sys_only 0,1844650555866931200,2797019561733431296,5735237356065062912,8538665627833008128
PARAM_VALUE 0 map->ops->map_release 0,4096-ptr_max
PARAM_VALUE 1 dst 16,4096-ptr_max
PARAM_VALUE 2 src 1-ptr_max
BUF_SIZE 0 map s32min-(-2),1-s32max
BUF_SIZE 0 map s32min-(-2),1-s32max
BUF_SIZE 1 dst (-1)-s32max
BUF_SIZE 1 dst (-1)-s32max
BUF_SIZE 2 src (-1),8
BUF_SIZE 2 src (-1),8
CAPPED_DATA 0 map 1
DATA_SOURCE 0 map $0
DATA_SOURCE 1 dst $2
NOCHECK_CALL
UNITS 1 dst unit_byte
LOCK2 rcu_read

kernel/bpf/bpf_insn_array.c insn_array_update_elem() -> copy_map_value()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->ops 4096-ptr_max
PARAM_VALUE 0 map->ops->map_update_batch 0,7911141981172039680
PARAM_VALUE 1 dst 6281712837028757504
BUF_SIZE 0 map s32min-(-1),1-s32max
BUF_SIZE 0 map s32min-(-1),1-s32max
BUF_SIZE 1 dst 16
BUF_SIZE 2 src (-1)-s32max
BUF_SIZE 2 src (-1)-s32max
DATA_SOURCE 0 map $0
DATA_SOURCE 2 src $2
NOCHECK_CALL
USER_DATA 2 *src s64min-s64max
USER_PTR 2 src
HALF_LOCKED2 rcu_read

kernel/bpf/hashtab.c __htab_map_lookup_and_delete_batch() -> copy_map_value()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->elem_count 4096-ptr_max
PARAM_VALUE 0 map->map_flags 1-u32max
PARAM_VALUE 0 map->ops 4096-ptr_max
PARAM_VALUE 1 dst 1-u64max
BUF_SIZE 1 dst 5-u32max,u64max
BUF_SIZE 1 dst 5-u32max,u64max
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 flags

kernel/bpf/hashtab.c __htab_map_lookup_and_delete_batch() -> copy_map_value()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->ops 4096-ptr_max
PARAM_VALUE 0 map->ops->map_lookup_and_delete_batch 0,1162106831773184000,5857178533830610944,7056744708359086080,8047599492099870720,8153334481063559168
PARAM_VALUE 0 map->ops->map_lookup_batch 0,631431616227323904,968212869968297984,3636988385139924992,5229998854994575360,6341067303080312832,6609440822477774848
PARAM_VALUE 0 map->record->cnt 0-s32max
PARAM_VALUE 1 dst 1-u64max
PARAM_VALUE 2 src 4096-ptr_max
BUF_SIZE 0 map s32min-(-2),1-s32max
BUF_SIZE 0 map s32min-(-2),1-s32max
BUF_SIZE 1 dst 5-u32max,u64max
BUF_SIZE 1 dst 5-u32max,u64max
BUF_SIZE 2 src (-1),4
BUF_SIZE 2 src (-1),4
CAPPED_DATA 0 map->record->cnt 1
DATA_SOURCE 0 map $0
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 flags

kernel/bpf/hashtab.c __htab_map_lookup_and_delete_elem() -> copy_map_value()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->key_size 0-s32max
PARAM_VALUE 0 map->map_type 1,5,7,9-10,35
PARAM_VALUE 0 map->ops 4096-8176211074560897023,8176211074560897025-ptr_max
PARAM_VALUE 1 dst 16,4096-ptr_max
PARAM_VALUE 2 src 4096-ptr_max
BUF_SIZE 0 map s32min-(-2),1-s32max
BUF_SIZE 0 map s32min-(-2),1-s32max
BUF_SIZE 1 dst 0-s32max
BUF_SIZE 1 dst 0-s32max
CAPPED_DATA 0 map->key_size 1
DATA_SOURCE 0 map $0
DATA_SOURCE 1 dst $2
DATA_SOURCE 2 src r htab_elem_value
BIT_INFO 0 map->map_type 0x0,0x2f
PREEMPT_ADD <- disables preempt
NOCHECK_CALL
LOCK2 flags
LOCK2 rcu_read

kernel/bpf/hashtab.c alloc_htab_elem() -> copy_map_value()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->elem_count 4096-ptr_max
PARAM_VALUE 1 dst 4096-ptr_max
BUF_SIZE 2 src (-1)-s32max
BUF_SIZE 2 src (-1)-s32max
DATA_SOURCE 2 src $2
PREEMPT_ADD
NOCHECK_CALL
USER_DATA 2 *src s64min-s64max
USER_PTR 2 src
LOCK2 flags
HALF_LOCKED2 rcu_read

kernel/bpf/hashtab.c bpf_percpu_hash_copy() -> copy_map_value()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->map_type 5,10
PARAM_VALUE 0 map->ops 0-8176211074560897023,8176211074560897025-u64max
PARAM_VALUE 0 map->ops->map_lookup_batch 0,631431616227323904,968212869968297984,3636988385139924992,5229998854994575360,6341067303080312832,6609440822477774848
PARAM_VALUE 0 map->ops->map_release 0,4096-ptr_max
PARAM_VALUE 1 dst 16,4096-ptr_max
BUF_SIZE 0 map s32min-(-2),1-s32max
BUF_SIZE 0 map s32min-(-2),1-s32max
BUF_SIZE 1 dst (-1)-s32max
BUF_SIZE 1 dst (-1)-s32max
CAPPED_DATA 0 map 1
CAPPED_DATA 0 map->key_size 1
DATA_SOURCE 0 map $0
DATA_SOURCE 1 dst $2
NOCHECK_CALL
UNITS 1 dst unit_byte
LOCK2 rcu_read

kernel/bpf/hashtab.c htab_lru_map_update_elem() -> copy_map_value()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 1 dst 4096-ptr_max
DATA_SOURCE 2 src $2
NOCHECK_CALL

kernel/bpf/hashtab.c pcpu_copy_value() -> copy_map_value()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
BUF_SIZE 2 src (-1)-s32max
BUF_SIZE 2 src (-1)-s32max
DATA_SOURCE 2 src $2
PREEMPT_ADD
NOCHECK_CALL
USER_DATA 2 *src s64min-s64max
USER_PTR 2 src
LOCK2 flags
HALF_LOCKED2 rcu_read

kernel/bpf/hashtab.c pcpu_copy_value() -> copy_map_value()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
BUF_SIZE 2 src (-1)-s32max
BUF_SIZE 2 src (-1)-s32max
DATA_SOURCE 2 src $2
PREEMPT_ADD
NOCHECK_CALL
USER_DATA 2 *src s64min-s64max
USER_PTR 2 src
LOCK2 flags
HALF_LOCKED2 rcu_read

kernel/bpf/hashtab.c pcpu_copy_value() -> copy_map_value()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
BUF_SIZE 2 src (-1)-s32max
BUF_SIZE 2 src (-1)-s32max
PREEMPT_ADD
NOCHECK_CALL
USER_PTR 2 src
LOCK2 flags
HALF_LOCKED2 rcu_read

kernel/bpf/hashtab.c pcpu_init_value() -> copy_map_value()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
BUF_SIZE 2 src (-1)-s32max
BUF_SIZE 2 src (-1)-s32max
DATA_SOURCE 2 src $2
PREEMPT_ADD
NOCHECK_CALL
USER_DATA 2 *src s64min-s64max
USER_PTR 2 src
LOCK2 flags
HALF_LOCKED2 rcu_read

kernel/bpf/hashtab.c rhtab_map_update_elem() -> copy_map_value()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->max_entries 1-u32max
PARAM_VALUE 0 map->ops 4096-ptr_max
PARAM_VALUE 0 map->ops->map_update_batch 0,7911141981172039680
PARAM_VALUE 1 dst 4096-ptr_max
BUF_SIZE 0 map s32min-(-1),1-s32max
BUF_SIZE 0 map s32min-(-1),1-s32max
BUF_SIZE 2 src (-1)-s32max
BUF_SIZE 2 src (-1)-s32max
DATA_SOURCE 0 map $0
DATA_SOURCE 2 src $2
NOCHECK_CALL
USER_DATA 2 *src s64min-s64max
USER_PTR 2 src
LOCK2 rcu_read

kernel/bpf/hashtab.c rhtab_map_update_existing() -> copy_map_value()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->ops 4096-ptr_max
PARAM_VALUE 0 map->ops->map_update_batch 0,7911141981172039680
PARAM_VALUE 1 dst 4096-ptr_max
BUF_SIZE 0 map s32min-(-1),1-s32max
BUF_SIZE 0 map s32min-(-1),1-s32max
BUF_SIZE 2 src (-1)-s32max
BUF_SIZE 2 src (-1)-s32max
DATA_SOURCE 0 map $0
DATA_SOURCE 1 dst r rhtab_elem_value
DATA_SOURCE 2 src $2
NOCHECK_CALL
USER_DATA 2 *src s64min-s64max
USER_PTR 2 src
LOCK2 rcu_read

kernel/bpf/hashtab.c rhtab_read_elem_value() -> copy_map_value()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->ops->map_lookup_and_delete_batch 0,1162106831773184000,5857178533830610944,7056744708359086080,8047599492099870720,8153334481063559168
PARAM_VALUE 0 map->ops->map_lookup_batch 0,631431616227323904,968212869968297984,3636988385139924992,5229998854994575360,6341067303080312832,6609440822477774848
PARAM_VALUE 1 dst 16,4096-u64max
PARAM_VALUE 2 src 4096-ptr_max
BUF_SIZE 0 map s32min-(-1),1-s32max
BUF_SIZE 0 map s32min-(-1),1-s32max
BUF_SIZE 1 dst (-1)-s32max
BUF_SIZE 1 dst (-1)-s32max
DATA_SOURCE 0 map $0
DATA_SOURCE 1 dst $1
DATA_SOURCE 2 src r rhtab_elem_value
NOCHECK_CALL
LOCK2 rcu_read

kernel/bpf/helpers.c copy_map_value_locked() -> copy_map_value()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->ops->map_lookup_and_delete_batch 0,1162106831773184000,5857178533830610944,7056744708359086080,8047599492099870720,8153334481063559168
PARAM_VALUE 0 map->ops->map_lookup_batch 0,631431616227323904,968212869968297984,3636988385139924992,5229998854994575360,6341067303080312832,6609440822477774848
PARAM_VALUE 0 map->ops->map_lookup_elem_sys_only 0,1844650555866931200,2797019561733431296,5735237356065062912,8538665627833008128
PARAM_VALUE 0 map->ops->map_release 0,4096-ptr_max
PARAM_VALUE 0 map->ops->map_update_batch 0,7911141981172039680
PARAM_VALUE 0 map->record 4096-ptr_max
BUF_SIZE 0 map s32min-(-1),1-s32max
BUF_SIZE 0 map s32min-(-1),1-s32max
BUF_SIZE 1 dst (-1)-s32max
BUF_SIZE 1 dst (-1)-s32max
BUF_SIZE 2 src (-1)-s32max
BUF_SIZE 2 src (-1)-s32max
CAPPED_DATA 0 map 1
DATA_SOURCE 0 map $0
DATA_SOURCE 1 dst $1
DATA_SOURCE 2 src $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 *dst s64min-s64max
USER_DATA 2 *src s64min-s64max
UNITS 1 dst unit_byte
USER_PTR 1 dst
USER_PTR 2 src
LOCK2 flags
HALF_LOCKED2 rcu_read