Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

drivers/infiniband/sw/rxe/rxe_req.c __req_next_wqe() -> queue_addr_from_index()

Type Parameter Key Value
PARAM_VALUE 0 q 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &qp->state_lock
HALF_LOCKED2 flags

drivers/infiniband/sw/rxe/rxe_req.c req_check_sq_drain_done() -> queue_addr_from_index()

Type Parameter Key Value
PARAM_VALUE 0 q 4096-ptr_max
DATA_SOURCE 1 index r queue_get_consumer
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &qp->state_lock
LOCK2 flags
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct rxe_qp)->state_lock

drivers/infiniband/sw/rxe/rxe_req.c req_retry() -> queue_addr_from_index()

Type Parameter Key Value
PARAM_VALUE 0 q 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock

drivers/infiniband/sw/rxe/rxe_queue.c resize_finish() -> queue_addr_from_index()

Type Parameter Key Value
PARAM_VALUE 0 q 4096-ptr_max
PARAM_VALUE 0 q->buf 4096-ptr_max
PARAM_VALUE 0 q->log2_elem_size 0-64
BUF_SIZE 0 q 56
DATA_SOURCE 0 q $1
PREEMPT_ADD
USER_DATA 0 q->elem_size 0-u32max[c]
NO_OVERFLOW_SIMPLE 0 q->ip->info.size
LOCK2 consumer_flags
LOCK2 consumer_lock
HALF_LOCKED2 producer_flags
HALF_LOCKED2 producer_lock

drivers/infiniband/sw/rxe/rxe_queue.c resize_finish() -> queue_addr_from_index()

Type Parameter Key Value
PARAM_VALUE 0 q 4096-ptr_max
DATA_SOURCE 0 q $0
PREEMPT_ADD
LOCK2 consumer_flags
LOCK2 consumer_lock
HALF_LOCKED2 producer_flags
HALF_LOCKED2 producer_lock

drivers/infiniband/sw/rxe/rxe_queue.c resize_finish() -> queue_addr_from_index()

Type Parameter Key Value
PARAM_VALUE 0 q 4096-ptr_max
PARAM_VALUE 0 q->buf 4096-ptr_max
PARAM_VALUE 0 q->log2_elem_size 0-64
BUF_SIZE 0 q 56
DATA_SOURCE 0 q $1
PREEMPT_ADD
USER_DATA 0 q->elem_size 0-u32max[c]
NO_OVERFLOW_SIMPLE 0 q->ip->info.size
LOCK2 consumer_flags
LOCK2 consumer_lock
HALF_LOCKED2 producer_flags
HALF_LOCKED2 producer_lock

drivers/infiniband/sw/rxe/rxe_queue.c resize_finish() -> queue_addr_from_index()

Type Parameter Key Value
PARAM_VALUE 0 q 4096-ptr_max
DATA_SOURCE 0 q $0
PREEMPT_ADD
LOCK2 consumer_flags
LOCK2 consumer_lock
HALF_LOCKED2 producer_flags
HALF_LOCKED2 producer_lock

drivers/infiniband/sw/rxe/rxe_queue.c resize_finish() -> queue_addr_from_index()

Type Parameter Key Value
PARAM_VALUE 0 q 4096-ptr_max
PARAM_VALUE 0 q->buf 4096-ptr_max
PARAM_VALUE 0 q->log2_elem_size 0-64
BUF_SIZE 0 q 56
DATA_SOURCE 0 q $1
PREEMPT_ADD
USER_DATA 0 q->elem_size 0-u32max[c]
NO_OVERFLOW_SIMPLE 0 q->ip->info.size
LOCK2 consumer_flags
LOCK2 consumer_lock
HALF_LOCKED2 producer_flags
HALF_LOCKED2 producer_lock

drivers/infiniband/sw/rxe/rxe_queue.c resize_finish() -> queue_addr_from_index()

Type Parameter Key Value
PARAM_VALUE 0 q 4096-ptr_max
DATA_SOURCE 0 q $0
PREEMPT_ADD
LOCK2 consumer_flags
LOCK2 consumer_lock
HALF_LOCKED2 producer_flags
HALF_LOCKED2 producer_lock