Documented in 1 files:
Defined in 1 files as a prototype:
Defined in 2 files as a function:
Referenced in 10 files:
- drivers/gpu/drm/msm/adreno/a6xx_gpu.c, line 2366
- drivers/infiniband/hw/usnic/usnic_uiom.c, line 480
- drivers/iommu/dma-iommu.c, line 658
- drivers/iommu/iommu.c, line 2020
- drivers/iommu/iommufd/device.c
- drivers/iommu/iommufd/hw_pagetable.c, line 140
- drivers/thunderbolt/pci.c, line 92
- drivers/vfio/group.c, line 853
- drivers/vfio/vfio_main.c
- drivers/vhost/vdpa.c, line 1345
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 |