Documented in 1 files:

Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 26 files:

Smatch caller information:

net/9p/trans_virtio.c p9_virtio_request() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 0-s32max
PARAM_VALUE 3 in_sgs 0
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 2080
BUF_SIZE 1 sgs 16
DATA_SOURCE 4 data $1
RX_PATH
TASK_NOT_RUNNING
UNITS 3 in_sgs unit_array_size
LOCK2 &chan->lock
LOCK2 flags
HALF_LOCKED2 &client->trans->sq_sem
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &v9ses->rename_sem
TYPE_LOCK (struct virtio_chan)->lock

net/9p/trans_virtio.c p9_virtio_zc_request() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 0-s32max
PARAM_VALUE 3 in_sgs 0
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 2080
BUF_SIZE 1 sgs 32
DATA_SOURCE 4 data $1
RX_PATH
TASK_NOT_RUNNING
UNITS 2 out_sgs unit_array_size
UNITS 3 in_sgs unit_array_size
LOCK2 &chan->lock
LOCK2 flags
HALF_LOCKED2 &inode->i_rwsem
TYPE_LOCK (struct virtio_chan)->lock

drivers/crypto/virtio/virtio_crypto_akcipher_algs.c __virtio_crypto_akcipher_do_req() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 2
PARAM_VALUE 3 in_sgs 2
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 2080
BUF_SIZE 1 sgs 32
BUF_SIZE 4 data 40
LOCK2 &data_vq->lock
LOCK2 flags
TYPE_LOCK (struct data_queue)->lock

drivers/net/can/virtio_can.c virtio_can_send_ctrl_msg() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 0 _vq 1-u64max
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 1
PARAM_VALUE 3 in_sgs 1
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 2080
BUF_SIZE 1 sgs 16
RX_PATH
TASK_NOT_RUNNING
LOCK2 _T->lock
HALF_LOCKED2 &ndev->ethtool->rss_lock
HALF_LOCKED2 &ndev->lock

drivers/net/can/virtio_can.c virtio_can_start_xmit() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 1
PARAM_VALUE 3 in_sgs 1
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 2080
BUF_SIZE 1 sgs 16
BUF_SIZE 4 data 24-279
DATA_SOURCE 4 data r _kzalloc_noprof
RX_PATH
TASK_NOT_RUNNING
LOCK2 &priv->tx_lock
LOCK2 irq
HALF_LOCKED2 &txq->_xmit_lock
HALF_LOCKED2 bh
HALF_LOCKED2 flags
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct virtio_can_priv)->tx_lock

drivers/iommu/virtio-iommu.c __viommu_add_req() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 1
PARAM_VALUE 3 in_sgs 1
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 2080
BUF_SIZE 1 sgs 16
BUF_SIZE 4 data 56,64,72,109-4000032
DATA_SOURCE 4 data r _kzalloc_noprof
RX_PATH
TASK_NOT_RUNNING
LOCK2 &viommu->request_lock
HALF_LOCKED2 flags
TYPE_LOCK (struct viommu_dev)->request_lock

drivers/iommu/virtio-iommu.c __viommu_add_req() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 1
PARAM_VALUE 3 in_sgs 1
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 2080
BUF_SIZE 1 sgs 16
BUF_SIZE 4 data 56,64,72,109-4000032
DATA_SOURCE 4 data r _kzalloc_noprof
RX_PATH
TASK_NOT_RUNNING
LOCK2 &viommu->request_lock
HALF_LOCKED2 flags
TYPE_LOCK (struct viommu_dev)->request_lock

drivers/virtio/virtio_mem.c virtio_mem_send_request() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 1
PARAM_VALUE 3 in_sgs 1
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 3264
BUF_SIZE 1 sgs 16
DATA_SOURCE 4 data $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &vm->hotplug_mutex
HALF_LOCKED2 global &vmcore_cb_srcu

drivers/firmware/arm_scmi/transports/virtio.c virtio_send_message() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 1
PARAM_VALUE 3 in_sgs 1
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 2080
BUF_SIZE 1 sgs 16
DATA_SOURCE 4 data r scmi_virtio_get_free_msg
TASK_NOT_RUNNING
LOCK2 &vioch->lock
LOCK2 flags
TYPE_LOCK (struct scmi_vio_channel)->lock

drivers/crypto/virtio/virtio_crypto_skcipher_algs.c __virtio_crypto_skcipher_do_req() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 2-u32max
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 2080
BUF_SIZE 1 sgs 8
BUF_SIZE 1 sgs 8
BUF_SIZE 4 data 40
DATA_SOURCE 1 sgs r _kmalloc_array_node_noprof
FUZZY_MAX 2 out_sgs 2
LOCK2 &data_vq->lock
LOCK2 flags
TYPE_LOCK (struct data_queue)->lock

drivers/gpio/gpio-virtio.c _virtio_gpio_req() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 1
PARAM_VALUE 3 in_sgs 1
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 3264
BUF_SIZE 1 sgs 16
RX_PATH
TASK_NOT_RUNNING
LOCK2 &line->lock
LOCK2 &vgpio->lock
TYPE_LOCK (struct virtio_gpio)->lock
TYPE_LOCK (struct virtio_gpio_line)->lock

drivers/gpio/gpio-virtio.c virtio_gpio_irq_prepare() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 1
PARAM_VALUE 3 in_sgs 1
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 2080
BUF_SIZE 1 sgs 16
RX_PATH
TASK_NOT_RUNNING
LOCK2 &vgpio->eventq_lock
HALF_LOCKED2 flags
TYPE_LOCK (struct virtio_gpio)->eventq_lock

drivers/scsi/virtio_scsi.c __virtscsi_add_cmd() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 1-3
PARAM_VALUE 3 in_sgs 1-3
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 2080
BUF_SIZE 1 sgs 48
DATA_SOURCE 0 _vq $0
DATA_SOURCE 4 data $1
FUZZY_MAX 2 out_sgs 1
FUZZY_MAX 3 in_sgs 1
RX_PATH
TASK_NOT_RUNNING
LOCK2 &vq->vq_lock
LOCK2 flags
TYPE_LOCK (struct virtio_scsi_vq)->vq_lock

drivers/gpu/drm/virtio/virtgpu_vq.c virtio_gpu_panic_queue_ctrl_sgs() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 0 _vq 4096-ptr_max
PARAM_VALUE 0 _vq->num_free 1-u32max
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 1
PARAM_VALUE 3 in_sgs 0-1
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 2080
BUF_SIZE 1 sgs 24
BUF_SIZE 1 sgs 24
DATA_SOURCE 1 sgs $3
DATA_SOURCE 2 out_sgs $4
DATA_SOURCE 3 in_sgs $5
DATA_SOURCE 4 data $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 &(plane->dev)->mode_config.panic_lock
LOCK2 flags
HALF_LOCKED2 rcu_read

drivers/gpu/drm/virtio/virtgpu_vq.c virtio_gpu_queue_ctrl_sgs() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 0 _vq 4096-ptr_max
PARAM_VALUE 0 _vq->num_free 1-u32max
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 1-2
PARAM_VALUE 3 in_sgs 0-1
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 2080
BUF_SIZE 1 sgs 24
BUF_SIZE 1 sgs 24
DATA_SOURCE 1 sgs $4
DATA_SOURCE 2 out_sgs $5
DATA_SOURCE 3 in_sgs $6
DATA_SOURCE 4 data $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 &vgdev->ctrlq.qlock
LOCK2 global &drm_unplug_srcu
HALF_LOCKED2 &vgdev->obj_restore_lock
TYPE_LOCK (struct virtio_gpu_queue)->qlock

drivers/gpu/drm/virtio/virtgpu_vq.c virtio_gpu_queue_cursor() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 1
PARAM_VALUE 3 in_sgs 0
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 2080
BUF_SIZE 1 sgs 8
DATA_SOURCE 4 data $1
RX_PATH
TASK_NOT_RUNNING
UNITS 2 out_sgs unit_array_size
LOCK2 &vgdev->cursorq.qlock
LOCK2 global &drm_unplug_srcu
HALF_LOCKED2 irq
TYPE_LOCK (struct virtio_gpu_queue)->qlock

drivers/virtio/virtio_rtc_driver.c viortc_msg_xfer() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 1
PARAM_VALUE 3 in_sgs 1
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 2080
BUF_SIZE 1 sgs 16
DATA_SOURCE 4 data $1
BIT_INFO 4 data 0x0,0x0
RX_PATH
TASK_NOT_RUNNING
LOCK2 &vq->lock
LOCK2 flags
HALF_LOCKED2 &rtc->ops_lock
TYPE_LOCK (struct viortc_vq)->lock

net/vmw_vsock/virtio_transport.c virtio_transport_send_skb() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 1-s32max
PARAM_VALUE 3 in_sgs 0
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 2080,3264
BUF_SIZE 1 sgs 144
BUF_SIZE 1 sgs 144
BUF_SIZE 4 data (-1)-s32max
DATA_SOURCE 0 _vq $1
DATA_SOURCE 4 data $0
DATA_SOURCE 5 gfp $3
HARD_MAX 5 gfp 3264
TASK_NOT_RUNNING
LOCK2 &vsock->tx_lock
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct virtio_vsock)->tx_lock

net/vmw_vsock/virtio_transport.c virtio_vsock_rx_fill() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 2 out_sgs 0
PARAM_VALUE 3 in_sgs 1
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 3264
BUF_SIZE 1 sgs 8
BUF_SIZE 4 data 0-s32max
DATA_SOURCE 4 data r virtio_vsock_alloc_linear_skb
RX_PATH
TASK_NOT_RUNNING
LOCK2 &vsock->rx_lock
HALF_LOCKED2 global &the_virtio_vsock_mutex
TYPE_LOCK (struct virtio_vsock)->rx_lock

drivers/crypto/virtio/virtio_crypto_core.c virtio_crypto_ctrl_vq_request() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 1-2
PARAM_VALUE 3 in_sgs 1
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 2080
BUF_SIZE 1 sgs 16,24
BUF_SIZE 1 sgs 16,24
BUF_SIZE 4 data 192
DATA_SOURCE 1 sgs $1
DATA_SOURCE 2 out_sgs $2
DATA_SOURCE 3 in_sgs $3
DATA_SOURCE 4 data $4
HARD_MAX 2 out_sgs 2
RX_PATH
TASK_NOT_RUNNING
LOCK2 &vcrypto->ctrl_lock
LOCK2 flags
TYPE_LOCK (struct virtio_crypto)->ctrl_lock

drivers/virtio/virtio_pci_modern.c virtqueue_exec_admin_cmd() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 0 _vq 1-u64max
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 1-2
PARAM_VALUE 3 in_sgs 1-2
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 3264
BUF_SIZE 1 sgs 32
BUF_SIZE 1 sgs 32
DATA_SOURCE 1 sgs $2
DATA_SOURCE 2 out_sgs $3
DATA_SOURCE 3 in_sgs $4
DATA_SOURCE 4 data $5
FUZZY_MAX 2 out_sgs 2
FUZZY_MAX 3 in_sgs 2
HARD_MAX 2 out_sgs 2
HARD_MAX 3 in_sgs 2
RX_PATH
TASK_NOT_RUNNING
UNITS 3 in_sgs unit_array_size
LOCK2 &admin_vq->lock
LOCK2 flags
HALF_LOCKED2 &migf->lock
HALF_LOCKED2 &migf->virtvdev->state_mutex
HALF_LOCKED2 &virtvdev->state_mutex
HALF_LOCKED2 _T->lock
TYPE_LOCK (struct virtio_pci_admin_vq)->lock

drivers/nvdimm/nd_virtio.c virtio_pmem_flush() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 1
PARAM_VALUE 3 in_sgs 1
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 2080
BUF_SIZE 1 sgs 16
BUF_SIZE 4 data 224
DATA_SOURCE 4 data r _kmalloc_noprof
RX_PATH
TASK_NOT_RUNNING
LOCK2 &vpmem->pmem_lock
LOCK2 _T->lock
LOCK2 flags
TYPE_LOCK (struct virtio_pmem)->pmem_lock

fs/fuse/virtio_fs.c virtio_fs_enqueue_req() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 2080
BUF_SIZE 1 sgs 48,56-34359738360
BUF_SIZE 1 sgs 48,56-34359738360
BUF_SIZE 4 data (-1)-s32max
DATA_SOURCE 4 data $1
TASK_NOT_RUNNING
LOCK2 &fsvq->lock
TYPE_LOCK (struct virtio_fs_vq)->lock

sound/virtio/virtio_card.c virtsnd_event_send() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 0
PARAM_VALUE 3 in_sgs 1
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 2080,3264
BUF_SIZE 1 sgs 8
DATA_SOURCE 0 _vq $0
DATA_SOURCE 4 data $1
DATA_SOURCE 5 gfp $3
HARD_MAX 5 gfp 3264
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &queue->lock
HALF_LOCKED2 irq

drivers/block/virtio_blk.c virtblk_add_req() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 1-2
PARAM_VALUE 3 in_sgs 0-1
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 2080
BUF_SIZE 1 sgs 24
DATA_SOURCE 0 _vq $0
DATA_SOURCE 4 data $1
FUZZY_MAX 2 out_sgs 2
FUZZY_MAX 3 in_sgs 1
HARD_MAX 2 out_sgs 2
HARD_MAX 3 in_sgs 1
RX_PATH
TASK_NOT_RUNNING
LOCK2 flags
HALF_LOCKED2 &vq->lock
HALF_LOCKED2 __tag_set->srcu
HALF_LOCKED2 rcu_read

drivers/i2c/busses/i2c-virtio.c virtio_i2c_prepare_reqs() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 1-s32max
PARAM_VALUE 3 in_sgs 0
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 3264
BUF_SIZE 1 sgs 24
DATA_SOURCE 0 _vq $0

drivers/net/virtio_net.c virtnet_send_command_reply() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 1-2
PARAM_VALUE 3 in_sgs 1-2
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 2080
BUF_SIZE 1 sgs 40
BUF_SIZE 4 data s32min-(-1),1-s32max
DATA_SOURCE 4 data $0
FUZZY_MAX 2 out_sgs 2
FUZZY_MAX 3 in_sgs 2
HARD_MAX 2 out_sgs 2
HARD_MAX 3 in_sgs 2
RX_PATH
TASK_NOT_RUNNING
UNITS 4 data unit_byte
LOCK2 &vi->cvq_lock
HALF_LOCKED2 global &rtnl_mutex
TYPE_LOCK (struct virtnet_info)->cvq_lock

sound/virtio/virtio_pcm_msg.c virtsnd_pcm_msg_send() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 2
PARAM_VALUE 3 in_sgs 1
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 2080
BUF_SIZE 1 sgs 24
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &queue->lock
HALF_LOCKED2 &substream->runtime->buffer_mutex
HALF_LOCKED2 &substream->self_group.lock
HALF_LOCKED2 &substream->self_group.mutex
HALF_LOCKED2 &vss->lock
HALF_LOCKED2 irq

sound/virtio/virtio_pcm_msg.c virtsnd_pcm_msg_send() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 1
PARAM_VALUE 3 in_sgs 2
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 2080
BUF_SIZE 1 sgs 24
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &queue->lock
HALF_LOCKED2 &substream->runtime->buffer_mutex
HALF_LOCKED2 &substream->self_group.lock
HALF_LOCKED2 &substream->self_group.mutex
HALF_LOCKED2 &vss->lock
HALF_LOCKED2 irq

drivers/spi/spi-virtio.c virtio_spi_transfer_one() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 1-2
PARAM_VALUE 3 in_sgs 0-2
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 3264
BUF_SIZE 1 sgs 32
BUF_SIZE 4 data 192
DATA_SOURCE 4 data r _kzalloc_noprof
FUZZY_MAX 2 out_sgs 2
HARD_MAX 2 out_sgs 2
RX_PATH
TASK_NOT_RUNNING
LOCK2 &ctrl->io_mutex
HALF_LOCKED2 &ctrl->dev.driver_data->op_lock
TYPE_LOCK (struct spi_controller)->io_mutex

sound/virtio/virtio_ctl_msg.c virtsnd_ctl_msg_send() -> virtqueue_add_sgs()

Type Parameter Key Value
PARAM_VALUE 1 sgs 4096-ptr_max
PARAM_VALUE 2 out_sgs 1-2
PARAM_VALUE 3 in_sgs 1-2
PARAM_VALUE 4 data 4096-ptr_max
PARAM_VALUE 5 gfp 2080
BUF_SIZE 1 sgs 32
BUF_SIZE 4 data 196,204,212,708,716,724,1220
DATA_SOURCE 4 data $1
FUZZY_MAX 2 out_sgs 2
FUZZY_MAX 3 in_sgs 2
HARD_MAX 2 out_sgs 2
HARD_MAX 3 in_sgs 2
RX_PATH
TASK_NOT_RUNNING
LOCK2 &queue->lock
LOCK2 irq
TYPE_LOCK (struct virtio_snd_queue)->lock