Defined in 2 files as a function:

Referenced in 2 files:

Smatch caller information:

drivers/infiniband/hw/mlx4/cq.c get_cqe() -> get_cqe_from_buf()

Type Parameter Key Value
PARAM_VALUE 0 buf 4096-ptr_max
CAPPED_DATA 1 n 1
DATA_SOURCE 1 n $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &cq->lock
HALF_LOCKED2 &cq->resize_mutex
HALF_LOCKED2 irq

drivers/infiniband/hw/mlx4/cq.c mlx4_ib_cq_resize_copy_cqes() -> get_cqe_from_buf()

Type Parameter Key Value
PARAM_VALUE 0 buf 4096-ptr_max
PARAM_VALUE 0 buf->buf.direct.buf 0-ptr_max
PARAM_VALUE 0 buf->buf.nbufs 1,3-524288
PARAM_VALUE 0 buf->buf.page_list 4096-ptr_max
PARAM_VALUE 1 n 0-s32max
CAPPED_DATA 1 n 1
PREEMPT_ADD
NO_OVERFLOW_SIMPLE 0 buf->buf.nbufs
NO_OVERFLOW_SIMPLE 0 buf->buf.npages
LOCK2 &cq->lock
LOCK2 &cq->resize_mutex
LOCK2 irq
HALF_LOCKED2 &file->device->disassociate_srcu
TYPE_LOCK (struct mlx4_ib_cq)->lock
TYPE_LOCK (struct mlx4_ib_cq)->resize_mutex

drivers/infiniband/hw/mthca/mthca_cq.c get_cqe() -> get_cqe_from_buf()

Type Parameter Key Value
PARAM_VALUE 0 buf 4096-ptr_max
CAPPED_DATA 1 n 1
DATA_SOURCE 1 n $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 1 n unit_byte
LOCK2 &cq->lock
HALF_LOCKED2 &cq->mutex
HALF_LOCKED2 flags
HALF_LOCKED2 irq
TYPE_LOCK (struct mthca_cq)->lock

drivers/infiniband/hw/mthca/mthca_cq.c mthca_alloc_cq_buf() -> get_cqe_from_buf()

Type Parameter Key Value
PARAM_VALUE 0 buf 4096-ptr_max
PARAM_VALUE 0 buf->is_direct 0-1
PARAM_VALUE 0 buf->queue.direct.buf 0-ptr_max
PARAM_VALUE 0 buf->queue.page_list 4096-ptr_max
PARAM_VALUE 1 n 0-s32max
CAPPED_DATA 1 n 1
DATA_SOURCE 0 buf $1
RX_PATH
TASK_NOT_RUNNING
UNITS 1 n unit_byte
HALF_LOCKED2 &cq->mutex

drivers/infiniband/hw/mthca/mthca_cq.c mthca_cq_resize_copy_cqes() -> get_cqe_from_buf()

Type Parameter Key Value
PARAM_VALUE 0 buf 4096-ptr_max
PARAM_VALUE 0 buf->is_direct 0-1
PARAM_VALUE 0 buf->queue.direct.buf 0-ptr_max
PARAM_VALUE 0 buf->queue.page_list 4096-ptr_max
PARAM_VALUE 1 n 0-s32max
CAPPED_DATA 1 n 1
PREEMPT_ADD
LOCK2 &cq->lock
LOCK2 &cq->mutex
LOCK2 irq
HALF_LOCKED2 &file->device->disassociate_srcu
TYPE_LOCK (struct mthca_cq)->lock
TYPE_LOCK (struct mthca_cq)->mutex

drivers/infiniband/hw/mthca/mthca_cq.c mthca_cq_resize_copy_cqes() -> get_cqe_from_buf()

Type Parameter Key Value
PARAM_VALUE 0 buf 4096-ptr_max
PARAM_VALUE 0 buf->is_direct 0-1
PARAM_VALUE 0 buf->queue.direct.buf 0-ptr_max
PARAM_VALUE 0 buf->queue.page_list 4096-ptr_max
PARAM_VALUE 1 n 0-s32max
CAPPED_DATA 1 n 1
PREEMPT_ADD
LOCK2 &cq->lock
LOCK2 &cq->mutex
LOCK2 irq
HALF_LOCKED2 &file->device->disassociate_srcu
TYPE_LOCK (struct mthca_cq)->lock
TYPE_LOCK (struct mthca_cq)->mutex

drivers/infiniband/hw/mthca/mthca_cq.c mthca_cq_resize_copy_cqes() -> get_cqe_from_buf()

Type Parameter Key Value
PARAM_VALUE 0 buf 4096-ptr_max
PARAM_VALUE 0 buf->is_direct 0-1
PARAM_VALUE 0 buf->queue.direct.buf 0-ptr_max
PARAM_VALUE 0 buf->queue.page_list 4096-ptr_max
PARAM_VALUE 1 n 0-s32max
CAPPED_DATA 1 n 1
PREEMPT_ADD
LOCK2 &cq->lock
LOCK2 &cq->mutex
LOCK2 irq
HALF_LOCKED2 &file->device->disassociate_srcu
TYPE_LOCK (struct mthca_cq)->lock
TYPE_LOCK (struct mthca_cq)->mutex

drivers/infiniband/hw/mthca/mthca_cq.c mthca_poll_cq() -> get_cqe_from_buf()

Type Parameter Key Value
CAPPED_DATA 1 n 1
BIT_INFO 1 n 0x0,0x7fffffff
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &cq->lock
LOCK2 flags
TYPE_LOCK (struct mthca_cq)->lock