Documented in 1 files:

Defined in 1 files as a function:

Referenced in 10 files:

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