Documented in 1 files:
Defined in 1 files as a function:
Referenced in 10 files:
- drivers/net/ovpn/peer.c
- include/linux/rculist_nulls.h, line 151
- include/net/sock.h, line 922
- io_uring/io-wq.c
- kernel/bpf/hashtab.c
- kernel/ucount.c
- mm/vmscan.c, line 4414
- net/ipv4/udp.c
- net/mptcp/token.c, line 129
- net/netfilter/nf_conntrack_core.c
Smatch caller information:
kernel/ucount.c alloc_ucounts() -> hlist_nulls_add_head_rcu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | n | 4096-ptr_max |
| PARAM_VALUE | 1 | h | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | global &ucounts_lock | ||
| LOCK2 | irq |
kernel/ucount.c hlist_add_ucounts() -> hlist_nulls_add_head_rcu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | n | 4761210440441032704 |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | global &ucounts_lock | ||
| LOCK2 | irq |
io_uring/io-wq.c __io_worker_idle() -> hlist_nulls_add_head_rcu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | n | 4096-ptr_max |
| PARAM_VALUE | 1 | h | 4096-ptr_max |
| PREEMPT_ADD | |||
| NOCHECK_CALL | |||
| LOCK2 | &acct->workers_lock | ||
| TYPE_LOCK | (struct io_wq_acct)->workers_lock |
io_uring/io-wq.c io_init_new_worker() -> hlist_nulls_add_head_rcu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | n | 4096-ptr_max |
| PARAM_VALUE | 1 | h | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &acct->workers_lock | ||
| TYPE_LOCK | (struct io_wq_acct)->workers_lock |
net/ipv6/inet6_hashtables.c __sk_nulls_add_node_rcu() -> hlist_nulls_add_head_rcu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | n | 4096-ptr_max |
| PARAM_VALUE | 1 | h | 4096-ptr_max |
| DATA_SOURCE | 1 | h | $1 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | bh | ||
| LOCK2 | lock | ||
| HALF_LOCKED2 | &head->lock | ||
| HALF_LOCKED2 | sk |
mm/vmscan.c hlist_nulls_add_tail_rcu() -> hlist_nulls_add_head_rcu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | n | 4096-ptr_max |
| PARAM_VALUE | 1 | h | 4096-ptr_max |
| BUF_SIZE | 1 | h | 64 |
| BUF_SIZE | 1 | h | 64 |
| DATA_SOURCE | 0 | n | $0 |
| DATA_SOURCE | 1 | h | $1 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &pgdat->memcg_lru.lock | ||
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | global &cgroup_mutex | ||
| HALF_LOCKED2 | irq | ||
| TYPE_LOCK | (struct lru_gen_memcg)->lock |
mm/vmscan.c lru_gen_rotate_memcg() -> hlist_nulls_add_head_rcu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | n | 4096-ptr_max |
| PARAM_VALUE | 1 | h | 4096-ptr_max |
| BUF_SIZE | 1 | h | 64 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &pgdat->memcg_lru.lock | ||
| LOCK2 | flags | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | global &cgroup_mutex | ||
| HALF_LOCKED2 | rcu_read | ||
| TYPE_LOCK | (struct lru_gen_memcg)->lock |
drivers/net/ovpn/peer.c __ovpn_peer_hash_transp_addr() -> hlist_nulls_add_head_rcu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | n | 4096-ptr_max |
| PARAM_VALUE | 0 | n->pprev | 0 |
| PARAM_VALUE | 1 | h | 4096-ptr_max |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &peer->lock | ||
| LOCK2 | bh | ||
| HALF_LOCKED2 | &ovpn->lock | ||
| HALF_LOCKED2 | &peer->ovpn->lock | ||
| HALF_LOCKED2 | rcu_read | ||
| TYPE_LOCK | (struct ovpn_peer)->lock | ||
| TYPE_LOCK | (struct ovpn_priv)->lock |
drivers/net/ovpn/peer.c ovpn_peer_add_mp() -> hlist_nulls_add_head_rcu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | n | 4096-ptr_max |
| PARAM_VALUE | 1 | h | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &ovpn->dev->lock | ||
| LOCK2 | &ovpn->lock | ||
| LOCK2 | bh | ||
| 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 &rtnl_mutex | ||
| HALF_LOCKED2 | global &rx_queue_mutex | ||
| HALF_LOCKED2 | rcu_read | ||
| TYPE_LOCK | (struct net_device)->lock | ||
| TYPE_LOCK | (struct ovpn_priv)->lock |
drivers/net/ovpn/peer.c ovpn_peer_hash_vpn_ip() -> hlist_nulls_add_head_rcu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | n | 4096-ptr_max |
| PARAM_VALUE | 0 | n->pprev | 0 |
| PARAM_VALUE | 1 | h | 4096-ptr_max |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &ovpn->lock | ||
| LOCK2 | bh | ||
| 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 &rtnl_mutex | ||
| HALF_LOCKED2 | global &rx_queue_mutex | ||
| TYPE_LOCK | (struct ovpn_priv)->lock |
drivers/net/ovpn/peer.c ovpn_peer_hash_vpn_ip() -> hlist_nulls_add_head_rcu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | n | 4096-ptr_max |
| PARAM_VALUE | 0 | n->pprev | 0 |
| PARAM_VALUE | 1 | h | 4096-ptr_max |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &ovpn->lock | ||
| LOCK2 | bh | ||
| HALF_LOCKED2 | &dev->lock | ||
| HALF_LOCKED2 | &devlink->lock | ||
| HALF_LOCKED2 | &net->xfrm.xfrm_cfg_mutex | ||
| HALF_LOCKED2 | &ovpn->dev->lock | ||
| 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 &rtnl_mutex | ||
| HALF_LOCKED2 | global &rx_queue_mutex | ||
| TYPE_LOCK | (struct ovpn_priv)->lock |
net/ipv4/inet_hashtables.c __sk_nulls_add_node_rcu() -> hlist_nulls_add_head_rcu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | n | 4096-ptr_max |
| PARAM_VALUE | 1 | h | 4096-ptr_max |
| BUF_SIZE | 1 | h | (-1),8 |
| BUF_SIZE | 1 | h | (-1),8 |
| DATA_SOURCE | 1 | h | $1 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &ilb2->lock | ||
| HALF_LOCKED2 | bh | ||
| HALF_LOCKED2 | lock | ||
| HALF_LOCKED2 | sk |
net/ipv4/inet_hashtables.c hlist_nulls_add_tail_rcu() -> hlist_nulls_add_head_rcu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | n | 4096-ptr_max |
| PARAM_VALUE | 1 | h | 4096-ptr_max |
| DATA_SOURCE | 0 | n | $0 |
| DATA_SOURCE | 1 | h | $1 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &ilb2->lock | ||
| HALF_LOCKED2 | &sk->sk_lock.slock | ||
| HALF_LOCKED2 | sk | ||
| TYPE_LOCK | (struct inet_listen_hashbucket)->lock |
net/llc/llc_conn.c __sk_nulls_add_node_rcu() -> hlist_nulls_add_head_rcu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | n | 4096-ptr_max |
| PARAM_VALUE | 1 | h | 4096-ptr_max |
| DATA_SOURCE | 1 | h | $1 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &sap->sk_lock | ||
| LOCK2 | bh | ||
| HALF_LOCKED2 | &sk->sk_lock.slock | ||
| HALF_LOCKED2 | sk | ||
| TYPE_LOCK | (struct llc_sap)->sk_lock |
net/mptcp/token.c __sk_nulls_add_node_rcu() -> hlist_nulls_add_head_rcu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | n | 4096-ptr_max |
| PARAM_VALUE | 1 | h | 4096-ptr_max |
| DATA_SOURCE | 1 | h | $1 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &bucket->lock | ||
| LOCK2 | bh | ||
| TYPE_LOCK | (struct token_bucket)->lock |
net/mptcp/token.c mptcp_token_new_request() -> hlist_nulls_add_head_rcu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | n | 4096-ptr_max |
| PARAM_VALUE | 1 | h | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &bucket->lock | ||
| LOCK2 | bh | ||
| TYPE_LOCK | (struct token_bucket)->lock |
kernel/bpf/hashtab.c __htab_lru_percpu_map_update_elem() -> hlist_nulls_add_head_rcu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | n | 0,4096-ptr_max |
| PARAM_VALUE | 1 | h | 4096-ptr_max |
| BUF_SIZE | 1 | h | 8 |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | flags | ||
| HALF_LOCKED2 | rcu_read |
kernel/bpf/hashtab.c htab_lru_map_update_elem() -> hlist_nulls_add_head_rcu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | n | 4096-ptr_max |
| PARAM_VALUE | 1 | h | 4096-ptr_max |
| BUF_SIZE | 1 | h | 8 |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | flags |
kernel/bpf/hashtab.c htab_map_update_elem() -> hlist_nulls_add_head_rcu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | n | 4096-ptr_max |
| PARAM_VALUE | 1 | h | 4096-ptr_max |
| BUF_SIZE | 1 | h | 8 |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | flags | ||
| HALF_LOCKED2 | rcu_read |
kernel/bpf/hashtab.c htab_map_update_elem_in_place() -> hlist_nulls_add_head_rcu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | n | 4096-ptr_max |
| PARAM_VALUE | 1 | h | 4096-ptr_max |
| BUF_SIZE | 1 | h | 8 |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | flags | ||
| HALF_LOCKED2 | rcu_read |
net/netfilter/nf_conntrack_core.c __nf_conntrack_hash_insert() -> hlist_nulls_add_head_rcu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | bh | ||
| HALF_LOCKED2 | rcu_read |
net/netfilter/nf_conntrack_core.c __nf_conntrack_hash_insert() -> hlist_nulls_add_head_rcu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | bh | ||
| HALF_LOCKED2 | rcu_read |
net/netfilter/nf_conntrack_core.c nf_conntrack_hash_resize() -> hlist_nulls_add_head_rcu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | h | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | bh | ||
| LOCK2 | global &nf_conntrack_locks_all_lock | ||
| LOCK2 | global &nf_conntrack_mutex |
net/netfilter/nf_conntrack_core.c nf_ct_add_to_ecache_list() -> hlist_nulls_add_head_rcu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | h | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &cnet->ecache.dying_lock | ||
| LOCK2 | bh | ||
| HALF_LOCKED2 | &s->lock | ||
| HALF_LOCKED2 | global &nf_conntrack_mutex | ||
| HALF_LOCKED2 | rcu_read | ||
| TYPE_LOCK | (struct nf_conntrack_net_ecache)->dying_lock |
net/netfilter/nf_conntrack_core.c nf_ct_resolve_clash_harder() -> hlist_nulls_add_head_rcu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | bh | ||
| HALF_LOCKED2 | rcu_read |