Documented in 1 files:

Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 26 files:

Smatch caller information:

drivers/tee/qcomtee/user_obj.c qcomtee_user_object_dispatch() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 4096-ptr_max
PARAM_VALUE 1 ptr 99174461014040576
PARAM_VALUE 2 id 0-s32max
BUF_SIZE 1 ptr 152
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 _T->lock

net/l2tp/l2tp_core.c l2tp_session_collision_del() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 4096-ptr_max
PARAM_VALUE 1 ptr 4096-ptr_max
PARAM_VALUE 2 id 0-u32max
PREEMPT_ADD <- disables preempt
UNITS 2 id unit_array_size
LOCK2 &clist->lock
LOCK2 &pn->l2tp_session_idr_lock
LOCK2 &tunnel->list_lock
LOCK2 bh
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct l2tp_net)->l2tp_session_idr_lock
TYPE_LOCK (struct l2tp_session_coll_list)->lock
TYPE_LOCK (struct l2tp_tunnel)->list_lock

net/l2tp/l2tp_core.c l2tp_session_register() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 4096-ptr_max
PARAM_VALUE 1 ptr 4096-ptr_max
BUF_SIZE 1 ptr 536,704
DATA_SOURCE 1 ptr $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
UNITS 2 id unit_array_size
LOCK2 &pn->l2tp_session_idr_lock
LOCK2 &tunnel->list_lock
LOCK2 bh
HALF_LOCKED2 &ps->sk_lock
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 sk
TYPE_LOCK (struct l2tp_net)->l2tp_session_idr_lock
TYPE_LOCK (struct l2tp_tunnel)->list_lock

net/l2tp/l2tp_core.c l2tp_session_register() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 4096-ptr_max
PARAM_VALUE 1 ptr 4096-ptr_max
BUF_SIZE 1 ptr 536,704
DATA_SOURCE 1 ptr $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &pn->l2tp_session_idr_lock
LOCK2 &tunnel->list_lock
LOCK2 bh
HALF_LOCKED2 &ps->sk_lock
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 sk
TYPE_LOCK (struct l2tp_net)->l2tp_session_idr_lock
TYPE_LOCK (struct l2tp_tunnel)->list_lock

net/l2tp/l2tp_core.c l2tp_tunnel_register() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 4096-ptr_max
PARAM_VALUE 1 ptr 4096-ptr_max
DATA_SOURCE 1 ptr $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 2 id unit_array_size
LOCK2 &pn->l2tp_tunnel_idr_lock
LOCK2 bh
TYPE_LOCK (struct l2tp_net)->l2tp_tunnel_idr_lock

net/sched/cls_flower.c fl_change() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 4096-ptr_max
PARAM_VALUE 1 ptr 4096-ptr_max
BUF_SIZE 1 ptr 1320
DATA_SOURCE 1 ptr r _kzalloc_noprof
DATA_SOURCE 2 id $4
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 2 id 0
UNITS 2 id unit_array_size
LOCK2 &tp->lock
HALF_LOCKED2 &net->xfrm.xfrm_cfg_mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 global &audit_cmd_mutex.lock
HALF_LOCKED2 global &cb_lock
HALF_LOCKED2 global &crypto_cfg_mutex
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &rx_queue_mutex
TYPE_LOCK (struct tcf_proto)->lock

net/sched/cls_flower.c fl_change() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 4096-ptr_max
PARAM_VALUE 1 ptr 4096-ptr_max
BUF_SIZE 1 ptr 1320
DATA_SOURCE 1 ptr r _kzalloc_noprof
DATA_SOURCE 2 id $4 [m]
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 2 id 0
UNITS 2 id unit_array_size
LOCK2 &tp->lock
HALF_LOCKED2 &net->xfrm.xfrm_cfg_mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 global &audit_cmd_mutex.lock
HALF_LOCKED2 global &cb_lock
HALF_LOCKED2 global &crypto_cfg_mutex
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &rx_queue_mutex
TYPE_LOCK (struct tcf_proto)->lock

net/sched/cls_bpf.c cls_bpf_change() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 4096-ptr_max
PARAM_VALUE 1 ptr 4096-ptr_max
BUF_SIZE 1 ptr 240
DATA_SOURCE 1 ptr r _kzalloc_noprof
DATA_SOURCE 2 id $4 [m]
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 2 id 1-u32max[c]
UNITS 2 id unit_array_size
HALF_LOCKED2 &net->xfrm.xfrm_cfg_mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 global &audit_cmd_mutex.lock
HALF_LOCKED2 global &cb_lock
HALF_LOCKED2 global &crypto_cfg_mutex
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &rx_queue_mutex

drivers/gpu/drm/vgem/vgem_fence.c vgem_fence_signal_ioctl() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 1 ptr 0
USER_DATA 2 id 0-u32max[u]
LOCK2 &vfile->fence_mutex
TYPE_LOCK (struct vgem_file)->fence_mutex

drivers/i2c/i2c-core-base.c i2c_del_adapter() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 5363253426248409088
PARAM_VALUE 1 ptr 0
PARAM_VALUE 2 id 0-s32max,18446744071562067968-u64max
NOCHECK_CALL
UNITS 2 id unit_array_size
LOCK2 global &core_lock

drivers/i2c/i2c-core-base.c i2c_register_adapter() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 5363253426248409088
PARAM_VALUE 1 ptr 4096-ptr_max
PARAM_VALUE 2 id 0-s32max
BUF_SIZE 1 ptr (-1),2336,4672
DATA_SOURCE 1 ptr $0
STR_LEN 0 idr (-1),21,29
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 2 id
UNITS 2 id unit_array_size
LOCK2 global &core_lock

drivers/i2c/i2c-core-base.c i2c_register_adapter() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 5363253426248409088
PARAM_VALUE 1 ptr 0
PARAM_VALUE 2 id 0-s32max,18446744071562067968-u64max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 2 id
UNITS 2 id unit_array_size
LOCK2 global &core_lock

drivers/tee/tee_shm.c tee_shm_alloc_user_buf() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 4096-ptr_max
PARAM_VALUE 1 ptr 4096-ptr_max
PARAM_VALUE 2 id 0-s32max
BUF_SIZE 1 ptr 80
DATA_SOURCE 1 ptr r shm_alloc_helper
DATA_SOURCE 2 id r idr_alloc
LOCK2 &teedev->mutex
TYPE_LOCK (struct tee_device)->mutex

drivers/tee/tee_shm.c tee_shm_register_user_buf() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 4096-ptr_max
PARAM_VALUE 2 id 0-s32max
DATA_SOURCE 1 ptr r register_shm_helper
DATA_SOURCE 2 id r idr_alloc
LOCK2 &teedev->mutex
TYPE_LOCK (struct tee_device)->mutex

ipc/util.c ipc_idr_alloc() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 4096-ptr_max
PARAM_VALUE 1 ptr 4096-ptr_max
PARAM_VALUE 2 id 0-s32max
CAPPED_DATA 2 id 1
DATA_SOURCE 1 ptr $1
DATA_SOURCE 2 id r idr_alloc_cyclic
PREEMPT_ADD
NOCHECK_CALL
LOCK2 &ids->rwsem
LOCK2 &new->lock
LOCK2 rcu_read
TYPE_LOCK (struct ipc_ids)->rwsem
TYPE_LOCK (struct kern_ipc_perm)->lock

drivers/char/tpm/tpm-chip.c tpm_add_char_device() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 708257801608187904
PARAM_VALUE 1 ptr 4096-ptr_max
PARAM_VALUE 2 id 0-s32max,18446744071562067968-u64max
BUF_SIZE 1 ptr (-1),9120
DATA_SOURCE 1 ptr $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &idr_lock

drivers/char/tpm/tpm-chip.c tpm_del_char_device() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 708257801608187904
PARAM_VALUE 1 ptr 0
PARAM_VALUE 2 id 0-s32max,18446744071562067968-u64max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &idr_lock

fs/nfs/nfs40client.c nfs4_swap_callback_idents() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 4096-ptr_max
PARAM_VALUE 1 ptr 4096-ptr_max
DATA_SOURCE 1 ptr $0
PARAM_COMPARE 2 id != $1->cl_cb_ident
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &nn->nfs_client_lock
LOCK2 global &nfs_clid_init_mutex
TYPE_LOCK (struct nfs_net)->nfs_client_lock

fs/nfs/nfs40client.c nfs4_swap_callback_idents() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 4096-ptr_max
PARAM_VALUE 1 ptr 4096-ptr_max
DATA_SOURCE 1 ptr $1
PARAM_COMPARE 2 id != $1->cl_cb_ident
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &nn->nfs_client_lock
LOCK2 global &nfs_clid_init_mutex
TYPE_LOCK (struct nfs_net)->nfs_client_lock

drivers/gpu/drm/drm_mode_object.c drm_mode_object_register() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 4096-ptr_max
PARAM_VALUE 1 ptr 4096-ptr_max
DATA_SOURCE 1 ptr $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 2 id unit_array_size
LOCK2 &dev->mode_config.idr_mutex
HALF_LOCKED2 &connector->mutex
TYPE_LOCK (struct drm_mode_config)->idr_mutex

drivers/net/ethernet/mellanox/mlxsw/spectrum_pgt.c mlxsw_sp_pgt_entry_create() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 4096-ptr_max
PARAM_VALUE 1 ptr 4096-ptr_max
BUF_SIZE 1 ptr 24
DATA_SOURCE 1 ptr r _kzalloc_noprof
DATA_SOURCE 2 id $1
RX_PATH
TASK_NOT_RUNNING
UNITS 2 id unit_array_size
LOCK2 &pgt->lock
TYPE_LOCK (struct mlxsw_sp_pgt)->lock

drivers/net/ethernet/mellanox/mlxsw/spectrum_pgt.c mlxsw_sp_pgt_entry_destroy() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 4096-ptr_max
PARAM_VALUE 1 ptr 0
RX_PATH
TASK_NOT_RUNNING
UNITS 2 id unit_array_size
LOCK2 &pgt->lock
TYPE_LOCK (struct mlxsw_sp_pgt)->lock

kernel/pid.c alloc_pid() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 1 ptr 4096-ptr_max
PARAM_VALUE 2 id 0-s32max
DATA_SOURCE 1 ptr r kmem_cache_alloc_noprof
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &pidmap_lock

drivers/md/dm.c __dm_destroy() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 1888162498090684416
PARAM_VALUE 1 ptr (-1)
PARAM_VALUE 2 id 0-1048575
PREEMPT_ADD <- disables preempt
NOCHECK_CALL
LOCK2 global &_minor_lock

drivers/md/dm.c alloc_dev() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 1888162498090684416
PARAM_VALUE 1 ptr 4096-ptr_max
PARAM_VALUE 2 id 0-s32max
BUF_SIZE 1 ptr 2280
DATA_SOURCE 1 ptr r __kvmalloc_node_noprof
DATA_SOURCE 2 id $0 [m]
PREEMPT_ADD <- disables preempt
LOCK2 global &_minor_lock

net/sched/cls_u32.c u32_replace_knode() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 4096-ptr_max
PARAM_VALUE 1 ptr 4096-ptr_max
PARAM_VALUE 2 id 1-u32max
BUF_SIZE 1 ptr 256-4336
CAPPED_DATA 2 id 1
DATA_SOURCE 1 ptr $2
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 2 id unit_array_size
HALF_LOCKED2 &net->xfrm.xfrm_cfg_mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 global &audit_cmd_mutex.lock
HALF_LOCKED2 global &cb_lock
HALF_LOCKED2 global &crypto_cfg_mutex
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &rx_queue_mutex

kernel/cgroup/cgroup.c cgroup_idr_replace() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 4096-ptr_max
PARAM_VALUE 1 ptr 0,4096-ptr_max
PARAM_VALUE 2 id 0-s32max,18446744071562067968-u64max
BUF_SIZE 1 ptr (-1),392
BUF_SIZE 1 ptr (-1),392
DATA_SOURCE 0 idr $0
DATA_SOURCE 1 ptr $1
DATA_SOURCE 2 id $2
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 bh
LOCK2 global &cgroup_idr_lock
HALF_LOCKED2 global &cgroup_mutex

kernel/events/core.c idr_cmpxchg() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 8202877641872527360
PARAM_VALUE 1 ptr 0,4096-ptr_max
PARAM_VALUE 2 id 0-s32max,18446744071562067968-u64max
BUF_SIZE 1 ptr (-1),384
BUF_SIZE 1 ptr (-1),384
CAPPED_DATA 2 id 1
CAPPED_DATA 2 id 1
DATA_SOURCE 0 idr $0
DATA_SOURCE 1 ptr $3
DATA_SOURCE 2 id $1
STR_LEN 0 idr (-1),3-6,8-10,12,15,21,23,31
STR_LEN 0 idr (-1),3-6,8-10,12,15,21,23,31
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 2 id unit_array_size
LOCK2 _T->lock

net/sched/act_api.c tcf_idr_insert_many() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 4096-ptr_max
PARAM_VALUE 1 ptr 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &idrinfo->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 &hwsim_phys_lock
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &rx_queue_mutex
TYPE_LOCK (struct tcf_idrinfo)->lock

drivers/gpu/drm/drm_gem.c drm_gem_change_handle_ioctl() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 4096-ptr_max
PARAM_VALUE 1 ptr 0
PREEMPT_ADD <- disables preempt
LOCK2 &file_priv->prime.lock
LOCK2 &file_priv->table_lock
TYPE_LOCK (struct drm_file)->table_lock
TYPE_LOCK (struct drm_prime_file_private)->lock

drivers/gpu/drm/drm_gem.c drm_gem_change_handle_ioctl() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 4096-ptr_max
PARAM_VALUE 1 ptr 4096-ptr_max
CAPPED_DATA 2 id 1
DATA_SOURCE 1 ptr r idr_replace
PREEMPT_ADD <- disables preempt
NOCHECK_CALL
LOCK2 &file_priv->prime.lock
LOCK2 &file_priv->table_lock
TYPE_LOCK (struct drm_file)->table_lock
TYPE_LOCK (struct drm_prime_file_private)->lock

drivers/gpu/drm/drm_gem.c drm_gem_change_handle_ioctl() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 4096-ptr_max
PARAM_VALUE 1 ptr 4096-ptr_max
PARAM_VALUE 2 id 0-s32max
DATA_SOURCE 1 ptr r idr_replace
PREEMPT_ADD <- disables preempt
LOCK2 &file_priv->prime.lock
LOCK2 &file_priv->table_lock
TYPE_LOCK (struct drm_file)->table_lock
TYPE_LOCK (struct drm_prime_file_private)->lock

drivers/gpu/drm/drm_gem.c drm_gem_handle_create_tail() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 4096-ptr_max
PARAM_VALUE 1 ptr 4096-ptr_max
PARAM_VALUE 2 id 0-s32max
BUF_SIZE 1 ptr (-1),16,24,40,48,56,72,80,112,120,136,168,184,224,704
DATA_SOURCE 1 ptr $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 &file_priv->table_lock
HALF_LOCKED2 &dev->object_name_lock
HALF_LOCKED2 &file_priv->prime.lock
HALF_LOCKED2 &obj->dev->object_name_lock
TYPE_LOCK (struct drm_file)->table_lock

drivers/gpu/drm/drm_gem.c drm_gem_handle_delete() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 4096-ptr_max
PARAM_VALUE 1 ptr 0
DATA_SOURCE 2 id $1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
USER_DATA 2 id 0-u32max
UNITS 2 id unit_bit
LOCK2 &filp->table_lock
HALF_LOCKED2 &dev->clientlist_mutex
HALF_LOCKED2 &dev->object_name_lock
HALF_LOCKED2 &fb_helper->lock
HALF_LOCKED2 &helper->lock
HALF_LOCKED2 &p->mutex
TYPE_LOCK (struct drm_file)->table_lock

net/sched/cls_basic.c basic_change() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 4096-ptr_max
PARAM_VALUE 1 ptr 4096-ptr_max
BUF_SIZE 1 ptr 224
DATA_SOURCE 1 ptr r _kzalloc_noprof
DATA_SOURCE 2 id $4 [m]
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 2 id 1-u32max[c]
UNITS 2 id unit_array_size
HALF_LOCKED2 &net->xfrm.xfrm_cfg_mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 global &audit_cmd_mutex.lock
HALF_LOCKED2 global &cb_lock
HALF_LOCKED2 global &crypto_cfg_mutex
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &rx_queue_mutex

drivers/gpu/drm/drm_auth.c drm_authmagic() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 4096-ptr_max
PARAM_VALUE 1 ptr 0
NOCHECK_CALL
USER_DATA 2 id 0-u32max[u]
UNITS 2 id unit_array_size
LOCK2 _T->lock

drivers/gpu/drm/qxl/qxl_cmd.c qxl_hw_surface_alloc() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 4096-ptr_max
PARAM_VALUE 1 ptr 4096-ptr_max
PARAM_VALUE 2 id 0-s32max
DATA_SOURCE 1 ptr $1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 2 id unit_array_size
LOCK2 &qdev->surf_id_idr_lock
HALF_LOCKED2 surf->tbo.base.resv
TYPE_LOCK (struct qxl_device)->surf_id_idr_lock

drivers/gpu/drm/qxl/qxl_cmd.c qxl_hw_surface_dealloc() -> idr_replace()

Type Parameter Key Value
PARAM_VALUE 0 idr 4096-ptr_max
PARAM_VALUE 1 ptr 0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 2 id unit_array_size
LOCK2 &qdev->surf_evict_mutex
LOCK2 &qdev->surf_id_idr_lock
HALF_LOCKED2 surf->tbo.base.resv
TYPE_LOCK (struct qxl_device)->surf_evict_mutex
TYPE_LOCK (struct qxl_device)->surf_id_idr_lock