Defined in 1 files as a function:

Referenced in 3 files:

Smatch caller information:

drivers/iommu/iommufd/io_pagetable.c iopt_area_split() -> iopt_area_start_byte()

Type Parameter Key Value
PARAM_VALUE 0 area 4096-ptr_max
DATA_SOURCE 0 area $0
LOCK2 &iopt->iova_rwsem
TYPE_LOCK (struct io_pagetable)->iova_rwsem

drivers/iommu/iommufd/io_pagetable.c iopt_area_split() -> iopt_area_start_byte()

Type Parameter Key Value
PARAM_VALUE 0 area 4096-ptr_max
DATA_SOURCE 0 area $0
PARAM_COMPARE 0 area->node.start == $1
PARAM_COMPARE 1 iova == $0->node.start
LOCK2 &iopt->iova_rwsem
LOCK2 &pages->mutex
TYPE_LOCK (struct io_pagetable)->iova_rwsem
TYPE_LOCK (struct iopt_pages)->mutex

drivers/iommu/iommufd/io_pagetable.c iopt_area_split() -> iopt_area_start_byte()

Type Parameter Key Value
PARAM_VALUE 0 area 4096-ptr_max
CAPPED_DATA 0 area->pages->npages 1
DATA_SOURCE 0 area $0
LOCK2 &iopt->iova_rwsem
LOCK2 &pages->mutex
TYPE_LOCK (struct io_pagetable)->iova_rwsem
TYPE_LOCK (struct iopt_pages)->mutex

drivers/iommu/iommufd/io_pagetable.c iopt_get_pages() -> iopt_area_start_byte()

Type Parameter Key Value
PARAM_VALUE 0 area 4096-ptr_max
USER_DATA 1 iova 0-18446744073709551614[c][u]
UNITS 1 iova unit_byte
LOCK2 &iopt->iova_rwsem
TYPE_LOCK (struct io_pagetable)->iova_rwsem

drivers/iommu/iommufd/device.c iommufd_access_rw() -> iopt_area_start_byte()

Type Parameter Key Value
PARAM_VALUE 0 area 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 1 iova 0-u64max[c]
USER_DATA 1 iova 0-u64max
UNITS 1 iova unit_byte
LOCK2 &access->ioas_lock
LOCK2 &iopt->iova_rwsem
TYPE_LOCK (struct io_pagetable)->iova_rwsem
TYPE_LOCK (struct iommufd_access)->ioas_lock

drivers/iommu/iommufd/device.c iopt_area_contig_is_aligned() -> iopt_area_start_byte()

Type Parameter Key Value
PARAM_VALUE 0 area 4096-ptr_max
USER_DATA 1 iova 0-u64max
UNITS 1 iova unit_byte
LOCK2 &access->ioas_lock
LOCK2 &iopt->iova_rwsem
HALF_LOCKED2 &staccess->lock
HALF_LOCKED2 &vgpu->cache_lock
TYPE_LOCK (struct io_pagetable)->iova_rwsem
TYPE_LOCK (struct iommufd_access)->ioas_lock

drivers/iommu/iommufd/device.c iopt_area_contig_is_aligned() -> iopt_area_start_byte()

Type Parameter Key Value
PARAM_VALUE 0 area 4096-ptr_max
LOCK2 &access->ioas_lock
LOCK2 &iopt->iova_rwsem
HALF_LOCKED2 &staccess->lock
HALF_LOCKED2 &vgpu->cache_lock
TYPE_LOCK (struct io_pagetable)->iova_rwsem
TYPE_LOCK (struct iommufd_access)->ioas_lock

drivers/iommu/iommufd/device.c iopt_area_iova_to_index() -> iopt_area_start_byte()

Type Parameter Key Value
PARAM_VALUE 0 area 4096-ptr_max
DATA_SOURCE 0 area $0
DATA_SOURCE 1 iova $1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 iova 0-u64max
UNITS 1 iova unit_byte
LOCK2 &access->ioas_lock
LOCK2 &iopt->iova_rwsem
HALF_LOCKED2 &staccess->lock
TYPE_LOCK (struct io_pagetable)->iova_rwsem
TYPE_LOCK (struct iommufd_access)->ioas_lock