Defined in 1 files as a prototype:

Defined in 5 files as a function:

Referenced in 2 files:

Smatch caller information:

drivers/char/virtio_console.c control_work_handler() -> add_inbuf()

Type Parameter Key Value
PARAM_VALUE 1 buf 4096-ptr_max
PARAM_VALUE 1 buf->len 0-u32max
PARAM_VALUE 1 buf->offset 0
CAPPED_DATA 1 buf->len 1
DATA_SOURCE 1 buf r virtqueue_get_buf
PREEMPT_ADD <- disables preempt
HOST_DATA 1 buf->dma 0-u64max
HOST_DATA 1 buf->len 0-u32max[c]
HOST_DATA 1 buf->sgpages 0-u32max
HOST_DATA 1 buf->size 0-u64max
LOCK2 &portdev->c_ivq_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct ports_device)->c_ivq_lock

drivers/char/virtio_console.c discard_port_data() -> add_inbuf()

Type Parameter Key Value
PARAM_VALUE 1 buf 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 1 buf->dma 0-u64max
HOST_DATA 1 buf->len 0-u32max[c]
HOST_DATA 1 buf->sgpages 0-u32max
HOST_DATA 1 buf->size 0-u64max
LOCK2 &port->inbuf_lock
HALF_LOCKED2 irq
TYPE_LOCK (struct port)->inbuf_lock

drivers/char/virtio_console.c fill_queue() -> add_inbuf()

Type Parameter Key Value
PARAM_VALUE 0 vq 4096-ptr_max
PARAM_VALUE 1 buf 4096-ptr_max
PARAM_VALUE 1 buf->buf 1-ptr_max
PARAM_VALUE 1 buf->dev 0,4096-ptr_max
PARAM_VALUE 1 buf->dev->cma_area->alloc_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 1 buf->dev->cma_area->alloc_mutex.first_waiter->list.prev->prev 5159360019465732096
PARAM_VALUE 1 buf->dev->cma_area->alloc_mutex.osq.tail.counter 0-s32max
PARAM_VALUE 1 buf->dev->cma_area->nranges s32min-s32max
PARAM_VALUE 1 buf->dev->dma_io_tlb_lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 buf->dev->dma_io_tlb_pools.next 4096-ptr_max
PARAM_VALUE 1 buf->dev->dma_io_tlb_pools.next->prev 4096-ptr_max
PARAM_VALUE 1 buf->dev->dma_io_tlb_pools.next->prev->prev 4096-ptr_max
PARAM_VALUE 1 buf->dev->dma_mem->spinlock.rlock.dep_map->name 0-255
PARAM_VALUE 1 buf->dev->dma_uses_io_tlb 1
PARAM_VALUE 1 buf->dev->iommu->attach_deferred 0-1
PARAM_VALUE 1 buf->len 0
PARAM_VALUE 1 buf->offset 0
PARAM_VALUE 1 buf->sgpages 0
PARAM_VALUE 1 buf->size 4096
BUF_SIZE 1 buf s32min-s32max
CAPPED_DATA 1 buf->dev 1
DATA_SOURCE 0 vq $0
DATA_SOURCE 1 buf r alloc_buf
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 irq
LOCK2 lock

drivers/char/virtio_console.c fill_readbuf() -> add_inbuf()

Type Parameter Key Value
PARAM_VALUE 1 buf 4096-ptr_max
PARAM_VALUE 1 buf->offset 0-u32max
CAPPED_DATA 1 buf->len 1
CAPPED_DATA 1 buf->offset 1
PARAM_COMPARE 1 buf->len == $1->offset
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 1 buf->dma 0-u64max
HOST_DATA 1 buf->offset 0-s32max[c]
HOST_DATA 1 buf->sgpages 0-u32max
HOST_DATA 1 buf->size 0-u64max
LOCK2 &port->inbuf_lock
LOCK2 flags
TYPE_LOCK (struct port)->inbuf_lock