Documented in 1 files:

Defined in 1 files as a function:

Referenced in 3 files:

Smatch caller information:

drivers/infiniband/hw/ionic/ionic_admin.c ionic_admin_timedout() -> ionic_queue_at()

Type Parameter Key Value
PARAM_VALUE 0 q 4096-ptr_max
CAPPED_DATA 1 idx 1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &aq->lock
LOCK2 irqflags
TYPE_LOCK (struct ionic_aq)->lock

drivers/infiniband/hw/ionic/ionic_admin.c ionic_queue_at_prod() -> ionic_queue_at()

Type Parameter Key Value
PARAM_VALUE 0 q 4096-ptr_max
DATA_SOURCE 0 q $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &aq->lock
HALF_LOCKED2 irqflags

drivers/infiniband/hw/ionic/ionic_datapath.c ionic_queue_at_cons() -> ionic_queue_at()

Type Parameter Key Value
PARAM_VALUE 0 q 4096-ptr_max
DATA_SOURCE 0 q $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &cq->lock
LOCK2 &qp->rq_lock
LOCK2 irqflags
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct ionic_cq)->lock
TYPE_LOCK (struct ionic_qp)->rq_lock

drivers/infiniband/hw/ionic/ionic_datapath.c ionic_queue_at_prod() -> ionic_queue_at()

Type Parameter Key Value
PARAM_VALUE 0 q 4096-ptr_max
DATA_SOURCE 0 q $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &cq->lock
HALF_LOCKED2 &qp->rq_lock
HALF_LOCKED2 &qp->sq_lock
HALF_LOCKED2 irqflags

drivers/infiniband/hw/ionic/ionic_controlpath.c ionic_clean_cq() -> ionic_queue_at()

Type Parameter Key Value
PARAM_VALUE 0 q 4096-ptr_max
PARAM_VALUE 0 q->ptr 1-u64max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &cq->lock
LOCK2 irqflags
TYPE_LOCK (struct ionic_cq)->lock

drivers/infiniband/hw/ionic/ionic_controlpath.c ionic_clean_cq() -> ionic_queue_at()

Type Parameter Key Value
PARAM_VALUE 0 q 4096-ptr_max
PARAM_VALUE 0 q->ptr 1-u64max
CAPPED_DATA 1 idx 1
DATA_SOURCE 1 idx r ionic_queue_next
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &cq->lock
LOCK2 irqflags
TYPE_LOCK (struct ionic_cq)->lock