Documented in 1 files:
Defined in 1 files as a function:
Referenced in 4 files:
- drivers/infiniband/hw/ionic/ionic_admin.c, line 185
- drivers/infiniband/hw/ionic/ionic_controlpath.c, line 2531
- drivers/infiniband/hw/ionic/ionic_datapath.c
- drivers/infiniband/hw/ionic/ionic_queue.h
Smatch caller information:
drivers/infiniband/hw/ionic/ionic_admin.c ionic_admin_poll_locked() -> ionic_queue_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | q | 4096-ptr_max |
| PREEMPT_ADD | |||
| 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_produce() -> ionic_queue_next()
| 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_prep_base() -> ionic_queue_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | q | 4096-ptr_max |
| PREEMPT_ADD | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &qp->sq_lock | ||
| LOCK2 | irqflags | ||
| HALF_LOCKED2 | &conn->send_lock | ||
| HALF_LOCKED2 | &gsi->lock | ||
| HALF_LOCKED2 | &mr->mutex | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | &rdma->sq_sem | ||
| HALF_LOCKED2 | bh | ||
| HALF_LOCKED2 | flags | ||
| TYPE_LOCK | (struct ionic_qp)->sq_lock |
drivers/infiniband/hw/ionic/ionic_datapath.c ionic_queue_consume() -> ionic_queue_next()
| 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 | irqflags | ||
| HALF_LOCKED2 | &cqe_qp->rq_lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | &qp->rq_lock | ||
| HALF_LOCKED2 | &qp->sq_lock | ||
| TYPE_LOCK | (struct ionic_cq)->lock |
drivers/infiniband/hw/ionic/ionic_datapath.c ionic_queue_produce() -> ionic_queue_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | q | 4096-ptr_max |
| DATA_SOURCE | 0 | q | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | irqflags | ||
| HALF_LOCKED2 | &cq->lock | ||
| HALF_LOCKED2 | &qp->rq_lock | ||
| HALF_LOCKED2 | &qp->sq_lock |
drivers/infiniband/hw/ionic/ionic_datapath.c ionic_req_notify_vcq_cq() -> ionic_queue_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | q | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &device->client_data_rwsem | ||
| HALF_LOCKED2 | global &clients_rwsem | ||
| HALF_LOCKED2 | global &devices_rwsem |
drivers/infiniband/hw/ionic/ionic_datapath.c ionic_req_notify_vcq_cq() -> ionic_queue_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | q | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &device->client_data_rwsem | ||
| HALF_LOCKED2 | global &clients_rwsem | ||
| HALF_LOCKED2 | global &devices_rwsem |
drivers/infiniband/hw/ionic/ionic_controlpath.c ionic_clean_cq() -> ionic_queue_next()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | q | 4096-ptr_max |
| CAPPED_DATA | 1 | idx | 1 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &cq->lock | ||
| LOCK2 | irqflags | ||
| TYPE_LOCK | (struct ionic_cq)->lock |