Defined in 2 files as a prototype:

Defined in 2 files as a function:

Referenced in 16 files:

Smatch caller information:

drivers/infiniband/ulp/ipoib/ipoib_multicast.c ipoib_mcast_restart_task() -> rb_replace_node()

Type Parameter Key Value
PARAM_VALUE 0 victim 80,4096-ptr_max
PARAM_VALUE 1 new 4096-ptr_max
PARAM_VALUE 2 root 4096-ptr_max
PREEMPT_ADD <- disables preempt
NOCHECK_CALL
LOCK2 &dev->addr_list_lock
LOCK2 &priv->lock
LOCK2 bh
LOCK2 irq
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct ipoib_dev_priv)->lock
TYPE_LOCK (struct net_device)->addr_list_lock

net/ipv4/tcp_input.c tcp_data_queue_ofo() -> rb_replace_node()

Type Parameter Key Value
PARAM_VALUE 0 victim 4096-ptr_max
PARAM_VALUE 1 new 4096-ptr_max
PARAM_VALUE 2 root 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &sk->sk_lock.slock
HALF_LOCKED2 sk

mm/ksm.c alloc_stable_node_chain() -> rb_replace_node()

Type Parameter Key Value
PARAM_VALUE 0 victim 4096-ptr_max
PARAM_VALUE 1 new 4096-ptr_max
DATA_SOURCE 2 root $1
NOCHECK_CALL
LOCK2 global &ksm_thread_mutex

mm/ksm.c stable_node_dup() -> rb_replace_node()

Type Parameter Key Value
PARAM_VALUE 0 victim 4096-ptr_max
PARAM_VALUE 1 new 4096-ptr_max
DATA_SOURCE 2 root $2
NOCHECK_CALL
LOCK2 global &ksm_thread_mutex

mm/ksm.c stable_tree_search() -> rb_replace_node()

Type Parameter Key Value
PARAM_VALUE 0 victim 4096-ptr_max
PARAM_VALUE 1 new 4096-ptr_max
NOCHECK_CALL
LOCK2 global &ksm_thread_mutex

fs/jffs2/readinode.c jffs2_add_tn_to_tree() -> rb_replace_node()

Type Parameter Key Value
PARAM_VALUE 0 victim 4096-ptr_max
PARAM_VALUE 1 new 4096-ptr_max
PARAM_VALUE 2 root 1212094306357284864
PARAM_VALUE 2 root->rb_node 4096-ptr_max
MEM_ZERO 2 root
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 victim unit_byte
LOCK2 &f->sem
HALF_LOCKED2 &c->alloc_sem
HALF_LOCKED2 &c->wbuf_sem
TYPE_LOCK (struct jffs2_inode_info)->sem

fs/jffs2/nodelist.c jffs2_add_frag_to_fragtree() -> rb_replace_node()

Type Parameter Key Value
PARAM_VALUE 0 victim 4096-ptr_max
PARAM_VALUE 1 new 4096-ptr_max
PARAM_VALUE 2 root 4096-ptr_max
DATA_SOURCE 2 root $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &f->sem
HALF_LOCKED2 &c->alloc_sem
HALF_LOCKED2 &c->wbuf_sem
TYPE_LOCK (struct jffs2_inode_info)->sem

net/mptcp/protocol.c mptcp_data_queue_ofo() -> rb_replace_node()

Type Parameter Key Value
PARAM_VALUE 0 victim 4096-ptr_max
PARAM_VALUE 1 new 4096-ptr_max
PARAM_VALUE 2 root 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &sk->sk_lock.slock
HALF_LOCKED2 bh

security/apparmor/label.c __label_replace() -> rb_replace_node()

Type Parameter Key Value
PARAM_VALUE 0 victim 4096-ptr_max
PARAM_VALUE 1 new 4096-ptr_max
PARAM_VALUE 2 root 4096-ptr_max
NOCHECK_CALL
LOCK2 flags
HALF_LOCKED2 &ons->labels.lock

security/landlock/ruleset.c landlock_store_rule() -> rb_replace_node()

Type Parameter Key Value
PARAM_VALUE 0 victim 4096-ptr_max
PARAM_VALUE 1 new 4096-ptr_max
PARAM_VALUE 2 root 0-ptr_max
BUF_SIZE 2 root 8
DATA_SOURCE 2 root r landlock_get_rule_root
NOCHECK_CALL

drivers/infiniband/hw/mlx4/cm.c sl_id_map_add() -> rb_replace_node()

Type Parameter Key Value
PARAM_VALUE 0 victim 4096-ptr_max
PARAM_VALUE 1 new 4096-ptr_max
PARAM_VALUE 2 root 4096-ptr_max
BUF_SIZE 2 root 8
PREEMPT_ADD
NOCHECK_CALL
LOCK2 &pool->lock
LOCK2 &sriov->id_map_lock
TYPE_LOCK (struct mlx4_ib_sriov)->id_map_lock

fs/nfs/dir.c nfs_access_add_rbtree() -> rb_replace_node()

Type Parameter Key Value
PARAM_VALUE 0 victim 1-u64max
PARAM_VALUE 1 new 4096-ptr_max
PARAM_VALUE 2 root 4096-ptr_max
BUF_SIZE 2 root 8
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &inode->i_lock
HALF_LOCKED2 &inode->i_rwsem
TYPE_LOCK (struct inode)->i_lock

fs/btrfs/extent_map.c replace_extent_mapping() -> rb_replace_node()

Type Parameter Key Value
PARAM_VALUE 0 victim 4096-ptr_max
PARAM_VALUE 1 new 4096-ptr_max
PARAM_VALUE 2 root 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &em_tree->lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct extent_map_tree)->lock

net/ipv4/inet_fragment.c inet_frag_pull_head() -> rb_replace_node()

Type Parameter Key Value
PARAM_VALUE 0 victim 4096-ptr_max
PARAM_VALUE 1 new 1-u64max
PARAM_VALUE 2 root 4096-ptr_max
PARAM_VALUE 2 root->rb_node 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &fq->q.lock
HALF_LOCKED2 &qp->q.lock
TYPE_LOCK (struct inet_frag_queue)->lock

net/ipv4/inet_fragment.c inet_frag_reasm_prepare() -> rb_replace_node()

Type Parameter Key Value
PARAM_VALUE 0 victim 4096-ptr_max
PARAM_VALUE 0 victim->__rb_parent_color 1
PARAM_VALUE 0 victim->rb_left 4096-ptr_max
PARAM_VALUE 0 victim->rb_right 4096-ptr_max
PARAM_VALUE 1 new 4096-ptr_max
PARAM_VALUE 2 root 4096-ptr_max
PARAM_VALUE 2 root->rb_node 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 victim unit_byte
LOCK2 rcu_read
HALF_LOCKED2 &fq->q.lock
HALF_LOCKED2 &qp->q.lock
HALF_LOCKED2 bh
TYPE_LOCK (struct inet_frag_queue)->lock

net/ipv4/inet_fragment.c inet_frag_reasm_prepare() -> rb_replace_node()

Type Parameter Key Value
PARAM_VALUE 0 victim 4096-ptr_max
PARAM_VALUE 1 new 4096-ptr_max
PARAM_VALUE 2 root 4096-ptr_max
PARAM_VALUE 2 root->rb_node 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 1 new unit_byte
LOCK2 rcu_read
HALF_LOCKED2 &fq->q.lock
HALF_LOCKED2 &qp->q.lock
HALF_LOCKED2 bh
TYPE_LOCK (struct inet_frag_queue)->lock

arch/x86/kvm/../../../virt/kvm/kvm_main.c kvm_replace_gfn_node() -> rb_replace_node()

Type Parameter Key Value
PARAM_VALUE 0 victim 4096-ptr_max
PARAM_VALUE 1 new 4096-ptr_max
PARAM_VALUE 2 root 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &kvm->lock
HALF_LOCKED2 &kvm->slots_arch_lock
HALF_LOCKED2 &kvm->slots_lock
HALF_LOCKED2 _T->lock