Defined in 1 files as a prototype:

Defined in 3 files as a function:

Referenced in 27 files:

Smatch caller information:

drivers/gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c gk20a_instobj_ctor_iommu() -> iommu_map()

Type Parameter Key Value
PARAM_VALUE 0 domain 1-u64max
PARAM_VALUE 0 domain->ops->map_pages 0
PARAM_VALUE 3 size 4096
PARAM_VALUE 4 prot 3
PARAM_VALUE 5 gfp 3264
RX_PATH
TASK_NOT_RUNNING
UNITS 3 size unit_byte
HALF_LOCKED2 &cgrp->mutex
HALF_LOCKED2 &gr->fecs.mutex
HALF_LOCKED2 &subdev->use.mutex

drivers/vhost/vdpa.c vhost_vdpa_map() -> iommu_map()

Type Parameter Key Value
PARAM_VALUE 4 prot 4-7
PARAM_VALUE 5 gfp 4197568
CAPPED_DATA 1 iova 1
CAPPED_DATA 1 iova 1
CAPPED_DATA 3 size 1
CAPPED_DATA 3 size 1
DATA_SOURCE 1 iova $2
DATA_SOURCE 2 paddr $4
DATA_SOURCE 3 size $3
BIT_INFO 4 prot 0x4,0x7
RX_PATH
TASK_NOT_RUNNING
UNITS 1 iova unit_byte
UNITS 2 paddr unit_byte
UNITS 3 size unit_byte
LOCK2 &dev->mm->mmap_lock
LOCK2 &dev->mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct mm_struct)->mmap_lock
TYPE_LOCK (struct vhost_dev)->mutex

drivers/iommu/iommufd/pages.c batch_iommu_map_small() -> iommu_map()

Type Parameter Key Value
PARAM_VALUE 0 domain 1-u64max
PARAM_VALUE 0 domain->ops->iotlb_sync 0,5867195247508373504,7564901004766887936,7723566286289076224,8743500591539974144,9062639100917301248
PARAM_VALUE 0 domain->ops->map_pages 0
PARAM_VALUE 0 domain->owner->domain_alloc_paging_flags 0,5681659404854812672,8509805123710701568,8930407207250460672,8966249347349827584
PARAM_VALUE 3 size 4096
PARAM_VALUE 5 gfp 4197568
BUF_SIZE 0 domain (-1),112
BUF_SIZE 0 domain (-1),112
BUF_SIZE 0 domain->iommufd_hwpt (-1),40
DATA_SOURCE 0 domain $0
DATA_SOURCE 1 iova $1 [m]
DATA_SOURCE 2 paddr $2 [m]
DATA_SOURCE 4 prot $4
USER_DATA 0 domain->iommufd_hwpt->pasid_compat 0-1[c]
UNITS 3 size 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 batch_to_domain() -> iommu_map()

Type Parameter Key Value
PARAM_VALUE 0 domain 1-u64max
PARAM_VALUE 0 domain->ops->iotlb_sync 0,5867195247508373504,7564901004766887936,7723566286289076224,8743500591539974144,9062639100917301248
PARAM_VALUE 0 domain->ops->map_pages 0
PARAM_VALUE 0 domain->owner->domain_alloc_paging_flags 0,5681659404854812672,8509805123710701568,8930407207250460672,8966249347349827584
PARAM_VALUE 2 paddr 0-u32max
PARAM_VALUE 5 gfp 4197568
BUF_SIZE 0 domain (-1),112
BUF_SIZE 0 domain (-1),112
BUF_SIZE 0 domain->iommufd_hwpt (-1),40
CAPPED_DATA 0 domain 1
DATA_SOURCE 0 domain $1
USER_DATA 0 domain->iommufd_hwpt->pasid_compat 0-1[c]
UNITS 1 iova unit_byte
UNITS 2 paddr unit_byte
UNITS 3 size 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/accel/amdxdna/amdxdna_iommu.c amdxdna_iommu_alloc() -> iommu_map()

Type Parameter Key Value
PARAM_VALUE 0 domain 4096-ptr_max
PARAM_VALUE 4 prot 3
PARAM_VALUE 5 gfp 3264
CAPPED_DATA 2 paddr 1
CAPPED_DATA 3 size 1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &xdna->dev_lock
HALF_LOCKED2 global &drm_unplug_srcu

sound/usb/qcom/qc_audio_offload.c uaudio_iommu_map_pa() -> iommu_map()

Type Parameter Key Value
PARAM_VALUE 1 iova 1-u64max
PARAM_VALUE 2 paddr 0,4096-18446744073709547520
PARAM_VALUE 3 size 4096
PARAM_VALUE 4 prot 7
PARAM_VALUE 5 gfp 3264
CAPPED_DATA 2 paddr 1
CAPPED_DATA 2 paddr 1
DATA_SOURCE 2 paddr $2
DATA_SOURCE 3 size $3
DATA_SOURCE 4 prot r uaudio_iommu_map_prot
FUZZY_MAX 1 iova 4096
BIT_INFO 2 paddr 0x0,0xfffffffffffff000
BIT_INFO 2 paddr 0x0,0xfffffffffffff000
UNITS 3 size unit_byte
LOCK2 &pool->lock
LOCK2 _T->lock
LOCK2 global &qdev_mutex
HALF_LOCKED2 &txn->lock

sound/usb/qcom/qc_audio_offload.c uaudio_iommu_map_xfer_buf() -> iommu_map()

Type Parameter Key Value
PARAM_VALUE 0 domain 4096-ptr_max
PARAM_VALUE 0 domain->is_iommupt 1
PARAM_VALUE 0 domain->ops->map_pages 0
PARAM_VALUE 0 domain->pgsize_bitmap 1-u64max
PARAM_VALUE 2 paddr 0,4096-18446744073709547520
PARAM_VALUE 3 size 0,4096-u32max
PARAM_VALUE 4 prot 3,7
PARAM_VALUE 5 gfp 3264
CAPPED_DATA 2 paddr 1
CAPPED_DATA 2 paddr 1
FUZZY_MAX 4 prot 3
BIT_INFO 2 paddr 0x0,0xfffffffffffff000
BIT_INFO 2 paddr 0x0,0xfffffffffffff000
BIT_INFO 3 size 0x0,0xfffff000
BIT_INFO 3 size 0x0,0xfffff000
BIT_INFO 4 prot 0x3,0x7
LOCK2 &pool->lock
LOCK2 _T->lock
LOCK2 global &qdev_mutex
HALF_LOCKED2 &txn->lock

drivers/net/wireless/ath/ath10k/snoc.c ath10k_fw_init() -> iommu_map()

Type Parameter Key Value
PARAM_VALUE 0 domain 4096-ptr_max
PARAM_VALUE 4 prot 3
PARAM_VALUE 5 gfp 3264
BUF_SIZE 0 domain (-1),112
BUF_SIZE 0 domain (-1),112
DATA_SOURCE 0 domain r iommu_paging_domain_alloc
RX_PATH
TASK_NOT_RUNNING
UNITS 1 iova unit_byte
UNITS 3 size unit_byte

drivers/iommu/dma-iommu.c __iommu_dma_map() -> iommu_map()

Type Parameter Key Value
PARAM_VALUE 0 domain 4096-9223372036854775807
PARAM_VALUE 0 domain->ops->attach_dev 0,4096-ptr_max
PARAM_VALUE 1 iova 1-u64max
PARAM_VALUE 4 prot 0,5-7,17-19,37-39,49-51
PARAM_VALUE 5 gfp 2080
CAPPED_DATA 3 size 1
CAPPED_DATA 3 size 1
DATA_SOURCE 0 domain r iommu_get_dma_domain
DATA_SOURCE 1 iova r iommu_dma_alloc_iova
DATA_SOURCE 3 size r iova_align
DATA_SOURCE 4 prot $3
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 3 size 0-12884905984[c]
USER_DATA 3 size 0,4096-4294967296[c]
NO_OVERFLOW_SIMPLE 0 domain->msi_cookie->msi_iova
UNITS 2 paddr unit_byte
UNITS 3 size unit_byte

drivers/iommu/dma-iommu.c iommu_dma_get_msi_page() -> iommu_map()

Type Parameter Key Value
PARAM_VALUE 0 domain 4096-ptr_max
PARAM_VALUE 0 domain->cookie_type 1-2
PARAM_VALUE 1 iova 1-u64max
PARAM_VALUE 4 prot 26
PARAM_VALUE 5 gfp 3264
DATA_SOURCE 0 domain $2
DATA_SOURCE 1 iova r iommu_dma_alloc_iova
DATA_SOURCE 2 paddr $1 [m]
DATA_SOURCE 3 size r cookie_msi_granule
NO_OVERFLOW_SIMPLE 0 domain->msi_cookie->msi_iova
UNITS 2 paddr unit_byte
LOCK2 _T->lock

drivers/media/platform/qcom/venus/firmware.c venus_boot_no_tz() -> iommu_map()

Type Parameter Key Value
PARAM_VALUE 1 iova 0
PARAM_VALUE 2 paddr 1-u64max
PARAM_VALUE 3 size 1-u64max
PARAM_VALUE 4 prot 35
PARAM_VALUE 5 gfp 3264
DATA_SOURCE 2 paddr $1
DATA_SOURCE 3 size $2
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &core->lock

drivers/net/ipa/ipa_mem.c ipa_imem_init() -> iommu_map()

Type Parameter Key Value
PARAM_VALUE 0 domain 1-u64max
PARAM_VALUE 1 iova 0,4096-u64max
PARAM_VALUE 2 paddr 0,4096-u64max
PARAM_VALUE 3 size 0,4096-u64max
PARAM_VALUE 4 prot 3
PARAM_VALUE 5 gfp 3264
DATA_SOURCE 0 domain r iommu_get_domain_for_dev
PARAM_COMPARE 1 iova == $2
PARAM_COMPARE 1 iova == $2
PARAM_COMPARE 2 paddr == $1
BIT_INFO 1 iova 0x0,0xfffffffffffff000
BIT_INFO 1 iova 0x0,0xfffffffffffff000
BIT_INFO 2 paddr 0x0,0xfffffffffffff000
BIT_INFO 2 paddr 0x0,0xfffffffffffff000
BIT_INFO 3 size 0x0,0xfffffffffffff000
BIT_INFO 3 size 0x0,0xfffffffffffff000
RX_PATH
TASK_NOT_RUNNING

drivers/net/ipa/ipa_mem.c ipa_smem_init() -> iommu_map()

Type Parameter Key Value
PARAM_VALUE 0 domain 1-u64max
PARAM_VALUE 1 iova 0,4096-u64max
PARAM_VALUE 2 paddr 0,4096-u64max
PARAM_VALUE 3 size 0,4096-u64max
PARAM_VALUE 4 prot 3
PARAM_VALUE 5 gfp 3264
CAPPED_DATA 3 size 1
CAPPED_DATA 3 size 1
DATA_SOURCE 0 domain r iommu_get_domain_for_dev
PARAM_COMPARE 1 iova == $2
PARAM_COMPARE 1 iova == $2
PARAM_COMPARE 2 paddr == $1
BIT_INFO 1 iova 0x0,0xfffffffffffff000
BIT_INFO 1 iova 0x0,0xfffffffffffff000
BIT_INFO 2 paddr 0x0,0xfffffffffffff000
BIT_INFO 2 paddr 0x0,0xfffffffffffff000
BIT_INFO 3 size 0x0,0xfffffffffffff000
BIT_INFO 3 size 0x0,0xfffffffffffff000
RX_PATH
TASK_NOT_RUNNING

drivers/remoteproc/remoteproc_core.c rproc_alloc_carveout() -> iommu_map()

Type Parameter Key Value
PARAM_VALUE 0 domain 1-u64max
PARAM_VALUE 1 iova 0-4294967294
PARAM_VALUE 5 gfp 3264
RX_PATH
TASK_NOT_RUNNING
UNITS 1 iova unit_byte
UNITS 3 size unit_byte
LOCK2 &rproc->lock
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct rproc)->lock

drivers/remoteproc/remoteproc_core.c rproc_handle_devmem() -> iommu_map()

Type Parameter Key Value
PARAM_VALUE 0 domain 1-u64max
PARAM_VALUE 5 gfp 3264

drivers/gpu/drm/tegra/drm.c tegra_drm_alloc() -> iommu_map()

Type Parameter Key Value
PARAM_VALUE 0 domain 1-u64max
PARAM_VALUE 4 prot 3
PARAM_VALUE 5 gfp 3264
CAPPED_DATA 2 paddr 1
CAPPED_DATA 3 size 1
CAPPED_DATA 3 size 1
DATA_SOURCE 1 iova r iova_dma_addr
DATA_SOURCE 3 size r iova_align
UNITS 3 size unit_byte
HALF_LOCKED2 &lock

drivers/vfio/vfio_iommu_type1.c vfio_iommu_map() -> iommu_map()

Type Parameter Key Value
PARAM_VALUE 0 domain->ops->map_pages 0
PARAM_VALUE 2 paddr 0,4096-18446744073709547520
PARAM_VALUE 3 size 0,4096-18446744073709547520
PARAM_VALUE 4 prot 5-7
PARAM_VALUE 5 gfp 4197568
DATA_SOURCE 1 iova $1
CAPABLE 0 14
BIT_INFO 2 paddr 0x0,0xfffffffffffff000
BIT_INFO 3 size 0x0,0xfffffffffffff000
BIT_INFO 4 prot 0x4,0x7
USER_DATA 3 size 0,4096-18446744073709543424[c]
UNITS 1 iova unit_byte
UNITS 2 paddr unit_byte
UNITS 3 size unit_byte
LOCK2 &iommu->lock
TYPE_LOCK (struct vfio_iommu)->lock

drivers/vfio/vfio_iommu_type1.c vfio_iommu_replay() -> iommu_map()

Type Parameter Key Value
PARAM_VALUE 0 domain 4096-ptr_max
PARAM_VALUE 0 domain->ops 4096-ptr_max
PARAM_VALUE 0 domain->ops->enforce_cache_coherency 0,6771135090529189888,7103604897055576064,7157214075461996544
PARAM_VALUE 0 domain->ops->map_pages 0
PARAM_VALUE 3 size 0,4096-u64max
PARAM_VALUE 4 prot 0,4-s32max
PARAM_VALUE 5 gfp 4197568
CAPPED_DATA 0 domain 1
CAPPED_DATA 0 domain->ops 1
FUZZY_MAX 3 size 4096
BIT_INFO 4 prot 0x4,0xffffffff
UNITS 1 iova unit_byte
UNITS 2 paddr unit_byte
UNITS 3 size unit_byte
LOCK2 &container->group_lock
LOCK2 &iommu->lock
HALF_LOCKED2 &group->group_lock
HALF_LOCKED2 global &vfio.iommu_drivers_lock
TYPE_LOCK (struct vfio_container)->group_lock
TYPE_LOCK (struct vfio_iommu)->lock

drivers/infiniband/hw/usnic/usnic_uiom.c usnic_uiom_map_sorted_intervals() -> iommu_map()

Type Parameter Key Value
PARAM_VALUE 0 domain->ops->map_pages 0
PARAM_VALUE 1 iova 0,4096-u64max
PARAM_VALUE 4 prot 7
PARAM_VALUE 5 gfp 2080
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 iova 0,4096-9223372036854775807[c]
UNITS 1 iova unit_byte
UNITS 2 paddr unit_byte
UNITS 3 size unit_byte
LOCK2 &pd->lock
TYPE_LOCK (struct usnic_uiom_pd)->lock

drivers/infiniband/hw/usnic/usnic_uiom.c usnic_uiom_map_sorted_intervals() -> iommu_map()

Type Parameter Key Value
PARAM_VALUE 0 domain->ops->map_pages 0
PARAM_VALUE 1 iova 0,4096-u64max
PARAM_VALUE 4 prot 7
PARAM_VALUE 5 gfp 2080
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 iova 0,4096-9223372036854775807[c]
UNITS 1 iova unit_byte
UNITS 2 paddr unit_byte
UNITS 3 size unit_byte
LOCK2 &pd->lock
TYPE_LOCK (struct usnic_uiom_pd)->lock

drivers/net/wireless/ath/ath11k/ahb.c ath11k_ahb_fw_resources_init() -> iommu_map()

Type Parameter Key Value
PARAM_VALUE 0 domain 4096-ptr_max
PARAM_VALUE 3 size 0-4294967295
PARAM_VALUE 4 prot 3
PARAM_VALUE 5 gfp 3264
BUF_SIZE 0 domain (-1),112
BUF_SIZE 0 domain (-1),112
DATA_SOURCE 0 domain r iommu_paging_domain_alloc
RX_PATH
TASK_NOT_RUNNING

drivers/net/wireless/ath/ath11k/ahb.c ath11k_ahb_fw_resources_init() -> iommu_map()

Type Parameter Key Value
PARAM_VALUE 0 domain 4096-ptr_max
PARAM_VALUE 0 domain->is_iommupt 1
PARAM_VALUE 0 domain->ops->iotlb_sync 0,4096-ptr_max
PARAM_VALUE 0 domain->ops->map_pages 0
PARAM_VALUE 0 domain->pgsize_bitmap 1-u64max
PARAM_VALUE 3 size 0-4294967295
PARAM_VALUE 4 prot 3
PARAM_VALUE 5 gfp 3264
BUF_SIZE 0 domain (-1),112
BUF_SIZE 0 domain (-1),112
DATA_SOURCE 0 domain r iommu_paging_domain_alloc
RX_PATH
TASK_NOT_RUNNING

drivers/iommu/iommu.c iommu_create_device_direct_mappings() -> iommu_map()

Type Parameter Key Value
PARAM_VALUE 0 domain 4096-ptr_max
PARAM_VALUE 0 domain->ops->attach_dev 0,4096-ptr_max
PARAM_VALUE 0 domain->ops->cache_invalidate_user 0,749766203511472128,6513038070009405440
PARAM_VALUE 0 domain->ops->enforce_cache_coherency 0,6771135090529189888,7103604897055576064,7157214075461996544
PARAM_VALUE 0 domain->ops->flush_iotlb_all 0,1409264724003270656,7012404210964918272,8586290232470175744
PARAM_VALUE 0 domain->ops->free 0,4096-ptr_max
PARAM_VALUE 0 domain->ops->iotlb_sync 0,5867195247508373504,7564901004766887936,7723566286289076224,8743500591539974144,9062639100917301248
PARAM_VALUE 0 domain->ops->iotlb_sync_map 0,6940270464466649088,6998128456535617536
PARAM_VALUE 0 domain->ops->iova_to_phys 0,1955669761700835328,2834890145562849280,4985586088501190656,6538246597230686208,8807475656703016960
PARAM_VALUE 0 domain->ops->map_pages 0
PARAM_VALUE 0 domain->ops->set_dev_pasid 0,1191539796096278528,2449680511270084608,2937103414544289792,6236364466895036416,7122971417634123776
PARAM_VALUE 0 domain->ops->set_pgtable_quirks 0
PARAM_VALUE 0 domain->ops->unmap_pages 0
PARAM_VALUE 0 domain->owner->blocked_domain 0,532766077614051328,1309262597071863808,3360818763908841472,5161617956659249152,5314750282517213184,6300359532015144960
PARAM_VALUE 0 domain->owner->capable 0,462993810217750528,1218212999370723328,2068158786969784320,4814261608348082176,5273877608991895552,6378217523337945088
PARAM_VALUE 0 domain->owner->def_domain_type 0,757924381194936320,3094419801163452416,5117618908541267968,5322346410050064384
PARAM_VALUE 0 domain->owner->default_domain 0,5314750282517213184
PARAM_VALUE 0 domain->owner->device_group 0,4096-ptr_max
PARAM_VALUE 0 domain->owner->domain_alloc_identity 0,1824181410664046592
PARAM_VALUE 0 domain->owner->domain_alloc_nested 0,3787243451007922176,5587605712304230400
PARAM_VALUE 0 domain->owner->domain_alloc_paging 0,4096-ptr_max
PARAM_VALUE 0 domain->owner->domain_alloc_paging_flags 0,5681659404854812672,8509805123710701568,8930407207250460672,8966249347349827584
PARAM_VALUE 0 domain->owner->domain_alloc_sva 0,701458021798502400,7542271727435345920
PARAM_VALUE 0 domain->owner->get_resv_regions 0,1505888117193461760,1796066543583182848,4029229782243753984,4300132076315938816,5136130486519664640,5287335354533576704,8650506204712415232
PARAM_VALUE 0 domain->owner->get_viommu_size 0,890856020400304128,8808264738914050048
PARAM_VALUE 0 domain->owner->hw_info 0,4734748057756364800,6417568837149130752,7401392304513224704
PARAM_VALUE 0 domain->owner->identity_domain 0,4096-ptr_max
PARAM_VALUE 0 domain->owner->is_attach_deferred 0,5818038523887214592,7788280626033360896
PARAM_VALUE 0 domain->owner->of_xlate 0,4096-ptr_max
PARAM_VALUE 0 domain->owner->owner 0
PARAM_VALUE 0 domain->owner->page_response 0,6092340583743537152,6863561957491752960,7827827559097483264
PARAM_VALUE 0 domain->owner->probe_device 0,4096-ptr_max
PARAM_VALUE 0 domain->owner->probe_finalize 0,4224741400359067648,6516402457225019392,8434375612550443008,8539622431235026944
PARAM_VALUE 0 domain->owner->release_device 0,4096-ptr_max
PARAM_VALUE 0 domain->owner->release_domain 0,109353748397924352,532766077614051328,3360818763908841472,5161617956659249152,8123815121812471808
PARAM_VALUE 0 domain->owner->viommu_init 0,3877766920581869568,5010379558565462016
PARAM_VALUE 0 domain->type 0-3,5-u32max
PARAM_VALUE 3 size 1-u64max
PARAM_VALUE 5 gfp 3264
BUF_SIZE 0 domain (-1),112
BUF_SIZE 0 domain (-1),112
CAPPED_DATA 0 domain 1
DATA_SOURCE 0 domain $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 &group->mutex
HALF_LOCKED2 global &iommu_probe_device_lock
TYPE_LOCK (struct iommu_group)->mutex

drivers/media/platform/rockchip/rkvdec/rkvdec-rcb.c rkvdec_allocate_rcb() -> iommu_map()

Type Parameter Key Value
PARAM_VALUE 0 domain 1-u64max
PARAM_VALUE 0 domain->ops->map_pages 0
PARAM_VALUE 1 iova 1-u64max
PARAM_VALUE 3 size 0,4096-4294967296
PARAM_VALUE 4 prot 3
PARAM_VALUE 5 gfp 0
BIT_INFO 3 size 0x0,0x1fffff000
BIT_INFO 3 size 0x0,0x1fffff000
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dmxdev->mutex
HALF_LOCKED2 q->lock

drivers/gpu/host1x/cdma.c host1x_pushbuffer_init() -> iommu_map()

Type Parameter Key Value
PARAM_VALUE 0 domain 1-u64max
PARAM_VALUE 4 prot 1
PARAM_VALUE 5 gfp 3264
CAPPED_DATA 3 size 1
DATA_SOURCE 1 iova r iova_dma_addr
DATA_SOURCE 3 size r iova_align
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &device->clients_lock