Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 4 files:

Smatch caller information:

drivers/vhost/vhost.c vhost_process_iotlb_msg() -> vhost_iotlb_add_range()

Type Parameter Key Value
PARAM_VALUE 0 iotlb 1-u64max
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/vhost.c vhost_set_memory() -> vhost_iotlb_add_range()

Type Parameter Key Value
PARAM_VALUE 0 iotlb 4096-ptr_max
PARAM_VALUE 4 perm 3
BUF_SIZE 0 iotlb 48
DATA_SOURCE 0 iotlb r iotlb_alloc
USER_DATA 1 start 0-u64max
USER_DATA 3 addr 0-u64max
HALF_LOCKED2 &d->mutex
HALF_LOCKED2 &n->dev.mutex
HALF_LOCKED2 &vs->dev.mutex
HALF_LOCKED2 &vsock->dev.mutex
TYPE_LOCK (struct vhost_dev)->mutex

drivers/vdpa/vdpa_sim/vdpa_sim.c vdpasim_create() -> vhost_iotlb_add_range()

Type Parameter Key Value
PARAM_VALUE 0 iotlb 4096-ptr_max
PARAM_VALUE 1 start 0
PARAM_VALUE 2 last u64max
PARAM_VALUE 3 addr 0
PARAM_VALUE 4 perm 3
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &vdpa_dev_lock
HALF_LOCKED2 &dev->lock
HALF_LOCKED2 &devlink->lock
HALF_LOCKED2 &net->xfrm.xfrm_cfg_mutex
HALF_LOCKED2 global &audit_cmd_mutex.lock
HALF_LOCKED2 global &cb_lock
HALF_LOCKED2 global &crypto_cfg_mutex
HALF_LOCKED2 global &dpll_lock
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &net_dm_mutex
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &rx_queue_mutex
HALF_LOCKED2 rcu_read

drivers/vdpa/vdpa_sim/vdpa_sim.c vdpasim_do_reset() -> vhost_iotlb_add_range()

Type Parameter Key Value
PARAM_VALUE 0 iotlb 4096-ptr_max
PARAM_VALUE 1 start 0
PARAM_VALUE 2 last u64max
PARAM_VALUE 3 addr 0
PARAM_VALUE 4 perm 3
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &vdpa->cf_lock
LOCK2 &vdpasim->iommu_lock
LOCK2 &vdpasim->mutex
TYPE_LOCK (struct vdpa_device)->cf_lock
TYPE_LOCK (struct vdpasim)->iommu_lock
TYPE_LOCK (struct vdpasim)->mutex

drivers/vdpa/vdpa_sim/vdpa_sim.c vdpasim_reset_map() -> vhost_iotlb_add_range()

Type Parameter Key Value
PARAM_VALUE 0 iotlb 4096-ptr_max
PARAM_VALUE 1 start 0
PARAM_VALUE 2 last u64max
PARAM_VALUE 3 addr 0
PARAM_VALUE 4 perm 3
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &vdpasim->iommu_lock
HALF_LOCKED2 &d->mutex
TYPE_LOCK (struct vdpasim)->iommu_lock

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

Type Parameter Key Value
PARAM_VALUE 0 iotlb 4096-ptr_max
PARAM_VALUE 0 iotlb->root.rb_leftmost 0,4096-ptr_max
PARAM_VALUE 0 iotlb->root.rb_leftmost->rb_left 0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
UNITS 1 start unit_byte
UNITS 2 last unit_byte
UNITS 3 addr unit_byte
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 dup_iotlb() -> vhost_iotlb_add_range()

Type Parameter Key Value
PARAM_VALUE 0 iotlb 1-u64max
PARAM_VALUE 1 start 0
PARAM_VALUE 2 last u64max
PARAM_VALUE 3 addr 0
PARAM_VALUE 4 perm 3
DATA_SOURCE 0 iotlb $0
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 dup_iotlb() -> vhost_iotlb_add_range()

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