Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

kernel/bpf/bpf_local_storage.c bpf_local_storage_update() -> bpf_selem_free()

Type Parameter Key Value
PARAM_VALUE 0 selem 4096-ptr_max
PARAM_VALUE 0 selem->state.counter 0
PARAM_VALUE 1 reuse_now 1
BUF_SIZE 0 selem (-1)-s32max
BUF_SIZE 0 selem (-1)-s32max
DATA_SOURCE 0 selem r bpf_selem_alloc
NOCHECK_CALL

kernel/bpf/bpf_local_storage.c bpf_local_storage_update() -> bpf_selem_free()

Type Parameter Key Value
PARAM_VALUE 0 selem 4096-ptr_max
PARAM_VALUE 1 reuse_now 1
NOCHECK_CALL

kernel/bpf/bpf_local_storage.c bpf_selem_free_list() -> bpf_selem_free()

Type Parameter Key Value
PARAM_VALUE 0 selem 4096-ptr_max
PARAM_VALUE 1 reuse_now 0
DATA_SOURCE 1 reuse_now $1
NOCHECK_CALL

kernel/bpf/bpf_local_storage.c bpf_selem_unlink_nofail() -> bpf_selem_free()

Type Parameter Key Value
PARAM_VALUE 0 selem 4096-ptr_max
PARAM_VALUE 0 selem->local_storage 0,4096-ptr_max
PARAM_VALUE 0 selem->local_storage->lock.pending 0
PARAM_VALUE 1 reuse_now 1
DATA_SOURCE 0 selem $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

net/core/bpf_sk_storage.c bpf_sk_storage_clone() -> bpf_selem_free()

Type Parameter Key Value
PARAM_VALUE 0 selem 4096-ptr_max
PARAM_VALUE 0 selem->state.counter 0
PARAM_VALUE 1 reuse_now 1
BUF_SIZE 0 selem (-1)-s32max
BUF_SIZE 0 selem (-1)-s32max
DATA_SOURCE 0 selem r bpf_sk_storage_clone_elem
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 bpf_sk_storage_clone() -> bpf_selem_free()

Type Parameter Key Value
PARAM_VALUE 0 selem 4096-ptr_max
PARAM_VALUE 0 selem->state.counter 0
PARAM_VALUE 1 reuse_now 1
BUF_SIZE 0 selem (-1)-s32max
BUF_SIZE 0 selem (-1)-s32max
DATA_SOURCE 0 selem r bpf_sk_storage_clone_elem
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