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

Type Parameter Key Value
PARAM_VALUE 0 pfns 8717662312254873600
PARAM_VALUE 1 pages 4096-ptr_max
PARAM_VALUE 1 pages->source_mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 1 pages->source_mm->mmap_lock.first_waiter->type 0-1
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_first()

Type Parameter Key Value
PARAM_VALUE 0 pfns 6270772229982597120
PARAM_VALUE 1 pages 4096-ptr_max
PARAM_VALUE 1 pages->mutex.dep_map->name 0-255
PARAM_VALUE 1 pages->mutex.first_waiter 0,4096-ptr_max
PARAM_VALUE 1 pages->mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 1 pages->mutex.osq.tail.counter 0-s32max
PARAM_VALUE 1 pages->mutex.wait_lock.dep_map->name 0-255
PARAM_VALUE 1 pages->mutex.wait_lock.owner (-1)
PARAM_VALUE 1 pages->mutex.wait_lock.owner_cpu u32max
PARAM_VALUE 1 pages->source_mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 1 pages->source_mm->mmap_lock.first_waiter->type 0-1
CAPPED_DATA 1 &pages->mutex 1
DATA_SOURCE 1 pages $1
LOCK2 &iopt->domains_rwsem
LOCK2 1 &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_first()

Type Parameter Key Value
PARAM_VALUE 0 pfns 5386030719981473792
PARAM_VALUE 1 pages 4096-ptr_max
PARAM_VALUE 1 pages->mutex.dep_map->name 0-255
PARAM_VALUE 1 pages->mutex.first_waiter 0,4096-ptr_max
PARAM_VALUE 1 pages->mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 1 pages->mutex.osq.tail.counter 0-s32max
PARAM_VALUE 1 pages->mutex.wait_lock.dep_map->name 0-255
PARAM_VALUE 1 pages->mutex.wait_lock.owner (-1)
PARAM_VALUE 1 pages->mutex.wait_lock.owner_cpu u32max
PARAM_VALUE 1 pages->source_mm->exe_file->f_cred->process_keyring->user->qnbytes s32min-s32max
PARAM_VALUE 1 pages->source_mm->exe_file->f_cred->process_keyring->user->qnkeys s32min-s32max
PARAM_VALUE 1 pages->source_mm->exe_file->f_cred->request_key_auth->user->qnbytes s32min-s32max
PARAM_VALUE 1 pages->source_mm->exe_file->f_cred->request_key_auth->user->qnkeys s32min-s32max
PARAM_VALUE 1 pages->source_mm->exe_file->f_cred->session_keyring->user->qnbytes s32min-s32max
PARAM_VALUE 1 pages->source_mm->exe_file->f_cred->session_keyring->user->qnkeys s32min-s32max
PARAM_VALUE 1 pages->source_mm->exe_file->f_cred->thread_keyring->user->qnbytes s32min-s32max
PARAM_VALUE 1 pages->source_mm->exe_file->f_cred->thread_keyring->user->qnkeys s32min-s32max
PARAM_VALUE 1 pages->source_mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 1 pages->source_mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 1 pages->type 0-1,3-u32max
CAPPED_DATA 1 &pages->mutex 1
DATA_SOURCE 1 pages $0
DATA_SOURCE 2 start_index $1
DATA_SOURCE 3 last_index $2
RX_PATH
TASK_NOT_RUNNING
UNITS 2 start_index unit_page
UNITS 3 last_index unit_page
LOCK2 &access->ioas_lock
LOCK2 &iopt->iova_rwsem
LOCK2 1 &pages->mutex
TYPE_LOCK (struct io_pagetable)->iova_rwsem
TYPE_LOCK (struct iommufd_access)->ioas_lock
TYPE_LOCK (struct iopt_pages)->mutex