Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

drivers/iommu/iommufd/io_pagetable.c iopt_area_start_byte() -> iopt_area_index()

Type Parameter Key Value
PARAM_VALUE 0 area 4096-ptr_max
DATA_SOURCE 0 area $0
LOCK2 &iopt->iova_rwsem
HALF_LOCKED2 &pages->mutex
TYPE_LOCK (struct io_pagetable)->iova_rwsem

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

Type Parameter Key Value
PARAM_VALUE 0 area 4096-ptr_max
CAPPED_DATA 0 area 1
DATA_SOURCE 0 area $0
RX_PATH
TASK_NOT_RUNNING
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 batch_from_domain() -> iopt_area_index()

Type Parameter Key Value
PARAM_VALUE 0 area 4096-ptr_max
DATA_SOURCE 0 area $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
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 batch_to_domain() -> iopt_area_index()

Type Parameter Key Value
PARAM_VALUE 0 area 4096-ptr_max
CAPPED_DATA 0 area 1
DATA_SOURCE 0 area $2
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_area_fill_domain() -> iopt_area_index()

Type Parameter Key Value
PARAM_VALUE 0 area 4096-ptr_max
DATA_SOURCE 0 area $0
LOCK2 &ioas->mutex
LOCK2 &iopt->domains_rwsem
LOCK2 &iopt->iova_rwsem
LOCK2 _T->lock
TYPE_LOCK (struct io_pagetable)->domains_rwsem
TYPE_LOCK (struct io_pagetable)->iova_rwsem
TYPE_LOCK (struct iommufd_ioas)->mutex

drivers/iommu/iommufd/pages.c iopt_area_fill_domains() -> iopt_area_index()

Type Parameter Key Value
PARAM_VALUE 0 area 4096-ptr_max
CAPPED_DATA 0 area 1
DATA_SOURCE 0 area $0
LOCK2 &iopt->domains_rwsem
LOCK2 &pages->mutex
TYPE_LOCK (struct io_pagetable)->domains_rwsem
TYPE_LOCK (struct iopt_pages)->mutex

drivers/iommu/iommufd/pages.c iopt_area_fill_domains() -> iopt_area_index()

Type Parameter Key Value
PARAM_VALUE 0 area 4096-ptr_max
CAPPED_DATA 0 area 1
DATA_SOURCE 0 area $0
LOCK2 &iopt->domains_rwsem
LOCK2 &pages->mutex
TYPE_LOCK (struct io_pagetable)->domains_rwsem
TYPE_LOCK (struct iopt_pages)->mutex

drivers/iommu/iommufd/pages.c iopt_area_fill_domains() -> iopt_area_index()

Type Parameter Key Value
PARAM_VALUE 0 area 4096-ptr_max
CAPPED_DATA 0 area 1
DATA_SOURCE 0 area $0
LOCK2 &iopt->domains_rwsem
LOCK2 &pages->mutex
TYPE_LOCK (struct io_pagetable)->domains_rwsem
TYPE_LOCK (struct iopt_pages)->mutex

drivers/iommu/iommufd/pages.c iopt_area_index_to_iova() -> iopt_area_index()

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

drivers/iommu/iommufd/pages.c iopt_area_index_to_iova() -> iopt_area_index()

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

drivers/iommu/iommufd/pages.c iopt_area_index_to_iova_last() -> iopt_area_index()

Type Parameter Key Value
PARAM_VALUE 0 area 4096-ptr_max
CAPPED_DATA 0 area 1
DATA_SOURCE 0 area $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &iopt->domains_rwsem
HALF_LOCKED2 &pages->mutex
HALF_LOCKED2 _T->lock

drivers/iommu/iommufd/pages.c iopt_area_index_to_iova_last() -> iopt_area_index()

Type Parameter Key Value
PARAM_VALUE 0 area 4096-ptr_max
CAPPED_DATA 0 area 1
DATA_SOURCE 0 area $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &iopt->domains_rwsem
HALF_LOCKED2 &pages->mutex
HALF_LOCKED2 _T->lock

drivers/iommu/iommufd/pages.c iopt_area_unfill_domains() -> iopt_area_index()

Type Parameter Key Value
PARAM_VALUE 0 area 4096-ptr_max
CAPPED_DATA 0 area->storage_domain 1
DATA_SOURCE 0 area $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 &iopt->domains_rwsem
LOCK2 &pages->mutex
TYPE_LOCK (struct io_pagetable)->domains_rwsem
TYPE_LOCK (struct iopt_pages)->mutex

drivers/iommu/iommufd/pages.c iopt_area_unfill_partial_domain() -> iopt_area_index()

Type Parameter Key Value
PARAM_VALUE 0 area 4096-ptr_max
CAPPED_DATA 0 area 1
DATA_SOURCE 0 area $0
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_revoke_notify() -> iopt_area_index()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 _T->lock
HALF_LOCKED2 &entry->dmabufs_lock
HALF_LOCKED2 &uverbs_dmabuf->mmap_entry->dmabufs_lock
HALF_LOCKED2 dmabuf->resv

drivers/iommu/iommufd/pages.c raw_pages_from_domain() -> iopt_area_index()

Type Parameter Key Value
PARAM_VALUE 0 area 4096-ptr_max
DATA_SOURCE 0 area $1
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/device.c iopt_area_start_byte() -> iopt_area_index()

Type Parameter Key Value
PARAM_VALUE 0 area 4096-ptr_max
DATA_SOURCE 0 area $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 &access->ioas_lock
LOCK2 &iopt->iova_rwsem
TYPE_LOCK (struct io_pagetable)->iova_rwsem
TYPE_LOCK (struct iommufd_access)->ioas_lock