Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 3 files:

Smatch caller information:

drivers/vhost/vhost.c vhost_add_used_and_signal() -> vhost_add_used()

Type Parameter Key Value
PARAM_VALUE 2 len 0
BUF_SIZE 0 vq (-1),18984
BUF_SIZE 0 vq (-1),18984
DATA_SOURCE 0 vq $1
DATA_SOURCE 1 head $2
DATA_SOURCE 2 len $3
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 0 vq->avail_idx 0-u16max
HOST_DATA 0 vq->last_used_idx 0-u16max
HOST_DATA 1 head 1-u16max[c]
NO_OVERFLOW_SIMPLE 0 vq->dev->iov_limit
UNITS 1 head unit_array_size
HALF_LOCKED2 &vq->mutex
HALF_LOCKED2 0 &vq->mutex

drivers/vhost/vsock.c vhost_transport_do_send_pkt() -> vhost_add_used()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 0 vq->iov 4096-ptr_max
PARAM_VALUE 0 vq->mutex.dep_map->name 0-255
PARAM_VALUE 0 vq->mutex.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 vq->mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 vq->mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 vq->mutex.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 vq->mutex.wait_lock.owner (-1)
PARAM_VALUE 0 vq->mutex.wait_lock.owner_cpu u32max
PARAM_VALUE 0 vq->private_data 1-u64max
PARAM_VALUE 1 head 0-s32max
BUF_SIZE 0 vq (-1),37968
BUF_SIZE 0 vq (-1),37968
CAPPED_DATA 0 &vq->mutex 1
CAPPED_DATA 2 len 1
DATA_SOURCE 0 vq $1
DATA_SOURCE 1 head r vhost_get_vq_desc
PARAM_COMPARE 1 head != $0->num
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 0 vq->avail_idx 0-u16max
HOST_DATA 0 vq->last_used_idx 0-u16max
HOST_DATA 1 head 1-u16max[c]
UNITS 1 head unit_array_size
UNITS 2 len unit_byte
LOCK2 0 &vq->mutex
TYPE_LOCK (struct vhost_virtqueue)->mutex

drivers/vhost/vsock.c vhost_vsock_handle_tx_kick() -> vhost_add_used()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 0 vq->mutex.dep_map->name 0-255
PARAM_VALUE 0 vq->mutex.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 vq->mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 vq->mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 vq->mutex.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 vq->mutex.wait_lock.owner (-1)
PARAM_VALUE 0 vq->mutex.wait_lock.owner_cpu u32max
PARAM_VALUE 0 vq->private_data 1-u64max
PARAM_VALUE 1 head 0-s32max
PARAM_VALUE 2 len 0
CAPPED_DATA 0 &vq->mutex 1
DATA_SOURCE 1 head r vhost_get_vq_desc
PARAM_COMPARE 1 head != $0->num
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 0 vq->avail_idx 0-u16max
HOST_DATA 0 vq->last_used_idx 0-u16max
HOST_DATA 1 head 1-u16max[c]
UNITS 1 head unit_array_size
LOCK2 0 &vq->mutex
TYPE_LOCK (struct vhost_virtqueue)->mutex

drivers/vhost/scsi.c vhost_scsi_complete_cmd_work() -> vhost_add_used()

Type Parameter Key Value
PARAM_VALUE 2 len 0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 1 head unit_array_size
LOCK2 &svq->vq.mutex
TYPE_LOCK (struct vhost_virtqueue)->mutex