Defined in 2 files as a prototype:
- include/linux/rbtree.h, line 87 (as a prototype)
- tools/include/linux/rbtree.h, line 63 (as a prototype)
Defined in 2 files as a function:
Referenced in 16 files:
- drivers/infiniband/hw/mlx4/cm.c, line 218
- drivers/infiniband/ulp/ipoib/ipoib_multicast.c, line 935
- fs/btrfs/extent_map.c, line 622
- fs/jffs2/nodelist.c, line 317
- fs/jffs2/readinode.c, line 286
- fs/nfs/dir.c, line 3210
- include/linux/rbtree.h, line 170
- lib/rbtree.c, line 556
- mm/ksm.c
- net/ipv4/inet_fragment.c
- net/ipv4/tcp_input.c, line 5472
- net/mptcp/protocol.c, line 324
- security/apparmor/label.c, line 655
- security/landlock/ruleset.c, line 274
- tools/include/linux/rbtree.h, line 152
- virt/kvm/kvm_main.c, line 1500
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 |