Defined in 1 files as a function:
Referenced in 1 files:
Smatch caller information:
drivers/iommu/iommufd/pages.c iopt_area_fill_domain() -> pfn_reader_destroy()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pfns | 8717662312254873600 |
| PARAM_VALUE | 0 | pfns->batch.array_size | 0-333333 |
| PARAM_VALUE | 0 | pfns->batch.kind | 0-1 |
| PARAM_VALUE | 0 | pfns->batch.pfns | 4096-ptr_max |
| PARAM_VALUE | 0 | pfns->dmabuf.phys.len | 1-u64max |
| PARAM_VALUE | 0 | pfns->pages | 4096-ptr_max |
| PARAM_VALUE | 0 | pfns->span.is_used | (-1)-2 |
| PARAM_VALUE | 0 | pfns->user.gup_flags | 256-257 |
| PARAM_VALUE | 0 | pfns->user.upages_start | 0 |
| NOCHECK_CALL | |||
| 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() -> pfn_reader_destroy()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pfns | 6270772229982597120 |
| PARAM_VALUE | 0 | pfns->batch.array_size | 0-333333 |
| PARAM_VALUE | 0 | pfns->batch.kind | 0-1 |
| PARAM_VALUE | 0 | pfns->batch.pfns | 4096-ptr_max |
| PARAM_VALUE | 0 | pfns->dmabuf.phys.len | 1-u64max |
| PARAM_VALUE | 0 | pfns->pages | 4096-ptr_max |
| PARAM_VALUE | 0 | pfns->span.is_used | (-1)-2 |
| PARAM_VALUE | 0 | pfns->user.gup_flags | 256-257 |
| PARAM_VALUE | 0 | pfns->user.upages_start | 0 |
| NOCHECK_CALL | |||
| 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() -> pfn_reader_destroy()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pfns | 6270772229982597120 |
| PARAM_VALUE | 0 | pfns->batch.array_size | 0-333333 |
| PARAM_VALUE | 0 | pfns->batch.kind | 0-1 |
| PARAM_VALUE | 0 | pfns->batch.pfns | 4096-ptr_max |
| PARAM_VALUE | 0 | pfns->dmabuf.phys.len | 1-u64max |
| PARAM_VALUE | 0 | pfns->pages | 4096-ptr_max |
| PARAM_VALUE | 0 | pfns->span.is_used | (-1)-2 |
| PARAM_VALUE | 0 | pfns->user.gup_flags | 256-257 |
| PARAM_VALUE | 0 | pfns->user.upages_start | 0 |
| NOCHECK_CALL | |||
| 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_pages_rw_slow() -> pfn_reader_destroy()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pfns | 5386030719981473792 |
| PARAM_VALUE | 0 | pfns->batch.array_size | 0-333333 |
| PARAM_VALUE | 0 | pfns->batch.kind | 0-1 |
| PARAM_VALUE | 0 | pfns->batch.pfns | 4096-ptr_max |
| PARAM_VALUE | 0 | pfns->dmabuf.phys.len | 1-u64max |
| PARAM_VALUE | 0 | pfns->pages | 4096-ptr_max |
| PARAM_VALUE | 0 | pfns->span.is_used | (-1)-2 |
| PARAM_VALUE | 0 | pfns->user.gup_flags | 256-257 |
| PARAM_VALUE | 0 | pfns->user.upages_start | 0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &access->ioas_lock | ||
| LOCK2 | &iopt->iova_rwsem | ||
| LOCK2 | &pages->mutex | ||
| 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_first() -> pfn_reader_destroy()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | pfns | 5386030719981473792,6270772229982597120,8717662312254873600 |
| PARAM_VALUE | 0 | pfns->batch.array_size | 0-333333 |
| PARAM_VALUE | 0 | pfns->batch.kind | 0-1 |
| PARAM_VALUE | 0 | pfns->batch.npfns | 4096-ptr_max |
| PARAM_VALUE | 0 | pfns->batch.pfns | 4096-ptr_max |
| PARAM_VALUE | 0 | pfns->dmabuf.phys.len | 1-u64max |
| PARAM_VALUE | 0 | pfns->pages | 4096-ptr_max |
| PARAM_VALUE | 0 | pfns->pages->source_mm->mmap_lock.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | pfns->pages->source_mm->mmap_lock.first_waiter->type | 0-1 |
| PARAM_VALUE | 0 | pfns->span.is_used | (-1)-2 |
| PARAM_VALUE | 0 | pfns->user.gup_flags | 256-257 |
| PARAM_VALUE | 0 | pfns->user.ufolios | 0,4096-ptr_max |
| PARAM_VALUE | 0 | pfns->user.upages | 0,4096-ptr_max |
| PARAM_VALUE | 0 | pfns->user.upages_start | 0 |
| CAPPED_DATA | 0 | pfns->batch.array_size | 1 |
| DATA_SOURCE | 0 | pfns | $0 |
| 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 |