Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 3 files:

Smatch caller information:

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

Type Parameter Key Value
PARAM_VALUE 0 iter 5641834098772606976
PARAM_VALUE 1 itree 4096-ptr_max
PARAM_VALUE 2 first_index 4096
PARAM_VALUE 3 last_index 18446744073709547519
NOCHECK_CALL
LOCK2 &iopt->iova_rwsem
TYPE_LOCK (struct io_pagetable)->iova_rwsem

drivers/iommu/iommufd/pages.c interval_tree_double_span_iter_first() -> interval_tree_span_iter_first()

Type Parameter Key Value
PARAM_VALUE 0 iter 4096-ptr_max
DATA_SOURCE 2 first_index $3
DATA_SOURCE 3 last_index $4
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 2 first_index
HALF_LOCKED2 &access->ioas_lock
HALF_LOCKED2 &iopt->domains_rwsem
HALF_LOCKED2 &iopt->iova_rwsem
HALF_LOCKED2 &pages->mutex

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

Type Parameter Key Value
PARAM_VALUE 0 iter 2634653540751040512
PARAM_VALUE 1 itree 4096-ptr_max
PARAM_VALUE 2 first_index 0
PARAM_VALUE 3 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_first()

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
CAPPED_DATA 2 first_index 1
CAPPED_DATA 2 first_index 1
DATA_SOURCE 0 iter $0
DATA_SOURCE 1 itree $1
DATA_SOURCE 2 first_index $2
PARAM_COMPARE 0 iter->last_index >= $2
PARAM_COMPARE 2 first_index <= $0->last_index
PARAM_COMPARE 3 last_index >= $2
PARAM_COMPARE 3 last_index >= $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 2 first_index unit_byte
UNITS 3 last_index unit_byte
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_first()

Type Parameter Key Value
PARAM_VALUE 0 iter 2261296976923930624
PARAM_VALUE 0 iter->is_hole (-1)-1
PARAM_VALUE 1 itree 5990125474845216768
PARAM_VALUE 2 first_index 0-268435454
PARAM_VALUE 3 last_index 0-268435455,u64max
CAPPED_DATA 2 first_index 1
CAPPED_DATA 2 first_index 1
CAPPED_DATA 3 last_index 1
CAPPED_DATA 3 last_index 1
FUZZY_MAX 3 last_index u64max
NOCHECK_CALL

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

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