Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

drivers/infiniband/hw/erdma/erdma_cq.c erdma_poll_one_cqe() -> get_next_valid_cqe()

Type Parameter Key Value
PARAM_VALUE 0 cq 4096-ptr_max
DATA_SOURCE 0 cq $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 flags
LOCK2 0 &cq->kern_cq.lock
TYPE_LOCK (struct erdma_kcq_info)->lock

drivers/infiniband/hw/erdma/erdma_cq.c erdma_remove_cqes_of_qp() -> get_next_valid_cqe()

Type Parameter Key Value
PARAM_VALUE 0 cq 4096-ptr_max
PARAM_VALUE 0 cq->depth 1-u32max
DATA_SOURCE 0 cq r to_ecq
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &qp->state_lock
LOCK2 flags
LOCK2 0 &cq->kern_cq.lock
HALF_LOCKED2 &ibqp->qp_sec->mutex
TYPE_LOCK (struct erdma_kcq_info)->lock
TYPE_LOCK (struct erdma_qp)->state_lock

drivers/infiniband/hw/erdma/erdma_cq.c erdma_remove_cqes_of_qp() -> get_next_valid_cqe()

Type Parameter Key Value
PARAM_VALUE 0 cq 4096-ptr_max
PARAM_VALUE 0 cq->depth 1-u32max
DATA_SOURCE 0 cq r to_ecq
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &qp->state_lock
LOCK2 flags
LOCK2 0 &cq->kern_cq.lock
HALF_LOCKED2 &ibqp->qp_sec->mutex
TYPE_LOCK (struct erdma_kcq_info)->lock
TYPE_LOCK (struct erdma_qp)->state_lock

drivers/infiniband/hw/erdma/erdma_cq.c erdma_req_notify_cq() -> get_next_valid_cqe()

Type Parameter Key Value
PARAM_VALUE 0 cq 4096-ptr_max
PARAM_VALUE 0 cq->kern_cq.db 4096-ptr_max
PARAM_VALUE 0 cq->kern_cq.dbrec 4096-ptr_max
DATA_SOURCE 0 cq r to_ecq
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 irq_flags
LOCK2 0 &cq->kern_cq.lock
HALF_LOCKED2 &device->client_data_rwsem
HALF_LOCKED2 global &clients_rwsem
HALF_LOCKED2 global &devices_rwsem
TYPE_LOCK (struct erdma_kcq_info)->lock