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 |