Documented in 1 files:
Defined in 1 files as a prototype:
Defined in 1 files as a function:
Referenced in 9 files:
- drivers/vdpa/mlx5/core/mr.c
- drivers/vdpa/mlx5/net/mlx5_vnet.c, line 3364
- drivers/vdpa/vdpa_sim/vdpa_sim.c, line 647
- drivers/vdpa/vdpa_user/iova_domain.c
- drivers/vdpa/vdpa_user/vduse_dev.c, line 1447
- drivers/vhost/iotlb.c, line 218
- drivers/vhost/vdpa.c
- drivers/vhost/vhost.c
- drivers/vhost/vringh.c, line 1060
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 |