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_double_span_iter_next()

Type Parameter Key Value
PARAM_VALUE 0 iter 8300126908536217600
PARAM_VALUE 0 iter->is_used 0-2
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 iter->start_hole
LOCK2 &iopt->iova_rwsem
TYPE_LOCK (struct io_pagetable)->iova_rwsem

drivers/iommu/iommufd/pages.c __iopt_area_unfill_domain() -> interval_tree_double_span_iter_next()

Type Parameter Key Value
PARAM_VALUE 0 iter 2643264386115555328
PARAM_VALUE 0 iter->is_used 0-2
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &iopt->domains_rwsem
HALF_LOCKED2 &ioas->mutex
HALF_LOCKED2 &iopt->iova_rwsem
HALF_LOCKED2 &pages->mutex
HALF_LOCKED2 _T->lock
TYPE_LOCK (struct io_pagetable)->domains_rwsem

drivers/iommu/iommufd/pages.c iopt_pages_fill_xarray() -> interval_tree_double_span_iter_next()

Type Parameter Key Value
PARAM_VALUE 0 iter 4603873063127990272
PARAM_VALUE 0 iter->is_used 0-2
NOCHECK_CALL
LOCK2 &access->ioas_lock
LOCK2 &iopt->iova_rwsem
LOCK2 &pages->mutex
HALF_LOCKED2 &staccess->lock
HALF_LOCKED2 &vgpu->cache_lock
TYPE_LOCK (struct io_pagetable)->iova_rwsem
TYPE_LOCK (struct iommufd_access)->ioas_lock
TYPE_LOCK (struct iopt_pages)->mutex

drivers/iommu/iommufd/pages.c iopt_pages_unfill_xarray() -> interval_tree_double_span_iter_next()

Type Parameter Key Value
PARAM_VALUE 0 iter 4916799166596313088
PARAM_VALUE 0 iter->is_used 0-2
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
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/iommufd/pages.c pfn_reader_next() -> interval_tree_double_span_iter_next()

Type Parameter Key Value
PARAM_VALUE 0 iter 5386030719981473800,6270772229982597128,8717662312254873608
PARAM_VALUE 0 iter->is_used (-1)-2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &access->ioas_lock
HALF_LOCKED2 &ioas->mutex
HALF_LOCKED2 &iopt->domains_rwsem
HALF_LOCKED2 &iopt->iova_rwsem
HALF_LOCKED2 &pages->mutex
HALF_LOCKED2 _T->lock

drivers/iommu/iommufd/pages.c pfn_reader_unpin() -> interval_tree_double_span_iter_next()

Type Parameter Key Value
PARAM_VALUE 0 iter 2272847582810320896
PARAM_VALUE 0 iter->is_used 0-2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &access->ioas_lock
HALF_LOCKED2 &iopt->iova_rwsem
HALF_LOCKED2 &pages->mutex