Documented in 1 files:

Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 9 files:

Smatch caller information:

drivers/vdpa/vdpa_user/iova_domain.c vduse_domain_clear_map() -> vhost_iotlb_itree_first()

Type Parameter Key Value
PARAM_VALUE 0 iotlb 4096-ptr_max
PARAM_VALUE 1 start 0
PARAM_VALUE 2 last u64max
BUF_SIZE 0 iotlb (-1),48
BUF_SIZE 0 iotlb (-1),48
DATA_SOURCE 0 iotlb $1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &dev->mutex
LOCK2 &domain->iotlb_lock
HALF_LOCKED2 &dev->mm->mmap_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct vduse_iova_domain)->iotlb_lock
TYPE_LOCK (struct vhost_dev)->mutex

drivers/vdpa/vdpa_user/iova_domain.c vduse_domain_free_coherent() -> vhost_iotlb_itree_first()

Type Parameter Key Value
DATA_SOURCE 1 start $2
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &domain->iotlb_lock
TYPE_LOCK (struct vduse_iova_domain)->iotlb_lock

drivers/vdpa/vdpa_user/iova_domain.c vduse_domain_get_coherent_page() -> vhost_iotlb_itree_first()

Type Parameter Key Value
PARAM_VALUE 1 start 0,4096-18446744073709547520
PARAM_VALUE 2 last 4095
PARAM_COMPARE 2 last < $1
PARAM_COMPARE 2 last == $1
BIT_INFO 1 start 0x0,0xfffffffffffff000
BIT_INFO 1 start 0x0,0xfffffffffffff000
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 start 0,4096-18446744073709547520[c]
USER_DATA 2 last 4095[c]
UNITS 1 start unit_byte
UNITS 2 last unit_byte
LOCK2 &domain->iotlb_lock
TYPE_LOCK (struct vduse_iova_domain)->iotlb_lock

drivers/vdpa/vdpa_user/iova_domain.c vduse_domain_set_map() -> vhost_iotlb_itree_first()

Type Parameter Key Value
PARAM_VALUE 0 iotlb 4096-ptr_max
PARAM_VALUE 1 start 0
PARAM_VALUE 2 last u64max
BUF_SIZE 0 iotlb (-1),48
BUF_SIZE 0 iotlb (-1),48
DATA_SOURCE 0 iotlb $1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &dev->mutex
LOCK2 &domain->iotlb_lock
HALF_LOCKED2 &dev->mm->mmap_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct vduse_iova_domain)->iotlb_lock
TYPE_LOCK (struct vhost_dev)->mutex

drivers/vdpa/vdpa_user/iova_domain.c vduse_iotlb_del_range() -> vhost_iotlb_itree_first()

Type Parameter Key Value
DATA_SOURCE 1 start $1
DATA_SOURCE 2 last $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 1 start unit_byte
UNITS 2 last unit_byte
LOCK2 &domain->iotlb_lock
HALF_LOCKED2 &dev->mutex
TYPE_LOCK (struct vduse_iova_domain)->iotlb_lock

drivers/vdpa/vdpa_user/iova_domain.c vduse_iotlb_del_range() -> vhost_iotlb_itree_first()

Type Parameter Key Value
PARAM_VALUE 0 iotlb 4096-ptr_max
PARAM_VALUE 0 iotlb->root.rb_leftmost 0,4096-ptr_max
CAPPED_DATA 1 start 1
CAPPED_DATA 1 start 1
DATA_SOURCE 1 start $1
DATA_SOURCE 2 last $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 1 start unit_byte
UNITS 2 last unit_byte
LOCK2 &domain->iotlb_lock
HALF_LOCKED2 &dev->mutex
TYPE_LOCK (struct vduse_iova_domain)->iotlb_lock

drivers/vhost/vhost.c iotlb_access_ok() -> vhost_iotlb_itree_first()

Type Parameter Key Value
PARAM_VALUE 0 iotlb 1-u64max
DATA_SOURCE 1 start $2
RX_PATH
TASK_NOT_RUNNING
UNITS 1 start unit_byte
LOCK2 &vq->mutex
TYPE_LOCK (struct vhost_virtqueue)->mutex

drivers/vhost/vhost.c translate_desc() -> vhost_iotlb_itree_first()

Type Parameter Key Value
BUF_SIZE 1 start (-1),2
DATA_SOURCE 1 start $1
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 1 start 0-u64max
USER_DATA 1 start 0-u64max
UNITS 1 start unit_byte
UNITS 2 last unit_byte
HALF_LOCKED2 &vq->mutex

drivers/vhost/vringh.c iotlb_translate() -> vhost_iotlb_itree_first()

Type Parameter Key Value
BUF_SIZE 1 start s32min-(-1),1-s32max
DATA_SOURCE 1 start $1
PREEMPT_ADD <- disables preempt
UNITS 1 start unit_byte
UNITS 2 last unit_byte
LOCK2 vrh->iotlb_lock

drivers/vhost/vdpa.c vhost_vdpa_pa_unmap() -> vhost_iotlb_itree_first()

Type Parameter Key Value
PARAM_VALUE 0 iotlb 4096-ptr_max
DATA_SOURCE 0 iotlb $1
DATA_SOURCE 1 start $2
DATA_SOURCE 2 last $3
RX_PATH
TASK_NOT_RUNNING
UNITS 1 start unit_byte
UNITS 2 last unit_byte
HALF_LOCKED2 &dev->mutex

drivers/vhost/vdpa.c vhost_vdpa_pa_unmap() -> vhost_iotlb_itree_first()

Type Parameter Key Value
PARAM_VALUE 0 iotlb 4096-ptr_max
PARAM_VALUE 0 iotlb->root.rb_leftmost 0,4096-ptr_max
CAPPED_DATA 1 start 1
CAPPED_DATA 1 start 1
DATA_SOURCE 0 iotlb $1
DATA_SOURCE 1 start $2
DATA_SOURCE 2 last $3
RX_PATH
TASK_NOT_RUNNING
UNITS 1 start unit_byte
UNITS 2 last unit_byte
HALF_LOCKED2 &dev->mutex

drivers/vhost/vdpa.c vhost_vdpa_process_iotlb_update() -> vhost_iotlb_itree_first()

Type Parameter Key Value
PARAM_VALUE 0 iotlb 4096-ptr_max
BUF_SIZE 0 iotlb 48
CAPPED_DATA 1 start 1
CAPPED_DATA 1 start 1
DATA_SOURCE 0 iotlb $1
RX_PATH
TASK_NOT_RUNNING
UNITS 1 start unit_byte
UNITS 2 last unit_byte
LOCK2 &dev->mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct vhost_dev)->mutex

drivers/vhost/vdpa.c vhost_vdpa_va_unmap() -> vhost_iotlb_itree_first()

Type Parameter Key Value
PARAM_VALUE 0 iotlb 4096-ptr_max
DATA_SOURCE 0 iotlb $1
DATA_SOURCE 1 start $2
DATA_SOURCE 2 last $3
RX_PATH
TASK_NOT_RUNNING
UNITS 1 start unit_byte
UNITS 2 last unit_byte
HALF_LOCKED2 &dev->mutex

drivers/vhost/vdpa.c vhost_vdpa_va_unmap() -> vhost_iotlb_itree_first()

Type Parameter Key Value
PARAM_VALUE 0 iotlb 4096-ptr_max
PARAM_VALUE 0 iotlb->root.rb_leftmost 0,4096-ptr_max
CAPPED_DATA 1 start 1
CAPPED_DATA 1 start 1
DATA_SOURCE 0 iotlb $1
DATA_SOURCE 1 start $2
DATA_SOURCE 2 last $3
RX_PATH
TASK_NOT_RUNNING
UNITS 1 start unit_byte
UNITS 2 last unit_byte
HALF_LOCKED2 &dev->mutex

drivers/vdpa/mlx5/net/mlx5_vnet.c set_map_data() -> vhost_iotlb_itree_first()

Type Parameter Key Value
PARAM_VALUE 0 iotlb 4096-ptr_max
PARAM_VALUE 1 start 0
PARAM_VALUE 2 last u64max
BUF_SIZE 0 iotlb (-1),48
BUF_SIZE 0 iotlb (-1),48
DATA_SOURCE 0 iotlb $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 &dev->mutex
LOCK2 &ndev->reslock
HALF_LOCKED2 &dev->mm->mmap_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct mlx5_vdpa_net)->reslock
TYPE_LOCK (struct vhost_dev)->mutex

drivers/vdpa/vdpa_user/vduse_dev.c vduse_dev_iotlb_entry() -> vhost_iotlb_itree_first()

Type Parameter Key Value
CAPPED_DATA 1 start 1
CAPPED_DATA 1 start 1
PARAM_COMPARE 1 start <= $2
PARAM_COMPARE 2 last >= $1
PARAM_COMPARE 2 last >= $1
PREEMPT_ADD <- disables preempt
USER_DATA 1 start 0-u64max
USER_DATA 2 last 0-u64max
UNITS 1 start unit_byte
UNITS 2 last unit_byte
LOCK2 &dev->domain_lock
TYPE_LOCK (struct vduse_dev)->domain_lock

drivers/vdpa/vdpa_sim/vdpa_sim.c vdpasim_set_map() -> vhost_iotlb_itree_first()

Type Parameter Key Value
PARAM_VALUE 0 iotlb 4096-ptr_max
PARAM_VALUE 1 start 0
PARAM_VALUE 2 last u64max
BUF_SIZE 0 iotlb (-1),48
BUF_SIZE 0 iotlb (-1),48
CAPPED_DATA 0 iotlb 1
DATA_SOURCE 0 iotlb $2
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &dev->mutex
LOCK2 &vdpasim->iommu_lock
HALF_LOCKED2 &dev->mm->mmap_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct vdpasim)->iommu_lock
TYPE_LOCK (struct vhost_dev)->mutex

drivers/vdpa/mlx5/core/mr.c create_user_mr() -> vhost_iotlb_itree_first()

Type Parameter Key Value
PARAM_VALUE 0 iotlb 4096-ptr_max
PARAM_VALUE 0 iotlb->root.rb_root.rb_node 1-u64max
PARAM_VALUE 1 start 0
PARAM_VALUE 2 last u64max
DATA_SOURCE 0 iotlb $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &mvdev->mres.lock
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 &ndev->reslock
TYPE_LOCK (struct mlx5_vdpa_mr_resources)->lock

drivers/vdpa/mlx5/core/mr.c dup_iotlb() -> vhost_iotlb_itree_first()

Type Parameter Key Value
PARAM_VALUE 0 iotlb 1-u64max
PARAM_VALUE 1 start 0
PARAM_VALUE 2 last u64max
DATA_SOURCE 0 iotlb $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 &mvdev->cvq.iommu_lock
HALF_LOCKED2 &mvdev->mres.lock
HALF_LOCKED2 &ndev->reslock

drivers/vdpa/mlx5/core/mr.c map_direct_mr() -> vhost_iotlb_itree_first()

Type Parameter Key Value
PARAM_VALUE 0 iotlb 4096-ptr_max
PARAM_VALUE 0 iotlb->root.rb_root.rb_node 1-u64max
DATA_SOURCE 0 iotlb $2
RX_PATH
TASK_NOT_RUNNING
UNITS 1 start unit_byte
UNITS 2 last unit_byte
LOCK2 &mvdev->mres.lock
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 &ndev->reslock
TYPE_LOCK (struct mlx5_vdpa_mr_resources)->lock

drivers/vdpa/mlx5/core/mr.c map_direct_mr() -> vhost_iotlb_itree_first()

Type Parameter Key Value
PARAM_VALUE 0 iotlb 4096-ptr_max
PARAM_VALUE 0 iotlb->root.rb_root.rb_node 1-u64max
DATA_SOURCE 0 iotlb $2
RX_PATH
TASK_NOT_RUNNING
UNITS 1 start unit_byte
UNITS 2 last unit_byte
LOCK2 &mvdev->mres.lock
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 &ndev->reslock
TYPE_LOCK (struct mlx5_vdpa_mr_resources)->lock