Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

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

Type Parameter Key Value
PARAM_VALUE 0 qp 4096-ptr_max
CAPPED_DATA 0 qp 1
DATA_SOURCE 0 qp $0
DATA_SOURCE 1 psn $2
PREEMPT_ADD
TASK_NOT_RUNNING
NOCHECK_CALL
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 do_rc_ack() -> update_last_psn()

Type Parameter Key Value
PARAM_VALUE 0 qp 4096-ptr_max
CAPPED_DATA 0 qp 1
DATA_SOURCE 0 qp $0
PARAM_COMPARE 0 qp->s_acked != $0->s_tail
BIT_INFO 0 qp->s_flags 0x0,0xffffff7f
PREEMPT_ADD
TASK_NOT_RUNNING
NOCHECK_CALL
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 do_rc_ack() -> update_last_psn()

Type Parameter Key Value
PARAM_VALUE 0 qp 4096-ptr_max
CAPPED_DATA 0 qp 1
DATA_SOURCE 0 qp $0
PARAM_COMPARE 0 qp->s_acked != $0->s_tail
PREEMPT_ADD
TASK_NOT_RUNNING
NOCHECK_CALL
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 do_rc_completion() -> update_last_psn()

Type Parameter Key Value
PARAM_VALUE 0 qp 4096-ptr_max
CAPPED_DATA 0 qp 1
DATA_SOURCE 0 qp $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
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 rc_rcv_resp() -> update_last_psn()

Type Parameter Key Value
PARAM_VALUE 0 qp 4096-ptr_max
DATA_SOURCE 1 psn r ib_bth_get_psn
BIT_INFO 0 qp->r_flags 0x0,0xfd
BIT_INFO 0 qp->s_flags 0x0,0xffff7fff
PREEMPT_ADD <- disables preempt
TASK_NOT_RUNNING
NOCHECK_CALL
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