Defined in 1 files as a function:

Referenced in 5 files:

Smatch caller information:

drivers/iommu/iommufd/device.c iommufd_get_hw_info() -> dev_iommu_ops()

Type Parameter Key Value

drivers/iommu/iommufd/hw_pagetable.c get_iommu_ops() -> dev_iommu_ops()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->iommu 1-u64max
BUF_SIZE 0 dev (-1),1616
BUF_SIZE 0 dev (-1),1616
HALF_LOCKED2 &ioas->mutex

drivers/iommu/iommu-sva.c iommu_sva_domain_alloc() -> dev_iommu_ops()

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

drivers/iommu/io-pgfault.c find_fault_handler() -> dev_iommu_ops()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
DATA_SOURCE 0 dev $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &iommu->iopf_lock

drivers/iommu/io-pgfault.c iopf_error_response() -> dev_iommu_ops()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
DATA_SOURCE 0 dev $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &iommu->iopf_lock

drivers/iommu/io-pgfault.c iopf_group_response() -> dev_iommu_ops()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &fault->mutex
HALF_LOCKED2 &igroup->lock

drivers/iommu/io-pgfault.c iopf_queue_add_device() -> dev_iommu_ops()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
BUF_SIZE 0 dev (-1)-0,24-s32max
BUF_SIZE 0 dev (-1)-0,24-s32max
BUF_SIZE 0 dev->bus (-1),168
BUF_SIZE 0 dev->dma_mask (-1),8
BUF_SIZE 0 dev->dma_parms (-1),16
BUF_SIZE 0 dev->groups (-1),16
BUF_SIZE 0 dev->init_name (-1),14
BUF_SIZE 0 dev->parent (-1),1616
CAPPED_DATA 0 dev 1
DATA_SOURCE 0 dev $1
STR_LEN 0 dev->parent (-1),4-5,13
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 dev->class 0-16777215
HOST_DATA 0 dev->flags 0-u32max
HOST_DATA 0 dev->iommu.max_pasids 0-u32max
NO_OVERFLOW_SIMPLE 0 dev->cma_area->available_count
HALF_LOCKED2 &dev_data->mutex
HALF_LOCKED2 0 &dev->mutex

drivers/iommu/io-pgfault.c iopf_queue_remove_device() -> dev_iommu_ops()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
BUF_SIZE 0 dev (-1)-0,24-s32max
BUF_SIZE 0 dev (-1)-0,24-s32max
BUF_SIZE 0 dev->bus (-1),168
BUF_SIZE 0 dev->dma_mask (-1),8
BUF_SIZE 0 dev->dma_parms (-1),16
BUF_SIZE 0 dev->groups (-1),16
BUF_SIZE 0 dev->init_name (-1),14
BUF_SIZE 0 dev->parent (-1),1616
DATA_SOURCE 0 dev $1
STR_LEN 0 dev->parent (-1),4-5,13
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 dev->class 0-16777215
HOST_DATA 0 dev->flags 0-u32max
HOST_DATA 0 dev->iommu.max_pasids 0-u32max
NO_OVERFLOW_SIMPLE 0 dev->cma_area->available_count
HALF_LOCKED2 &dev_data->mutex
HALF_LOCKED2 &group->mutex
HALF_LOCKED2 0 &dev->mutex

drivers/iommu/iommu.c __iommu_alloc_identity_domain() -> dev_iommu_ops()

Type Parameter Key Value
DATA_SOURCE 0 dev $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 &group->mutex
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 global &iommu_probe_device_lock
TYPE_LOCK (struct iommu_group)->mutex

drivers/iommu/iommu.c __iommu_attach_group() -> dev_iommu_ops()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->iommu 4096-ptr_max
PARAM_VALUE 0 dev->iommu->iommu_dev 1-u64max
DATA_SOURCE 0 dev r iommu_group_first_dev
RX_PATH
TASK_NOT_RUNNING
LOCK2 &group->mutex
HALF_LOCKED2 &igroup->lock
TYPE_LOCK (struct iommu_group)->mutex

drivers/iommu/iommu.c __iommu_group_alloc_blocking_domain() -> dev_iommu_ops()

Type Parameter Key Value
DATA_SOURCE 0 dev r iommu_group_first_dev
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &group->mutex
HALF_LOCKED2 _T->lock

drivers/iommu/iommu.c __iommu_paging_domain_alloc_flags() -> dev_iommu_ops()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->iommu 4096-ptr_max
PARAM_VALUE 0 dev->iommu->iommu_dev 1-u64max
BUF_SIZE 0 dev (-1),1616
BUF_SIZE 0 dev (-1),1616
BUF_SIZE 0 dev->dma_parms (-1),16
DATA_SOURCE 0 dev $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte
HALF_LOCKED2 &group->mutex

drivers/iommu/iommu.c device_iommu_capable() -> dev_iommu_ops()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->iommu 4096-ptr_max
PARAM_VALUE 0 dev->iommu->iommu_dev 1-u64max
BUF_SIZE 0 dev (-1),1616
BUF_SIZE 0 dev (-1),1616
DATA_SOURCE 0 dev $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte
HALF_LOCKED2 &group->device_lock
HALF_LOCKED2 &group->mutex
HALF_LOCKED2 &ioas->mutex
HALF_LOCKED2 &us_ibdev->usdev_lock
HALF_LOCKED2 &vf->lock

drivers/iommu/iommu.c iommu_attach_device_pasid() -> dev_iommu_ops()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
BUF_SIZE 0 dev (-1),1616
BUF_SIZE 0 dev (-1),1616
DATA_SOURCE 0 dev $1
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte
HALF_LOCKED2 &igroup->lock
HALF_LOCKED2 global &iommu_sva_lock

drivers/iommu/iommu.c iommu_deinit_device() -> dev_iommu_ops()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->iommu 1-u64max
PARAM_VALUE 0 dev->iommu->iommu_dev 1-u64max
BUF_SIZE 0 dev (-1)-0,24-s32max
BUF_SIZE 0 dev (-1)-0,24-s32max
BUF_SIZE 0 dev->bus (-1),168
BUF_SIZE 0 dev->dma_mask (-1),8
BUF_SIZE 0 dev->dma_parms (-1),16
BUF_SIZE 0 dev->groups (-1),16
BUF_SIZE 0 dev->init_name (-1),14
BUF_SIZE 0 dev->parent (-1),1616
CAPPED_DATA 0 dev 1
DATA_SOURCE 0 dev $0
STR_LEN 0 dev->parent (-1),4-5,13
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 dev->flags 4096-u32max
HOST_DATA 0 dev->iommu.max_pasids 0-u32max
UNITS 0 dev unit_byte
LOCK2 &group->mutex
HALF_LOCKED2 global &iommu_probe_device_lock
HALF_LOCKED2 0 &dev->mutex
TYPE_LOCK (struct iommu_group)->mutex

drivers/iommu/iommu.c iommu_get_def_domain_type() -> dev_iommu_ops()

Type Parameter Key Value
DATA_SOURCE 0 dev $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte
LOCK2 &group->mutex
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 global &iommu_probe_device_lock
TYPE_LOCK (struct iommu_group)->mutex

drivers/iommu/iommu.c iommu_get_resv_regions() -> dev_iommu_ops()

Type Parameter Key Value
BUF_SIZE 0 dev (-1),1616
BUF_SIZE 0 dev (-1),1616
DATA_SOURCE 0 dev $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte
HALF_LOCKED2 &group->mutex
HALF_LOCKED2 &igroup->lock
HALF_LOCKED2 &iopt->iova_rwsem

drivers/iommu/iommu.c iommu_group_alloc_default_domain() -> dev_iommu_ops()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &group->mutex
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 global &iommu_probe_device_lock
TYPE_LOCK (struct iommu_group)->mutex

drivers/iommu/iommu.c iommu_group_do_probe_finalize() -> dev_iommu_ops()

Type Parameter Key Value
DATA_SOURCE 0 dev $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte

drivers/iommu/iommu.c iommu_probe_device() -> dev_iommu_ops()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
BUF_SIZE 0 dev (-1)-0,4,16,24-s32max
BUF_SIZE 0 dev (-1)-0,4,16,24-s32max
BUF_SIZE 0 dev->bus (-1),168
BUF_SIZE 0 dev->dma_mask (-1),8
BUF_SIZE 0 dev->dma_parms (-1),16
BUF_SIZE 0 dev->groups (-1),16
BUF_SIZE 0 dev->init_name (-1),14
BUF_SIZE 0 dev->parent (-1),1616
CAPPED_DATA 0 dev 1
DATA_SOURCE 0 dev $0
STR_LEN 0 dev->parent (-1),4-5,13
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 dev->flags 0-u32max
HOST_DATA 0 dev->iommu.max_pasids 0-u32max
NO_OVERFLOW_SIMPLE 0 dev->dma_io_tlb_mem->nslabs
UNITS 0 dev unit_byte
HALF_LOCKED2 &adev->physical_node_lock
HALF_LOCKED2 0 &dev->mutex

drivers/iommu/iommu.c iommu_remove_dev_pasid() -> dev_iommu_ops()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->iommu 4096-ptr_max
DATA_SOURCE 0 dev $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte
HALF_LOCKED2 &group->mutex
HALF_LOCKED2 _T->lock

drivers/iommu/iommu.c iommu_replace_device_pasid() -> dev_iommu_ops()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
BUF_SIZE 0 dev (-1),1616
BUF_SIZE 0 dev (-1),1616
DATA_SOURCE 0 dev $1
LOCK2 &igroup->lock
HALF_LOCKED2 &ioas->mutex
HALF_LOCKED2 &vdev->dev_set->lock
TYPE_LOCK (struct iommufd_group)->lock