Defined in 1 files as a function:

Referenced in 4 files:

Smatch caller information:

drivers/vhost/vhost.c memory_access_ok() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 1 bit 26
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/vhost/vhost.c vhost_add_used_n() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 1 bit 35
BUF_SIZE 0 vq (-1),18984,37968
BUF_SIZE 0 vq (-1),18984,37968
DATA_SOURCE 0 vq $0
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 vq->avail_idx 0-u16max
HOST_DATA 0 vq->last_used_idx 0-u16max
HOST_DATA 0 vq->signalled_used 0-u16max
NO_OVERFLOW_SIMPLE 0 vq->num
HALF_LOCKED2 0 &vq->mutex

drivers/vhost/vhost.c vhost_disable_notify() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 1 bit 29
BUF_SIZE 0 vq (-1),18984,37968
BUF_SIZE 0 vq (-1),18984,37968
DATA_SOURCE 0 vq $1
BIT_INFO 0 vq->used_flags 0x1,0xffff
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 vq->avail_idx 0-u16max
HOST_DATA 0 vq->last_used_idx 0-u16max
NO_OVERFLOW_SIMPLE 0 vq->dev->iov_limit
HALF_LOCKED2 &vq->mutex
HALF_LOCKED2 0 &vq->mutex
TYPE_LOCK (struct vhost_virtqueue)->mutex

drivers/vhost/vhost.c vhost_enable_notify() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 1 bit 29
BUF_SIZE 0 vq (-1),18984,37968
BUF_SIZE 0 vq (-1),18984,37968
DATA_SOURCE 0 vq $1
BIT_INFO 0 vq->used_flags 0x0,0xfffe
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 vq->avail_idx 0-u16max
HOST_DATA 0 vq->last_used_idx 0-u16max
NO_OVERFLOW_SIMPLE 0 vq->dev->iov_limit
HALF_LOCKED2 &vq->mutex
HALF_LOCKED2 0 &vq->mutex
TYPE_LOCK (struct vhost_virtqueue)->mutex

drivers/vhost/vhost.c vhost_get_avail_size() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 1 bit 29
BUF_SIZE 0 vq (-1),18984,37968
BUF_SIZE 0 vq (-1),18984,37968
DATA_SOURCE 0 vq $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 vq->num
HALF_LOCKED2 0 &vq->mutex

drivers/vhost/vhost.c vhost_get_used_size() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 1 bit 29
BUF_SIZE 0 vq (-1),18984,37968
BUF_SIZE 0 vq (-1),18984,37968
DATA_SOURCE 0 vq $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 vq->num
HALF_LOCKED2 0 &vq->mutex

drivers/vhost/vhost.c vhost_get_vq_desc_n() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 1 bit 35
BUF_SIZE 0 vq (-1),18984,37968
BUF_SIZE 0 vq (-1),18984,37968
DATA_SOURCE 0 vq $0
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 vq->avail_idx 0-u16max
HOST_DATA 0 vq->last_used_idx 0-u16max
HOST_DATA 0 vq->signalled_used 0-u16max
NO_OVERFLOW_SIMPLE 0 vq->dev->iov_limit
HALF_LOCKED2 &vq->mutex
HALF_LOCKED2 0 &vq->mutex
TYPE_LOCK (struct vhost_virtqueue)->mutex

drivers/vhost/vhost.c vhost_init_is_le() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 1 bit 32
BUF_SIZE 0 vq (-1),18984
BUF_SIZE 0 vq (-1),18984
DATA_SOURCE 0 vq $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 vq->dev->nvqs
NO_OVERFLOW_SIMPLE 0 vq->poll.dev->nvqs
HALF_LOCKED2 0 &vq->mutex

drivers/vhost/vhost.c vhost_notify() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 1 bit 24
BUF_SIZE 0 vq (-1),37968
BUF_SIZE 0 vq (-1),37968
DATA_SOURCE 0 vq $1
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 vq->avail_idx 0-u16max
HOST_DATA 0 vq->last_used_idx 0-u16max
HOST_DATA 0 vq->signalled_used 0-u16max
HALF_LOCKED2 0 &vq->mutex

drivers/vhost/vhost.c vhost_notify() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 1 bit 29
BUF_SIZE 0 vq (-1),37968
BUF_SIZE 0 vq (-1),37968
DATA_SOURCE 0 vq $1
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 vq->avail_idx 0-u16max
HOST_DATA 0 vq->last_used_idx 0-u16max
HOST_DATA 0 vq->signalled_used 0-u16max
HALF_LOCKED2 0 &vq->mutex

drivers/vhost/vhost.c vhost_vring_ioctl() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 1 bit 34
CAPPED_DATA 0 &vq->mutex 1
LOCK2 0 &vq->mutex
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
TYPE_LOCK (struct vhost_virtqueue)->mutex

drivers/vhost/vhost.c vhost_vring_ioctl() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 1 bit 34
CAPPED_DATA 0 &vq->mutex 1
LOCK2 0 &vq->mutex
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
TYPE_LOCK (struct vhost_virtqueue)->mutex

drivers/vhost/vhost.c vq_log_access_ok() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 1 bit 26
BUF_SIZE 0 vq (-1),18984
BUF_SIZE 0 vq (-1),18984
DATA_SOURCE 0 vq $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 vq->num
HALF_LOCKED2 &n->dev.mutex
HALF_LOCKED2 &vs->dev.mutex
HALF_LOCKED2 &vsock->dev.mutex
HALF_LOCKED2 0 &vq->mutex
TYPE_LOCK (struct vhost_dev)->mutex

drivers/vhost/vdpa.c vhost_vdpa_vring_ioctl() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 1 bit 34
LOCK2 &d->mutex
TYPE_LOCK (struct vhost_dev)->mutex

drivers/vhost/vdpa.c vhost_vdpa_vring_ioctl() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 1 bit 34
HOST_DATA 0 vq->last_avail_idx 0-u16max
LOCK2 &d->mutex
TYPE_LOCK (struct vhost_dev)->mutex

drivers/vhost/net.c get_rx_bufs() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 1 bit 35
BUF_SIZE 0 vq 18984
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 vq->avail_idx 0-u16max
LOCK2 &vq->mutex
TYPE_LOCK (struct vhost_virtqueue)->mutex

drivers/vhost/net.c handle_rx() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 1 bit 35
BUF_SIZE 0 vq 18984
RX_PATH
TASK_NOT_RUNNING

drivers/vhost/net.c handle_rx() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 1 bit 26
BUF_SIZE 0 vq 18984
CAPPED_DATA 0 &vq->mutex 1
RX_PATH
TASK_NOT_RUNNING
LOCK2 0 &vq->mutex
TYPE_LOCK (struct vhost_virtqueue)->mutex

drivers/vhost/net.c handle_rx() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 1 bit 15
BUF_SIZE 0 vq 18984
CAPPED_DATA 0 &vq->mutex 1
RX_PATH
TASK_NOT_RUNNING
LOCK2 0 &vq->mutex
TYPE_LOCK (struct vhost_virtqueue)->mutex

drivers/vhost/net.c handle_rx() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 1 bit 32
BUF_SIZE 0 vq 18984
CAPPED_DATA 0 &vq->mutex 1
RX_PATH
TASK_NOT_RUNNING
LOCK2 0 &vq->mutex
TYPE_LOCK (struct vhost_virtqueue)->mutex

drivers/vhost/net.c handle_tx_copy() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 1 bit 35
BUF_SIZE 0 vq 18984
RX_PATH
TASK_NOT_RUNNING
LOCK2 &vq->mutex
TYPE_LOCK (struct vhost_virtqueue)->mutex

drivers/vhost/net.c vhost_tx_batch() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 1 bit 35
BUF_SIZE 0 vq 18984
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 vq->avail_idx 0-u16max
HOST_DATA 0 vq->signalled_used 0-u16max
LOCK2 &vq->mutex
TYPE_LOCK (struct vhost_virtqueue)->mutex

drivers/vhost/scsi.c vhost_scsi_ctl_handle_vq() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 1 bit 26
CAPPED_DATA 0 &vq->mutex 1
DATA_SOURCE 0 vq $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 0 &vq->mutex
TYPE_LOCK (struct vhost_virtqueue)->mutex

drivers/vhost/scsi.c vhost_scsi_do_evt_work() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 1 bit 26
BUF_SIZE 0 vq 18984
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 vq->avail_idx 0-u16max
LOCK2 &vq->mutex
TYPE_LOCK (struct vhost_virtqueue)->mutex

drivers/vhost/scsi.c vhost_scsi_do_plug() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 1 bit 1
BUF_SIZE 0 vq 18984
CAPPED_DATA 0 &vq->mutex 1
RX_PATH
TASK_NOT_RUNNING
LOCK2 &tpg->tv_tpg_mutex
LOCK2 0 &vq->mutex
HALF_LOCKED2 &dir->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem
TYPE_LOCK (struct vhost_scsi_tpg)->tv_tpg_mutex
TYPE_LOCK (struct vhost_virtqueue)->mutex

drivers/vhost/scsi.c vhost_scsi_handle_vq() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 1 bit 3
DATA_SOURCE 0 vq $1
RX_PATH
TASK_NOT_RUNNING

drivers/vhost/scsi.c vhost_scsi_handle_vq() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 1 bit 26
CAPPED_DATA 0 &vq->mutex 1
DATA_SOURCE 0 vq $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 0 &vq->mutex
TYPE_LOCK (struct vhost_virtqueue)->mutex

drivers/vhost/scsi.c vhost_scsi_log_write() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 1 bit 26
BUF_SIZE 0 vq (-1),18984
BUF_SIZE 0 vq (-1),18984
DATA_SOURCE 0 vq $0
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 vq->avail_idx 0-u16max
HOST_DATA 0 vq->last_used_idx 0-u16max
HALF_LOCKED2 &svq->vq.mutex
HALF_LOCKED2 &tmf->svq->vq.mutex
HALF_LOCKED2 &vq->mutex
HALF_LOCKED2 0 &vq->mutex
TYPE_LOCK (struct vhost_virtqueue)->mutex

drivers/vhost/scsi.c vhost_scsi_set_features() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 1 bit 26
LOCK2 &vs->dev.mutex
TYPE_LOCK (struct vhost_dev)->mutex

drivers/vhost/scsi.c vhost_scsi_setup_vq_cmds() -> vhost_has_feature()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 1 bit 3
BUF_SIZE 0 vq 18984
DATA_SOURCE 0 vq $0
LOCK2 &vs->dev.mutex
TYPE_LOCK (struct vhost_dev)->mutex