Documented in 1 files:

Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 4 files:

Smatch caller information:

drivers/vdpa/vdpa_user/iova_domain.c vduse_iotlb_add_range() -> vhost_iotlb_add_range_ctx()

Type Parameter Key Value
PARAM_VALUE 5 opaque 4096-ptr_max
BUF_SIZE 5 opaque 16
DATA_SOURCE 1 start $1
DATA_SOURCE 2 last $2
DATA_SOURCE 3 addr $3
DATA_SOURCE 4 perm $4
DATA_SOURCE 5 opaque r _kmalloc_noprof
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 1 start unit_byte
UNITS 2 last unit_byte
UNITS 3 addr unit_byte
LOCK2 &domain->iotlb_lock
HALF_LOCKED2 &dev->mutex
TYPE_LOCK (struct vduse_iova_domain)->iotlb_lock

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

Type Parameter Key Value
PARAM_VALUE 0 iotlb 4096-ptr_max
PARAM_VALUE 5 opaque 0,4096-ptr_max
BUF_SIZE 5 opaque (-1),16
BUF_SIZE 5 opaque (-1),16
CAPPED_DATA 0 iotlb 1
DATA_SOURCE 0 iotlb $1
DATA_SOURCE 1 start $2
DATA_SOURCE 3 addr $4
DATA_SOURCE 4 perm $5
DATA_SOURCE 5 opaque $6
RX_PATH
TASK_NOT_RUNNING
UNITS 1 start unit_byte
UNITS 2 last unit_byte
UNITS 3 addr 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/vhost/iotlb.c vhost_iotlb_add_range() -> vhost_iotlb_add_range_ctx()

Type Parameter Key Value
PARAM_VALUE 0 iotlb 1-u64max
PARAM_VALUE 5 opaque 0
BUF_SIZE 0 iotlb (-1),48
BUF_SIZE 0 iotlb (-1),48
DATA_SOURCE 0 iotlb $0
DATA_SOURCE 1 start $1
DATA_SOURCE 2 last $2
DATA_SOURCE 3 addr $3
DATA_SOURCE 4 perm $4
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 start 0-u64max
USER_DATA 3 addr 0-u64max
UNITS 1 start unit_byte
UNITS 2 last unit_byte
UNITS 3 addr unit_byte
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 &vdpa->cf_lock
HALF_LOCKED2 &vdpasim->iommu_lock
HALF_LOCKED2 &vdpasim->mutex
HALF_LOCKED2 global &vdpa_dev_lock

drivers/vhost/iotlb.c vhost_iotlb_add_range_ctx() -> vhost_iotlb_add_range_ctx()

Type Parameter Key Value
PARAM_VALUE 0 iotlb 4096-ptr_max
PARAM_VALUE 0 iotlb->limit 2-u32max
PARAM_VALUE 1 start 0
PARAM_VALUE 2 last 9223372036854775807
PARAM_VALUE 5 opaque 0,4096-ptr_max
BUF_SIZE 0 iotlb (-1),48
BUF_SIZE 0 iotlb (-1),48
BUF_SIZE 5 opaque (-1),16
BUF_SIZE 5 opaque (-1),16
DATA_SOURCE 0 iotlb $0
DATA_SOURCE 1 start $1
DATA_SOURCE 3 addr $3
DATA_SOURCE 4 perm $4
DATA_SOURCE 5 opaque $5
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 start 0[c]
USER_DATA 3 addr 0-u64max
UNITS 1 start unit_byte
UNITS 3 addr unit_byte
HALF_LOCKED2 &dev->mm->mmap_lock
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 &domain->iotlb_lock
HALF_LOCKED2 &vdpasim->iommu_lock

drivers/vdpa/vdpa_sim/vdpa_sim.c vdpasim_dma_map() -> vhost_iotlb_add_range_ctx()

Type Parameter Key Value
PARAM_VALUE 0 iotlb 4096-ptr_max
PARAM_VALUE 5 opaque 0,4096-ptr_max
BUF_SIZE 5 opaque (-1),16
BUF_SIZE 5 opaque (-1),16
CAPPED_DATA 1 start 1
CAPPED_DATA 1 start 1
CAPPED_DATA 2 last 1
DATA_SOURCE 1 start $2
DATA_SOURCE 3 addr $4
DATA_SOURCE 4 perm $5
DATA_SOURCE 5 opaque $6
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &dev->mm->mmap_lock
LOCK2 &dev->mutex
LOCK2 &vdpasim->iommu_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct mm_struct)->mmap_lock
TYPE_LOCK (struct vdpasim)->iommu_lock
TYPE_LOCK (struct vhost_dev)->mutex