Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

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

Type Parameter Key Value
PARAM_VALUE 0 area 4096-ptr_max
PARAM_VALUE 0 area->iopt->disable_large_pages 0-1
PARAM_VALUE 0 area->iopt->iova_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 area->iopt->iova_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 area->pages->source_mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 area->pages->source_mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 1 domain->owner->domain_alloc_paging_flags 0,5681659404854812672,8509805123710701568,8930407207250460672,8966249347349827584
BUF_SIZE 1 domain (-1),112
BUF_SIZE 1 domain (-1),112
BUF_SIZE 1 domain->iommufd_hwpt (-1),40
CAPPED_DATA 0 area 1
DATA_SOURCE 0 area $0
DATA_SOURCE 1 domain $2
DATA_SOURCE 3 last_index $3
PARAM_COMPARE 0 area->pages_node.start == $2
PARAM_COMPARE 2 start_index == $0->pages_node.start
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 domain->iommufd_hwpt->pasid_compat 0-1[c]
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_unfill_domain() -> iopt_area_unmap_domain_range()

Type Parameter Key Value
PARAM_VALUE 0 area 4096-ptr_max
PARAM_VALUE 0 area->iopt->disable_large_pages 0-1
PARAM_VALUE 0 area->iopt->iova_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 area->iopt->iova_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 area->pages->source_mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 area->pages->source_mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 1 domain->owner->domain_alloc_paging_flags 0,5681659404854812672,8509805123710701568,8930407207250460672,8966249347349827584
BUF_SIZE 1 domain (-1),112
BUF_SIZE 1 domain (-1),112
BUF_SIZE 1 domain->iommufd_hwpt (-1),40
CAPPED_DATA 0 area 1
DATA_SOURCE 0 area $0
DATA_SOURCE 1 domain $2
DATA_SOURCE 3 last_index $3
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 domain->iommufd_hwpt->pasid_compat 0-1[c]
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_domains() -> iopt_area_unmap_domain_range()

Type Parameter Key Value
PARAM_VALUE 0 area 4096-ptr_max
PARAM_VALUE 0 area->iopt 4096-ptr_max
PARAM_VALUE 0 area->iopt->disable_large_pages 0-1
PARAM_VALUE 0 area->iopt->domains.xa_head 1-u64max
PARAM_VALUE 1 domain 1-u64max
PARAM_VALUE 1 domain->ops->iotlb_sync 0,4096-ptr_max
CAPPED_DATA 0 area 1
DATA_SOURCE 0 area $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_unfill_domains() -> iopt_area_unmap_domain_range()

Type Parameter Key Value
PARAM_VALUE 0 area 4096-ptr_max
PARAM_VALUE 0 area->iopt->iova_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 area->iopt->iova_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 area->storage_domain 1-u64max
PARAM_VALUE 1 domain 1-u64max
PARAM_VALUE 1 domain->ops->iotlb_sync 0,4096-ptr_max
CAPPED_DATA 0 area->storage_domain 1
DATA_SOURCE 0 area $0
PARAM_COMPARE 0 area->storage_domain != $1
PARAM_COMPARE 1 domain != $0->storage_domain
RX_PATH
TASK_NOT_RUNNING
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_unpin_domain() -> iopt_area_unmap_domain_range()

Type Parameter Key Value
PARAM_VALUE 0 area 4096-ptr_max
PARAM_VALUE 0 area->iopt->iova_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 area->iopt->iova_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 area->pages->source_mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 area->pages->source_mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 1 domain->ops->iotlb_sync 0,4096-ptr_max
PARAM_VALUE 1 domain->owner->domain_alloc_paging_flags 0,5681659404854812672,8509805123710701568,8930407207250460672,8966249347349827584
BUF_SIZE 1 domain (-1),112
BUF_SIZE 1 domain (-1),112
BUF_SIZE 1 domain->iommufd_hwpt (-1),40
CAPPED_DATA 2 start_index 1
DATA_SOURCE 0 area $1
DATA_SOURCE 1 domain $3
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 domain->iommufd_hwpt->pasid_compat 0-1[c]
UNITS 2 start_index unit_byte
UNITS 3 last_index unit_byte
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_unmap_domain_range()

Type Parameter Key Value
PARAM_VALUE 0 area 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 _T->lock
HALF_LOCKED2 &entry->dmabufs_lock
HALF_LOCKED2 &uverbs_dmabuf->mmap_entry->dmabufs_lock
HALF_LOCKED2 dmabuf->resv