Defined in 1 files as a prototype:

Referenced in 14 files:

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