Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

drivers/infiniband/hw/hfi1/rc.c do_rc_ack() -> do_rc_completion()

Type Parameter Key Value
PARAM_VALUE 0 qp 4096-ptr_max
PARAM_VALUE 0 qp->priv 4096-ptr_max
PARAM_VALUE 1 wqe 4096-ptr_max
PARAM_VALUE 1 wqe->wr.opcode 0-239,241-u32max
BUF_SIZE 2 ibp 664
CAPPED_DATA 0 qp 1
DATA_SOURCE 0 qp $0
DATA_SOURCE 2 ibp r rcd_to_iport
PREEMPT_ADD
TASK_NOT_RUNNING
LOCK2 &packet->qp->r_lock
LOCK2 flags
LOCK2 rcu_read
LOCK2 0 &qp->s_lock
TYPE_LOCK (struct rvt_qp)->r_lock
TYPE_LOCK (struct rvt_qp)->s_lock

drivers/infiniband/hw/hfi1/rc.c hfi1_restart_rc() -> do_rc_completion()

Type Parameter Key Value
PARAM_VALUE 0 qp 4096-ptr_max
PARAM_VALUE 0 qp->priv 4096-ptr_max
PARAM_VALUE 0 qp->s_mig_state 0-1,3-255
PARAM_VALUE 0 qp->s_retry 0
PARAM_VALUE 1 wqe 4096-ptr_max
PARAM_VALUE 1 wqe->wr.opcode 242
BUF_SIZE 2 ibp 664
CAPPED_DATA 0 qp 1
CAPPED_DATA 0 qp->s_acked 1
CAPPED_DATA 0 qp->s_last 1
DATA_SOURCE 0 qp $0
DATA_SOURCE 1 wqe r rvt_get_swqe_ptr
DATA_SOURCE 2 ibp r to_iport
PARAM_COMPARE 0 qp->s_acked == $0->s_last
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 flags
LOCK2 0 &qp->s_lock
HALF_LOCKED2 &packet->qp->r_lock
HALF_LOCKED2 &qp->r_lock
HALF_LOCKED2 rcu_read
HALF_LOCKED2 0 &qp->r_lock
TYPE_LOCK (struct rvt_qp)->r_lock
TYPE_LOCK (struct rvt_qp)->s_lock

drivers/infiniband/hw/hfi1/rc.c rdma_seq_err() -> do_rc_completion()

Type Parameter Key Value
PARAM_VALUE 0 qp 4096-ptr_max
PARAM_VALUE 0 qp->priv 4096-ptr_max
PARAM_VALUE 0 qp->remote_ah_attr.ah_flags 1
PARAM_VALUE 0 qp->s_mig_state 0,2
PARAM_VALUE 0 qp->s_rnr_timer.base->cpu_base->expires_next 0-s64max
PARAM_VALUE 0 qp->s_rnr_timer.base->cpu_base->softirq_expires_next 0-s64max
PARAM_VALUE 0 qp->s_rnr_timer.is_queued 0
PARAM_VALUE 0 qp->s_rnr_timer.node.node.next 0
PARAM_VALUE 0 qp->s_rnr_timer.node.node.prev 0
PARAM_VALUE 0 qp->s_timer.entry.pprev 0
PARAM_VALUE 0 qp->s_timer.flags 0-4194302
PARAM_VALUE 0 qp->s_timer.function 0
PARAM_VALUE 1 wqe 4096-ptr_max
PARAM_VALUE 1 wqe->wr.opcode 0-3,7-239,242-u32max
BUF_SIZE 2 ibp 664
DATA_SOURCE 0 qp $0
DATA_SOURCE 2 ibp $1
BIT_INFO 0 qp->r_flags 0x0,0xfd
PREEMPT_ADD
TASK_NOT_RUNNING
LOCK2 &packet->qp->r_lock
LOCK2 flags
LOCK2 rcu_read
LOCK2 0 &qp->s_lock
TYPE_LOCK (struct rvt_qp)->r_lock
TYPE_LOCK (struct rvt_qp)->s_lock

drivers/infiniband/hw/hfi1/tid_rdma.c handle_read_kdeth_eflags() -> do_rc_completion()

Type Parameter Key Value
PARAM_VALUE 0 qp 4096-ptr_max
PARAM_VALUE 0 qp->s_lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 wqe 4096-ptr_max
PARAM_VALUE 1 wqe->wr.opcode 0-3,7-240,242-u32max
BUF_SIZE 2 ibp 664
DATA_SOURCE 2 ibp r to_iport
PREEMPT_ADD <- disables preempt
TASK_NOT_RUNNING
LOCK2 &qp->r_lock
LOCK2 flags
LOCK2 rcu_read
LOCK2 0 &qp->s_lock
TYPE_LOCK (struct rvt_qp)->r_lock
TYPE_LOCK (struct rvt_qp)->s_lock

drivers/infiniband/hw/hfi1/tid_rdma.c hfi1_rc_rcv_tid_rdma_ack() -> do_rc_completion()

Type Parameter Key Value
PARAM_VALUE 0 qp 4096-ptr_max
PARAM_VALUE 1 wqe 4096-ptr_max
PARAM_VALUE 1 wqe->wr.opcode 240
PARAM_COMPARE 0 qp->s_acked != $0->s_tail
PREEMPT_ADD <- disables preempt
TASK_NOT_RUNNING
LOCK2 &packet->qp->r_lock
LOCK2 flags
LOCK2 flags
LOCK2 rcu_read
LOCK2 0 &qp->s_lock
TYPE_LOCK (struct rvt_qp)->r_lock
TYPE_LOCK (struct rvt_qp)->s_lock