Defined in 1 files as a function:

Referenced in 4 files:

Smatch caller information:

drivers/net/wireguard/send.c wg_packet_send_queued_handshake_initiation() -> wg_peer_get()

Type Parameter Key Value
PARAM_VALUE 0 peer 4096-ptr_max
PARAM_VALUE 0 peer->handshake.lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 peer->handshake.lock.first_waiter->type 0-1
PARAM_VALUE 0 peer->is_dead 0
PARAM_VALUE 0 peer->timer_handshake_attempts 0-19
CAPPED_DATA 0 peer 1
DATA_SOURCE 0 peer $0
FUZZY_MAX 0 peer->timer_handshake_attempts 0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 0 peer->handshake->preshared_key 0-255
USER_DATA 0 peer->handshake->remote_static 0-255
NO_OVERFLOW_SIMPLE 0 peer->staged_packet_queue.next->prev->truesize
NO_OVERFLOW_SIMPLE 0 peer->staged_packet_queue.prev->end
NO_OVERFLOW_SIMPLE 0 peer->staged_packet_queue.prev->len
NO_OVERFLOW_SIMPLE 0 peer->staged_packet_queue.prev->tail
NO_OVERFLOW_SIMPLE 0 peer->staged_packet_queue.prev->truesize
LOCK2 rcu_read

drivers/net/wireguard/send.c wg_packet_send_staged_packets() -> wg_peer_get()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &wg->device_update_lock
HALF_LOCKED2 &wg->static_identity.lock
HALF_LOCKED2 global &rtnl_mutex

drivers/net/wireguard/send.c wg_queue_enqueue_per_peer_tx() -> wg_peer_get()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 rcu_read

drivers/net/wireguard/receive.c wg_queue_enqueue_per_peer_rx() -> wg_peer_get()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 rcu_read

drivers/net/wireguard/netlink.c set_peer() -> wg_peer_get()

Type Parameter Key Value
PARAM_VALUE 0 peer 4096-ptr_max
PARAM_VALUE 0 peer->allowedips_list.next 4096-ptr_max
PARAM_VALUE 0 peer->allowedips_list.next->next 4096-ptr_max
PARAM_VALUE 0 peer->allowedips_list.prev 4096-ptr_max
PARAM_VALUE 0 peer->allowedips_list.prev->next 4096-ptr_max
PARAM_VALUE 0 peer->allowedips_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 peer->device 4096-ptr_max
PARAM_VALUE 0 peer->device->device_update_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 peer->device->device_update_lock.wait_lock.owner (-1)
PARAM_VALUE 0 peer->device->device_update_lock.wait_lock.owner_cpu u32max
PARAM_VALUE 0 peer->device->device_update_lock.wait_lock.raw_lock.val.counter 0-s32max
PARAM_VALUE 0 peer->device->num_peers 0-1048575
PARAM_VALUE 0 peer->device->peer_hashtable 4096-ptr_max
PARAM_VALUE 0 peer->device->static_identity.lock.wait_lock.owner (-1)
PARAM_VALUE 0 peer->device->static_identity.lock.wait_lock.owner_cpu u32max
PARAM_VALUE 0 peer->endpoint_cache.cache 4096-ptr_max
PARAM_VALUE 0 peer->endpoint_lock.magic 3736018669
PARAM_VALUE 0 peer->endpoint_lock.owner (-1)
PARAM_VALUE 0 peer->endpoint_lock.owner_cpu u32max
PARAM_VALUE 0 peer->handshake->preshared_key 0-255
PARAM_VALUE 0 peer->handshake->remote_static 0-255
PARAM_VALUE 0 peer->handshake.entry.index 0
PARAM_VALUE 0 peer->handshake.entry.index_hash.next 0
PARAM_VALUE 0 peer->handshake.entry.index_hash.pprev 0
PARAM_VALUE 0 peer->handshake.entry.peer 4096-ptr_max
PARAM_VALUE 0 peer->handshake.entry.peer->device 4096-ptr_max
PARAM_VALUE 0 peer->handshake.entry.peer->endpoint_cache.cache 4096-ptr_max
PARAM_VALUE 0 peer->handshake.entry.type 1
PARAM_VALUE 0 peer->handshake.lock.count.counter 0
PARAM_VALUE 0 peer->handshake.lock.dep_map->name 0-255
PARAM_VALUE 0 peer->handshake.lock.first_waiter 0
PARAM_VALUE 0 peer->handshake.lock.first_waiter->handoff_set 1
PARAM_VALUE 0 peer->handshake.lock.first_waiter->list.next 2624917664208203776
PARAM_VALUE 0 peer->handshake.lock.first_waiter->list.prev 2624917664208203776
PARAM_VALUE 0 peer->handshake.lock.first_waiter->type 0-1
PARAM_VALUE 0 peer->handshake.lock.magic 4096-ptr_max
PARAM_VALUE 0 peer->handshake.lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 peer->handshake.lock.owner.counter 0
PARAM_VALUE 0 peer->handshake.preshared_key 0
PARAM_VALUE 0 peer->handshake.remote_index 0
PARAM_VALUE 0 peer->handshake.remote_static 0
PARAM_VALUE 0 peer->handshake.state 0
PARAM_VALUE 0 peer->handshake.static_identity 4096-ptr_max
PARAM_VALUE 0 peer->latest_cookie.birthdate 0
PARAM_VALUE 0 peer->latest_cookie.have_sent_mac1 0
PARAM_VALUE 0 peer->latest_cookie.is_valid 0
PARAM_VALUE 0 peer->latest_cookie.lock.count.counter 0
PARAM_VALUE 0 peer->latest_cookie.lock.dep_map->name 0-255
PARAM_VALUE 0 peer->latest_cookie.lock.first_waiter 0
PARAM_VALUE 0 peer->latest_cookie.lock.magic 4096-ptr_max
PARAM_VALUE 0 peer->latest_cookie.lock.owner.counter 0
PARAM_VALUE 0 peer->napi.dev 4096-ptr_max
PARAM_VALUE 0 peer->napi.dev->lock.dep_map->name 0-255
PARAM_VALUE 0 peer->napi.dev->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 peer->napi.dev->lock.first_waiter->list.prev->prev 5159360019465732096
PARAM_VALUE 0 peer->napi.dev->lock.first_waiter->task->blocked_lock.dep_map->name 0-255
PARAM_VALUE 0 peer->napi.dev->lock.first_waiter->task->blocked_lock.owner (-1)
PARAM_VALUE 0 peer->napi.dev->lock.first_waiter->task->blocked_lock.owner_cpu 4294967295
PARAM_VALUE 0 peer->napi.dev->lock.first_waiter->task->blocked_lock.raw_lock.val.counter s32min-s32max
PARAM_VALUE 0 peer->napi.dev->lock.first_waiter->task->usage.refs.counter s32min-s32max
PARAM_VALUE 0 peer->napi.dev_list.next 4096-ptr_max
PARAM_VALUE 0 peer->napi.dev_list.prev 4096-ptr_max
PARAM_VALUE 0 peer->napi.gro.bitmask 0
PARAM_VALUE 0 peer->napi.gro.rx_count 0
PARAM_VALUE 0 peer->napi.gro.rx_list.next 4096-ptr_max
PARAM_VALUE 0 peer->napi.gro.rx_list.next->next 4096-ptr_max
PARAM_VALUE 0 peer->napi.gro.rx_list.prev 4096-ptr_max
PARAM_VALUE 0 peer->napi.gro.rx_list.prev->next 4096-ptr_max
PARAM_VALUE 0 peer->napi.gro.rx_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 peer->napi.irq (-1)
PARAM_VALUE 0 peer->napi.list_owner (-1)
PARAM_VALUE 0 peer->napi.napi_hash_node.pprev 4096-ptr_max
PARAM_VALUE 0 peer->napi.poll_list.next 4096-ptr_max
PARAM_VALUE 0 peer->napi.poll_list.next->next 4096-ptr_max
PARAM_VALUE 0 peer->napi.poll_list.prev 4096-ptr_max
PARAM_VALUE 0 peer->napi.poll_list.prev->next 4096-ptr_max
PARAM_VALUE 0 peer->napi.poll_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 peer->napi.poll_owner (-1)
PARAM_VALUE 0 peer->napi.skb 0
PARAM_VALUE 0 peer->napi.thread 0,4096-ptr_max
PARAM_VALUE 0 peer->napi.thread->blocked_on 0
PARAM_VALUE 0 peer->napi.thread->cpus_ptr 4096-ptr_max
PARAM_VALUE 0 peer->napi.thread->migration_disabled 0-1
PARAM_VALUE 0 peer->napi.thread->on_rq 0-1,3-255
PARAM_VALUE 0 peer->napi.thread->saved_state 0
PARAM_VALUE 0 peer->napi.thread->wake_cpu 0-s32max
PARAM_VALUE 0 peer->napi.timer._softexpires 0
PARAM_VALUE 0 peer->napi.timer.base 4096-ptr_max
PARAM_VALUE 0 peer->napi.timer.function 1-u64max
PARAM_VALUE 0 peer->napi.timer.is_hard 0
PARAM_VALUE 0 peer->napi.timer.is_lazy 0
PARAM_VALUE 0 peer->napi.timer.is_queued 0
PARAM_VALUE 0 peer->napi.timer.is_rel 0
PARAM_VALUE 0 peer->napi.timer.is_soft 0
PARAM_VALUE 0 peer->napi.timer.node.expires 0
PARAM_VALUE 0 peer->napi.timer.node.node.next 0
PARAM_VALUE 0 peer->napi.timer.node.node.node.rb_left 0
PARAM_VALUE 0 peer->napi.timer.node.node.prev 0
PARAM_VALUE 0 peer->peer_list.next 4096-ptr_max
PARAM_VALUE 0 peer->pubkey_hash.pprev 4096-ptr_max
PARAM_VALUE 0 peer->refcount.refcount.refs.counter 1
PARAM_VALUE 0 peer->rx_queue.count.counter 0
PARAM_VALUE 0 peer->rx_queue.head 4096-ptr_max
PARAM_VALUE 0 peer->rx_queue.peeked 0
PARAM_VALUE 0 peer->rx_queue.tail 4096-ptr_max
PARAM_VALUE 0 peer->sent_lastminute_handshake 0
PARAM_VALUE 0 peer->serial_work_cpu 0-8193
PARAM_VALUE 0 peer->staged_packet_queue.next 4096-ptr_max
PARAM_VALUE 0 peer->staged_packet_queue.prev 4096-ptr_max
PARAM_VALUE 0 peer->staged_packet_queue.qlen 0
PARAM_VALUE 0 peer->timer_handshake_attempts 0
PARAM_VALUE 0 peer->timer_need_another_keepalive 0
PARAM_VALUE 0 peer->timer_new_handshake.entry.pprev 0
PARAM_VALUE 0 peer->timer_new_handshake.flags 0-4194302
PARAM_VALUE 0 peer->timer_new_handshake.lockdep_map->name 0-255
PARAM_VALUE 0 peer->timer_persistent_keepalive.flags 0-4194302
PARAM_VALUE 0 peer->timer_persistent_keepalive.lockdep_map->name 0-255
PARAM_VALUE 0 peer->timer_retransmit_handshake.flags 0-4194302
PARAM_VALUE 0 peer->timer_retransmit_handshake.lockdep_map->name 0-255
PARAM_VALUE 0 peer->timer_send_keepalive.entry.pprev 0
PARAM_VALUE 0 peer->timer_send_keepalive.flags 0-4194302
PARAM_VALUE 0 peer->timer_send_keepalive.lockdep_map->name 0-255
PARAM_VALUE 0 peer->timer_zero_key_material.flags 0-4194302
PARAM_VALUE 0 peer->timer_zero_key_material.lockdep_map->name 0-255
PARAM_VALUE 0 peer->tx_queue.count.counter 0
PARAM_VALUE 0 peer->tx_queue.head 4096-ptr_max
PARAM_VALUE 0 peer->tx_queue.peeked 0
PARAM_VALUE 0 peer->tx_queue.tail 4096-ptr_max
PARAM_VALUE 0 *peer->handshake.precomputed_static_static 0-255
PARAM_VALUE 0 *peer->latest_cookie.cookie_decryption_key 0-255
PARAM_VALUE 0 *peer->latest_cookie.message_mac1_key 0-255
DATA_SOURCE 0 peer r wg_peer_create
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 0 peer->handshake->preshared_key 0-255
USER_DATA 0 peer->handshake->remote_static 0-255
LOCK2 &wg->device_update_lock
LOCK2 global &rtnl_mutex
HALF_LOCKED2 &dev->lock
HALF_LOCKED2 &devlink->lock
HALF_LOCKED2 &net->xfrm.xfrm_cfg_mutex
HALF_LOCKED2 global &audit_cmd_mutex.lock
HALF_LOCKED2 global &cb_lock
HALF_LOCKED2 global &crypto_cfg_mutex
HALF_LOCKED2 global &dpll_lock
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &net_dm_mutex
HALF_LOCKED2 global &rx_queue_mutex
TYPE_LOCK (struct wg_device)->device_update_lock

drivers/net/wireguard/netlink.c wg_get_device_dumpit() -> wg_peer_get()

Type Parameter Key Value
PARAM_VALUE 0 peer 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &wg->device_update_lock
LOCK2 global &rtnl_mutex
HALF_LOCKED2 &nlk->nl_cb_mutex
TYPE_LOCK (struct netlink_sock)->nl_cb_mutex
TYPE_LOCK (struct wg_device)->device_update_lock

drivers/net/wireguard/timers.c wg_expired_zero_key_material() -> wg_peer_get()

Type Parameter Key Value
PARAM_VALUE 0 peer 4096-ptr_max
PARAM_VALUE 0 peer->is_dead 0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read