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