Defined in 1 files as a prototype:
Referenced in 14 files:
- drivers/gpu/drm/amd/amdkfd/kfd_queue.c, line 170
- drivers/gpu/drm/amd/amdkfd/kfd_svm.c
- drivers/iommu/iommufd/io_pagetable.h, line 149
- drivers/iommu/iommufd/pages.c, line 2422
- drivers/iommu/virtio-iommu.c
- drivers/vfio/pci/mlx5/cmd.c, line 986
- drivers/vfio/pci/pds/dirty.c, line 315
- drivers/vfio/vfio_main.c
- fs/fuse/dax.c, line 897
- lib/interval_tree.c
- lib/interval_tree_test.c
- mm/memory-failure.c, line 2335
- mm/mmu_notifier.c, line 124
- virt/kvm/kvm_main.c, line 559
Smatch caller information:
drivers/iommu/iommufd/selftest.c iopt_area_iter_next() -> interval_tree_iter_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | node | 4096-ptr_max |
| PARAM_VALUE | 1 | start | 0 |
| PARAM_VALUE | 2 | last | u64max |
| DATA_SOURCE | 1 | start | $1 |
| DATA_SOURCE | 2 | last | $2 |
| LOCK2 | &iopt->iova_rwsem | ||
| HALF_LOCKED2 | &access->ioas_lock | ||
| TYPE_LOCK | (struct io_pagetable)->iova_rwsem |
drivers/vfio/vfio_main.c vfio_combine_iova_ranges() -> interval_tree_iter_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | node | 4096-ptr_max |
| PARAM_VALUE | 1 | start | 0 |
| PARAM_VALUE | 2 | last | u64max |
| CAPPED_DATA | 0 | node->start | 1 |
| HALF_LOCKED2 | &mvdev->state_mutex | ||
| HALF_LOCKED2 | &pds_vfio->state_mutex |
drivers/vfio/vfio_main.c vfio_combine_iova_ranges() -> interval_tree_iter_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | node | 4096-ptr_max |
| PARAM_VALUE | 1 | start | 0 |
| PARAM_VALUE | 2 | last | u64max |
| CAPPED_DATA | 0 | node->start | 1 |
| HALF_LOCKED2 | &mvdev->state_mutex | ||
| HALF_LOCKED2 | &pds_vfio->state_mutex |
drivers/vfio/pci/pds/dirty.c pds_vfio_dirty_enable() -> interval_tree_iter_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | node | 4096-ptr_max |
| PARAM_VALUE | 1 | start | 0 |
| PARAM_VALUE | 2 | last | u64max |
| LOCK2 | &pds_vfio->state_mutex | ||
| TYPE_LOCK | (struct pds_vfio_pci_device)->state_mutex |
drivers/iommu/iommufd/io_pagetable.c iopt_allowed_iter_next() -> interval_tree_iter_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | node | 4096-ptr_max |
| PARAM_VALUE | 1 | start | 0 |
| PARAM_VALUE | 2 | last | u64max |
| DATA_SOURCE | 1 | start | $1 |
| DATA_SOURCE | 2 | last | $2 |
| LOCK2 | &iopt->iova_rwsem | ||
| TYPE_LOCK | (struct io_pagetable)->iova_rwsem |
drivers/iommu/iommufd/io_pagetable.c iopt_area_iter_next() -> interval_tree_iter_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | node | 4096-ptr_max |
| PARAM_VALUE | 2 | last | 1-u64max |
| CAPPED_DATA | 1 | start | 1 |
| CAPPED_DATA | 1 | start | 1 |
| DATA_SOURCE | 1 | start | $1 |
| DATA_SOURCE | 2 | last | $2 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 1 | start | unit_byte |
| UNITS | 2 | last | unit_byte |
| HALF_LOCKED2 | &ioas->mutex | ||
| HALF_LOCKED2 | &iopt->domains_rwsem | ||
| HALF_LOCKED2 | &iopt->iova_rwsem | ||
| HALF_LOCKED2 | _T->lock |
drivers/iommu/iommufd/io_pagetable.c iopt_reserved_iter_next() -> interval_tree_iter_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | node | 4096-ptr_max |
| PARAM_VALUE | 1 | start | 0 |
| PARAM_VALUE | 2 | last | u64max |
| DATA_SOURCE | 1 | start | $1 |
| DATA_SOURCE | 2 | last | $2 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &iopt->iova_rwsem | ||
| HALF_LOCKED2 | &igroup->lock | ||
| HALF_LOCKED2 | &ioas->mutex | ||
| HALF_LOCKED2 | &iopt->domains_rwsem | ||
| TYPE_LOCK | (struct io_pagetable)->iova_rwsem |
drivers/iommu/iommufd/pages.c iopt_pages_get_exact_access() -> interval_tree_iter_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | node | 4096-ptr_max |
| CAPPED_DATA | 0 | node->start | 1 |
| CAPPED_DATA | 1 | start | 1 |
| CAPPED_DATA | 1 | start | 1 |
| DATA_SOURCE | 1 | start | $1 |
| DATA_SOURCE | 2 | last | $2 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &access->ioas_lock | ||
| LOCK2 | &iopt->iova_rwsem | ||
| LOCK2 | &pages->mutex | ||
| HALF_LOCKED2 | &staccess->lock | ||
| TYPE_LOCK | (struct io_pagetable)->iova_rwsem | ||
| TYPE_LOCK | (struct iommufd_access)->ioas_lock | ||
| TYPE_LOCK | (struct iopt_pages)->mutex |
drivers/iommu/virtio-iommu.c viommu_del_mappings() -> interval_tree_iter_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | node | 4096-ptr_max |
| CAPPED_DATA | 0 | node->start | 1 |
| CAPPED_DATA | 1 | start | 1 |
| CAPPED_DATA | 1 | start | 1 |
| DATA_SOURCE | 1 | start | $1 |
| DATA_SOURCE | 2 | last | $2 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &vdomain->mappings_lock | ||
| LOCK2 | flags | ||
| HALF_LOCKED2 | &group->mutex | ||
| TYPE_LOCK | (struct viommu_domain)->mappings_lock |
drivers/iommu/virtio-iommu.c viommu_replay_mappings() -> interval_tree_iter_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | node | 4096-ptr_max |
| PARAM_VALUE | 1 | start | 0 |
| PARAM_VALUE | 2 | last | u64max |
| CAPPED_DATA | 0 | node->start | 1 |
| PREEMPT_ADD | <- disables preempt | ||
| LOCK2 | &vdomain->mappings_lock | ||
| LOCK2 | flags | ||
| TYPE_LOCK | (struct viommu_domain)->mappings_lock |
drivers/vfio/pci/mlx5/cmd.c mlx5vf_create_tracker() -> interval_tree_iter_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | node | 4096-ptr_max |
| PARAM_VALUE | 1 | start | 0 |
| PARAM_VALUE | 2 | last | u64max |
| LOCK2 | &mvdev->state_mutex | ||
| TYPE_LOCK | (struct mlx5vf_pci_core_device)->state_mutex |
fs/fuse/dax.c inode_lookup_first_dmap() -> interval_tree_iter_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | node | 4096-ptr_max |
| PARAM_VALUE | 1 | start | 0 |
| PARAM_VALUE | 2 | last | u64max |
| CAPPED_DATA | 0 | node->start | 1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &fi->dax->sem | ||
| LOCK2 | &inode->i_mapping->invalidate_lock | ||
| HALF_LOCKED2 | &inode->i_rwsem | ||
| TYPE_LOCK | (struct address_space)->invalidate_lock | ||
| TYPE_LOCK | (struct fuse_inode_dax)->sem |
lib/interval_tree.c interval_tree_span_iter_next_gap() -> interval_tree_iter_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | node | 4096-ptr_max |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NO_OVERFLOW_SIMPLE | 1 | start | |
| UNITS | 1 | start | unit_byte |
| UNITS | 2 | last | unit_byte |
| HALF_LOCKED2 | &ioas->iopt.iova_rwsem | ||
| HALF_LOCKED2 | &iopt->iova_rwsem |
drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_queue.c kfd_queue_buffer_svm_put() -> interval_tree_iter_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | node | 4096-ptr_max |
| PARAM_VALUE | 2 | last | 0-4503599660924926,u64max |
| CAPPED_DATA | 1 | start | 1 |
| CAPPED_DATA | 1 | start | 1 |
| CAPPED_DATA | 2 | last | 1 |
| CAPPED_DATA | 2 | last | 1 |
| DATA_SOURCE | 1 | start | $1 [m] |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 1 | start | 0[c] |
| USER_DATA | 2 | last | 0-16777215,u64max[c] |
| UNITS | 1 | start | unit_page |
| UNITS | 2 | last | unit_page |
| LOCK2 | &p->svms.lock | ||
| HALF_LOCKED2 | &p->mutex | ||
| TYPE_LOCK | (struct svm_range_list)->lock |
lib/interval_tree_test.c intersection_range_check() -> interval_tree_iter_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | node | 4096-ptr_max |
| PARAM_VALUE | 1 | start | 0-268435454 |
| PARAM_VALUE | 2 | last | 0-268435455,u64max |
| CAPPED_DATA | 0 | node->start | 1 |
| CAPPED_DATA | 1 | start | 1 |
| CAPPED_DATA | 1 | start | 1 |
| CAPPED_DATA | 2 | last | 1 |
| CAPPED_DATA | 2 | last | 1 |
| FUZZY_MAX | 2 | last | u64max |
lib/interval_tree_test.c search() -> interval_tree_iter_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | node | 4096-ptr_max |
| PARAM_VALUE | 1 | start | 0-u32max |
| PARAM_VALUE | 2 | last | 0-u32max |
| CAPPED_DATA | 0 | node->start | 1 |
| CAPPED_DATA | 1 | start | 1 |
| CAPPED_DATA | 1 | start | 1 |
| CAPPED_DATA | 2 | last | 1 |
| CAPPED_DATA | 2 | last | 1 |
| DATA_SOURCE | 1 | start | $1 |
| DATA_SOURCE | 2 | last | $2 |
| FUZZY_MAX | 1 | start | 0 |
mm/memory-failure.c memory_failure_pfn() -> interval_tree_iter_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | node | 4096-ptr_max |
| CAPPED_DATA | 0 | node->start | 1 |
| CAPPED_DATA | 1 | start | 1 |
| CAPPED_DATA | 1 | start | 1 |
| CAPPED_DATA | 2 | last | 1 |
| CAPPED_DATA | 2 | last | 1 |
| DATA_SOURCE | 1 | start | $0 |
| DATA_SOURCE | 2 | last | $0 |
| NOSPEC | 1 | start | |
| NOSPEC | 1 | start | |
| NOSPEC | 2 | last | |
| NOSPEC | 2 | last | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 1 | start | 0-4503599627370495[c] |
| USER_DATA | 2 | last | 0-4503599627370495[c] |
| UNITS | 1 | start | unit_page |
| UNITS | 2 | last | unit_page |
| LOCK2 | _T->lock | ||
| LOCK2 | global &mf_mutex | ||
| HALF_LOCKED2 | &attr->mutex | ||
| HALF_LOCKED2 | &of->mutex |
mm/mmu_notifier.c mn_itree_inv_next() -> interval_tree_iter_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | node | 4096-ptr_max |
| CAPPED_DATA | 1 | start | 1 |
| CAPPED_DATA | 1 | start | 1 |
| NOSPEC | 1 | start | |
| NOSPEC | 1 | start | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 1 | start | 0-u64max[c] |
| UNITS | 1 | start | unit_byte |
| UNITS | 2 | last | unit_byte |
| HALF_LOCKED2 | &mm->mmap_lock |
drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c svm_range_add() -> interval_tree_iter_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | node | 4096-ptr_max |
| CAPPED_DATA | 1 | start | 1 |
| CAPPED_DATA | 1 | start | 1 |
| DATA_SOURCE | 1 | start | $1 [m] |
| NOSPEC | 1 | start | |
| NOSPEC | 1 | start | |
| NOSPEC | 2 | last | |
| USER_DATA | 1 | start | 0-9007199254740990[c] |
| USER_DATA | 2 | last | 0-9007199254740989 |
| UNITS | 1 | start | unit_byte |
| UNITS | 2 | last | unit_byte |
| LOCK2 | &mm->mmap_lock | ||
| LOCK2 | &process_info->lock | ||
| LOCK2 | &svms->lock | ||
| HALF_LOCKED2 | &p->mutex | ||
| TYPE_LOCK | (struct amdkfd_process_info)->lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock | ||
| TYPE_LOCK | (struct svm_range_list)->lock |
drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c svm_range_check_vm_userptr() -> interval_tree_iter_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | node | 4096-ptr_max |
| PARAM_VALUE | 1 | start | 0 |
| PARAM_VALUE | 2 | last | u64max |
| CAPPED_DATA | 0 | node->start | 1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &mm->mmap_lock | ||
| LOCK2 | &svms->lock | ||
| LOCK2 | vm->root.bo->tbo.base.resv | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock | ||
| TYPE_LOCK | (struct svm_range_list)->lock |
drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c svm_range_debug_dump() -> interval_tree_iter_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | node | 4096-ptr_max |
| PARAM_VALUE | 1 | start | 0 |
| PARAM_VALUE | 2 | last | u64max |
| CAPPED_DATA | 0 | node->start | 1 |
| LOCK2 | &mm->mmap_lock | ||
| LOCK2 | &process_info->lock | ||
| LOCK2 | &svms->lock | ||
| HALF_LOCKED2 | &p->mutex | ||
| TYPE_LOCK | (struct amdkfd_process_info)->lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock | ||
| TYPE_LOCK | (struct svm_range_list)->lock |
drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c svm_range_get_attr() -> interval_tree_iter_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | node | 4096-ptr_max |
| CAPPED_DATA | 1 | start | 1 |
| CAPPED_DATA | 1 | start | 1 |
| DATA_SOURCE | 1 | start | $2 |
| NOSPEC | 1 | start | |
| NOSPEC | 1 | start | |
| USER_DATA | 1 | start | 0-4503599627370495[c] |
| USER_DATA | 2 | last | 0-9007199254740989,u64max |
| UNITS | 1 | start | unit_byte |
| UNITS | 2 | last | unit_page |
| LOCK2 | &svms->lock | ||
| HALF_LOCKED2 | &p->mutex | ||
| TYPE_LOCK | (struct svm_range_list)->lock |
drivers/iommu/iommufd/ioas.c iopt_area_iter_next() -> interval_tree_iter_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | node | 4096-ptr_max |
| PARAM_VALUE | 1 | start | 0 |
| PARAM_VALUE | 2 | last | u64max |
| DATA_SOURCE | 1 | start | $1 |
| DATA_SOURCE | 2 | last | $2 |
| LOCK2 | &ictx->ioas_creation_lock | ||
| TYPE_LOCK | (struct iommufd_ctx)->ioas_creation_lock |
arch/x86/kvm/../../../virt/kvm/kvm_main.c kvm_handle_hva_range() -> interval_tree_iter_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | node | 4096-ptr_max |
| PARAM_VALUE | 1 | start | 0-18446744073709551614 |
| CAPPED_DATA | 0 | node->start | 1 |
| CAPPED_DATA | 1 | start | 1 |
| CAPPED_DATA | 1 | start | 1 |
| CAPPED_DATA | 2 | last | 1 |
| NOSPEC | 1 | start | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 1 | start | 0-18446744073709551614[c] |
| LOCK2 | &kvm->srcu | ||
| LOCK2 | global &srcu | ||
| HALF_LOCKED2 | &kvm->mmu_lock | ||
| TYPE_LOCK | (struct kvm)->srcu |