Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

drivers/iommu/iommufd/io_pagetable.c iopt_alloc_iova() -> interval_tree_span_iter_next()

Type Parameter Key Value
PARAM_VALUE 0 iter 5641834098772606976
PARAM_VALUE 0 iter->first_index 4096
PARAM_VALUE 0 iter->is_hole 0-1
PARAM_VALUE 0 iter->last_index 18446744073709547519
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 iter->start_used
LOCK2 &iopt->iova_rwsem
TYPE_LOCK (struct io_pagetable)->iova_rwsem

drivers/iommu/iommufd/vfio_compat.c iommufd_fill_cap_iova() -> interval_tree_span_iter_next()

Type Parameter Key Value
PARAM_VALUE 0 iter 2634653540751040512
PARAM_VALUE 0 iter->first_index 0
PARAM_VALUE 0 iter->is_hole 0-1
PARAM_VALUE 0 iter->last_index u64max
NOCHECK_CALL
LOCK2 &ioas->iopt.iova_rwsem
TYPE_LOCK (struct io_pagetable)->iova_rwsem

lib/interval_tree.c interval_tree_span_iter_advance() -> interval_tree_span_iter_next()

Type Parameter Key Value
PARAM_VALUE 0 iter 4096-ptr_max
PARAM_VALUE 0 iter->is_hole 0-1
CAPPED_DATA 0 iter->start_hole 1
DATA_SOURCE 0 iter $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &access->ioas_lock
HALF_LOCKED2 &iopt->domains_rwsem
HALF_LOCKED2 &iopt->iova_rwsem
HALF_LOCKED2 &pages->mutex

lib/interval_tree_test.c span_iteration_check() -> interval_tree_span_iter_next()

Type Parameter Key Value
PARAM_VALUE 0 iter 2261296976923930624
PARAM_VALUE 0 iter->first_index 0-268435454
PARAM_VALUE 0 iter->is_hole 0-1
PARAM_VALUE 0 iter->last_index 0-u32max,u64max
NOCHECK_CALL

drivers/iommu/iommufd/ioas.c iommufd_ioas_iova_ranges() -> interval_tree_span_iter_next()

Type Parameter Key Value
PARAM_VALUE 0 iter 2235099616818495488
PARAM_VALUE 0 iter->first_index 0
PARAM_VALUE 0 iter->is_hole 0-1
PARAM_VALUE 0 iter->last_index u64max
NOCHECK_CALL
LOCK2 &ioas->iopt.iova_rwsem
TYPE_LOCK (struct io_pagetable)->iova_rwsem