Defined in 1 files as a prototype:

Defined in 2 files as a function:

Referenced in 4 files:

Smatch caller information:

drivers/iommu/iommufd/device.c iommufd_hwpt_attach_device() -> iommu_attach_device_pasid()

Type Parameter Key Value
PARAM_VALUE 0 domain->owner->domain_alloc_paging_flags 0,5681659404854812672,8509805123710701568,8930407207250460672,8966249347349827584
PARAM_VALUE 1 dev->iommu_group->recovery_cnt 0-4294967295
PARAM_VALUE 2 pasid 1-u32max
PARAM_VALUE 3 handle 4096-ptr_max
BUF_SIZE 0 domain (-1),112
BUF_SIZE 0 domain (-1),112
BUF_SIZE 0 domain->iommufd_hwpt (-1),40
BUF_SIZE 0 domain->owner (-1),200
BUF_SIZE 1 dev (-1),1616
BUF_SIZE 1 dev (-1),1616
DATA_SOURCE 2 pasid $2
USER_DATA 0 domain->iommufd_hwpt->pasid_compat 0-1[c]
USER_DATA 2 pasid 1-u32max
LOCK2 &igroup->lock
HALF_LOCKED2 &ioas->mutex
HALF_LOCKED2 &vdev->dev_set->lock
TYPE_LOCK (struct iommufd_group)->lock

drivers/dma/idxd/init.c idxd_enable_system_pasid() -> iommu_attach_device_pasid()

Type Parameter Key Value
PARAM_VALUE 0 domain 1-u64max
PARAM_VALUE 1 dev 4096-ptr_max
PARAM_VALUE 1 dev->bus 0,4096-ptr_max
PARAM_VALUE 1 dev->class 0,4096-ptr_max
PARAM_VALUE 1 dev->iommu 4096-ptr_max
PARAM_VALUE 1 dev->iommu->max_pasids 1-u32max
PARAM_VALUE 1 dev->iommu_group 4096-ptr_max
PARAM_VALUE 1 dev->power.request 0-4
PARAM_VALUE 1 dev->power.runtime_error s32min-(-17),(-15)-(-14),(-12),(-10)-s32max
PARAM_VALUE 1 dev->type 0,4096-ptr_max
PARAM_VALUE 2 pasid 0-s32max
PARAM_VALUE 3 handle 0
BUF_SIZE 1 dev 1616
DATA_SOURCE 0 domain r iommu_get_domain_for_dev
DATA_SOURCE 2 pasid r iommu_alloc_global_pasid
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pdev->dev.mutex
HALF_LOCKED2 &pool->lock

drivers/iommu/iommu-sva.c iommu_sva_bind_device() -> iommu_attach_device_pasid()

Type Parameter Key Value
PARAM_VALUE 0 domain 4096-ptr_max
PARAM_VALUE 1 dev 4096-ptr_max
PARAM_VALUE 1 dev->iommu->max_pasids 1-u32max
PARAM_VALUE 1 dev->iommu_group 4096-ptr_max
PARAM_VALUE 2 pasid 0-4294967294
PARAM_VALUE 3 handle 4096-ptr_max
BUF_SIZE 1 dev (-1),1616
BUF_SIZE 1 dev (-1),1616
CAPPED_DATA 1 dev->iommu->max_pasids 1
CAPPED_DATA 2 pasid 1
DATA_SOURCE 1 dev $0
RX_PATH
TASK_NOT_RUNNING
UNITS 1 dev unit_byte
LOCK2 global &iommu_sva_lock
HALF_LOCKED2 &idev->info_lock
HALF_LOCKED2 &uacce->mutex
HALF_LOCKED2 &wq->wq_lock

drivers/iommu/iommu-sva.c iommu_sva_bind_device() -> iommu_attach_device_pasid()

Type Parameter Key Value
PARAM_VALUE 0 domain 4096-ptr_max
PARAM_VALUE 0 domain->cookie_type 4
PARAM_VALUE 0 domain->iopf_handler 9139579046423990272
PARAM_VALUE 0 domain->mm 4096-ptr_max
PARAM_VALUE 0 domain->mm->iommu_mm 4096-ptr_max
PARAM_VALUE 0 domain->mm->mm_users.counter 1-s32max
PARAM_VALUE 0 domain->mm->mmap_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 domain->mm->notifier_subscriptions 1-u64max
PARAM_VALUE 0 domain->ops 4990253858506903552,6622229368631857152
PARAM_VALUE 0 domain->owner 4096-ptr_max
PARAM_VALUE 0 domain->owner->domain_alloc_sva 701458021798502400,7542271727435345920
PARAM_VALUE 0 domain->type 16
PARAM_VALUE 1 dev 4096-ptr_max
PARAM_VALUE 1 dev->iommu 4096-ptr_max
PARAM_VALUE 1 dev->iommu->iommu_dev 4096-ptr_max
PARAM_VALUE 1 dev->iommu->iommu_dev->ops 4096-ptr_max
PARAM_VALUE 1 dev->iommu->iommu_dev->ops->domain_alloc_sva 0,701458021798502400,7542271727435345920
PARAM_VALUE 1 dev->iommu->max_pasids 1-u32max
PARAM_VALUE 1 dev->iommu_group 4096-ptr_max
PARAM_VALUE 2 pasid 0-4294967294
PARAM_VALUE 3 handle 4096-ptr_max
BUF_SIZE 0 domain 112
BUF_SIZE 1 dev (-1),1616
BUF_SIZE 1 dev (-1),1616
CAPPED_DATA 1 dev->iommu->max_pasids 1
CAPPED_DATA 2 pasid 1
DATA_SOURCE 0 domain r iommu_sva_domain_alloc
DATA_SOURCE 1 dev $0
RX_PATH
TASK_NOT_RUNNING
UNITS 1 dev unit_byte
LOCK2 global &iommu_sva_lock
HALF_LOCKED2 &idev->info_lock
HALF_LOCKED2 &uacce->mutex
HALF_LOCKED2 &wq->wq_lock