Documented in 1 files:

Defined in 1 files as a prototype:

Defined in 2 files as a function:

Referenced in 10 files:

Smatch caller information:

drivers/vfio/vfio_main.c __vfio_register_dev() -> device_iommu_capable()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->iommu_group->devices_kobj->kref.refcount.refs.counter s32min-s32max
PARAM_VALUE 0 dev->iommu_group->devices_kobj->release.timer.is_hard 0-1
PARAM_VALUE 0 dev->iommu_group->devices_kobj->release.timer.is_lazy 0-1
PARAM_VALUE 0 dev->iommu_group->devices_kobj->release.timer.is_queued 0-1
PARAM_VALUE 0 dev->iommu_group->devices_kobj->release.timer.is_soft 0-1
PARAM_VALUE 0 dev->iommu_group->id s32min-s32max
PARAM_VALUE 0 dev->iommu_group->kobj.state_in_sysfs 1
PARAM_VALUE 0 dev->iommu_group->kobj.state_initialized 1
PARAM_VALUE 0 *dev->iommu->priv->link->link_dev.driver_data->cis_virt (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 *dev->iommu->priv->link->link_dev.driver_data->fake_cis 0-255
PARAM_VALUE 0 *dev->iommu->priv->link->link_dev.p->deferred_probe_reason 0-255
PARAM_VALUE 0 *dev->iommu->priv->link->link_dev.p->knode_bus.n_klist (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 *dev->iommu->priv->link->link_dev.p->knode_class.n_klist (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 *dev->iommu->priv->link->link_dev.p->knode_driver.n_klist (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 *dev->iommu->priv->link->link_dev.p->knode_parent.n_klist (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 *dev->iommu->priv->smendx (-1)
PARAM_VALUE 0 *dev->iommu->priv->utlb_ctx (-1)
PARAM_VALUE 1 cap 0
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 dev->acpi_flags 0-255
HOST_DATA 0 dev->cap 0-4294967295
HOST_DATA 0 dev->cap_ptr 0-u16max
HOST_DATA 0 dev->cmd_buf_head 0-4294967295
HOST_DATA 0 dev->cmd_buf_tail 0-4294967295
HOST_DATA 0 dev->cmd_sem_paddr s64min-s64max
HOST_DATA 0 dev->cmd_sem_val s64min-s64max
HOST_DATA 0 dev->dbg_cap_offset s32min-s32max
HOST_DATA 0 dev->dbg_mmio_offset s32min-s32max
HOST_DATA 0 dev->devid 0-u16max
HOST_DATA 0 dev->features s64min-s64max
HOST_DATA 0 dev->features2 s64min-s64max
HOST_DATA 0 dev->index s32min-s32max
HOST_DATA 0 dev->int_enabled 0-1
HOST_DATA 0 dev->iommu.max_pasids 0-u32max
HOST_DATA 0 dev->iommu.ready 0-1
HOST_DATA 0 dev->irtcachedis_enabled 0-1
HOST_DATA 0 dev->lock.magic 0-4294967295
HOST_DATA 0 dev->lock.owner_cpu 0-4294967295
HOST_DATA 0 dev->lock.raw_lock.locked 0-255
HOST_DATA 0 dev->lock.raw_lock.locked_pending 0-u16max
HOST_DATA 0 dev->lock.raw_lock.pending 0-255
HOST_DATA 0 dev->lock.raw_lock.tail 0-u16max
HOST_DATA 0 dev->lock.raw_lock.val.counter s32min-s32max
HOST_DATA 0 dev->max_banks 0-255
HOST_DATA 0 dev->max_counters 0-255
HOST_DATA 0 dev->mmio_phys s64min-s64max
HOST_DATA 0 dev->mmio_phys_end s64min-s64max
HOST_DATA 0 dev->need_sync 0-1
HOST_DATA 0 dev->stored_addr_hi 0-4294967295
HOST_DATA 0 dev->stored_addr_lo 0-4294967295
HOST_DATA 0 *dev s64min-s64max

drivers/vfio/vfio_main.c vfio_file_enforced_coherent() -> device_iommu_capable()

Type Parameter Key Value
PARAM_VALUE 1 cap 3

drivers/vhost/vdpa.c vhost_vdpa_alloc_domain() -> device_iommu_capable()

Type Parameter Key Value
PARAM_VALUE 1 cap 0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte

drivers/iommu/iommufd/device.c iommufd_bind_iommu() -> device_iommu_capable()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 1 cap 0
HALF_LOCKED2 &device->dev_set->lock

drivers/iommu/iommufd/device.c iommufd_bind_iommu() -> device_iommu_capable()

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 4096-ptr_max
PARAM_VALUE 0 dev->iommu_group 4096-ptr_max
PARAM_VALUE 0 dev->iommu_group->devices_kobj->kref.refcount.refs.counter s32min-s32max
PARAM_VALUE 0 dev->iommu_group->owner_cnt 1-4294967295
PARAM_VALUE 0 *dev->iommu_group->owner (-4611686018427387904)-4611686018427387903
PARAM_VALUE 1 cap 3
HALF_LOCKED2 &device->dev_set->lock

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

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 4096-ptr_max
PARAM_VALUE 0 dev->iommu->iommu_dev->ops->hw_info 0,4734748057756364800,6417568837149130752,7401392304513224704
PARAM_VALUE 1 cap 5

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

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 4096-ptr_max
PARAM_VALUE 0 dev->iommu->iommu_dev->ops->capable 0,462993810217750528,1218212999370723328,2068158786969784320,4814261608348082176,5273877608991895552,6378217523337945088
PARAM_VALUE 0 dev->iommu->iommu_dev->ops->hw_info 0,4734748057756364800,6417568837149130752,7401392304513224704
PARAM_VALUE 1 cap 6

drivers/iommu/dma-iommu.c iommu_domain_supports_fq() -> device_iommu_capable()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->dma_ops->alloc 0,1744715142275031040,2065280936184246272,2938795245442469888
PARAM_VALUE 0 dev->dma_ops->alloc_pages_op 0,4686288359180861440,6350905364812603392,6978773206971854848
PARAM_VALUE 0 dev->dma_ops->cache_sync 0
PARAM_VALUE 0 dev->dma_ops->dma_supported 0,2528523692154392576,3617072262637035520,5023592177070743552,5276104885786021888
PARAM_VALUE 0 dev->dma_ops->free 0,4778164490434129920,7144974343242604544,7861694134817480704
PARAM_VALUE 0 dev->dma_ops->free_pages 0,239457316199952384,5196233516945883136,7413093576918179840
PARAM_VALUE 0 dev->dma_ops->get_merge_boundary 0
PARAM_VALUE 0 dev->dma_ops->get_required_mask 0,7770840938859397120
PARAM_VALUE 0 dev->dma_ops->get_sgtable 0,1322759480623644672
PARAM_VALUE 0 dev->dma_ops->map_phys 0,2506261230157742080,4169194063996235776,4848421345171935232,6326163439792029696
PARAM_VALUE 0 dev->dma_ops->map_sg 0,2118452656510775296,2518538481676259328,5872201013595766784,6630017431831871488
PARAM_VALUE 0 dev->dma_ops->max_mapping_size 0,8830639662091943936
PARAM_VALUE 0 dev->dma_ops->mmap 0,5761417605877342208,7694740394750603264
PARAM_VALUE 0 dev->dma_ops->opt_mapping_size 0
PARAM_VALUE 0 dev->dma_ops->sync_sg_for_cpu 0,4862850025765572608
PARAM_VALUE 0 dev->dma_ops->sync_sg_for_device 0,3732476178258022400
PARAM_VALUE 0 dev->dma_ops->sync_single_for_cpu 0,1155325867376779264
PARAM_VALUE 0 dev->dma_ops->sync_single_for_device 0,8781567156597239808
PARAM_VALUE 0 dev->dma_ops->unmap_phys 0,3634718672199266304,5690836758666383360,6257189515678003200,7756707427785986048
PARAM_VALUE 0 dev->dma_ops->unmap_sg 0,1256335292805263360,8472845699660435456,8676762248147066880,8920167536469053440
PARAM_VALUE 0 dev->dma_range_map 0,4096-ptr_max
PARAM_VALUE 0 dev->flags 4096-ptr_max
PARAM_VALUE 0 dev->iommu 4096-ptr_max
PARAM_VALUE 0 dev->iommu->iommu_dev->singleton_group->id s32min-s32max
PARAM_VALUE 1 cap 4
DATA_SOURCE 0 dev $0
PREEMPT_ADD
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 &of->mutex
HALF_LOCKED2 global &iommu_probe_device_lock
TYPE_LOCK (struct iommu_group)->mutex

drivers/iommu/iommufd/hw_pagetable.c iommufd_hwpt_paging_alloc() -> device_iommu_capable()

Type Parameter Key Value
PARAM_VALUE 1 cap 5
LOCK2 &ioas->mutex
TYPE_LOCK (struct iommufd_ioas)->mutex

drivers/infiniband/hw/usnic/usnic_uiom.c usnic_uiom_attach_dev_to_pd() -> device_iommu_capable()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->iommu_group 4096-ptr_max
PARAM_VALUE 1 cap 0
DATA_SOURCE 0 dev $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 &us_ibdev->usdev_lock
LOCK2 &vf->lock
TYPE_LOCK (struct usnic_ib_dev)->usdev_lock
TYPE_LOCK (struct usnic_ib_vf)->lock

drivers/vfio/group.c vfio_group_enforced_coherent() -> device_iommu_capable()

Type Parameter Key Value
PARAM_VALUE 1 cap 3
LOCK2 &group->device_lock
TYPE_LOCK (struct vfio_group)->device_lock

drivers/gpu/drm/msm/adreno/a6xx_gpu.c a6xx_create_vm() -> device_iommu_capable()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->driver_data 4096-ptr_max
PARAM_VALUE 1 cap 0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &component_mutex

drivers/thunderbolt/pci.c nhi_pci_check_iommu_pdev() -> device_iommu_capable()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 1 cap 2
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &pci_bus_sem