| /linux/drivers/net/ethernet/intel/ice/ |
| H A D | ice_controlq.c | 36 struct ice_ctl_q_info *cq = &hw->adminq; in ice_adminq_init_regs() local 38 ICE_CQ_INIT_REGS(cq, PF_FW); in ice_adminq_init_regs() 49 struct ice_ctl_q_info *cq = &hw->mailboxq; in ice_mailbox_init_regs() local 51 ICE_CQ_INIT_REGS(cq, PF_MBX); in ice_mailbox_init_regs() 62 struct ice_ctl_q_info *cq = &hw->sbq; in ice_sb_init_regs() local 64 ICE_CQ_INIT_REGS(cq, PF_SB); in ice_sb_init_regs() 74 bool ice_check_sq_alive(struct ice_hw *hw, struct ice_ctl_q_info *cq) in ice_check_sq_alive() argument 77 if (cq->sq.len && cq->sq.len_mask && cq->sq.len_ena_mask) in ice_check_sq_alive() 78 return (rd32(hw, cq->sq.len) & (cq->sq.len_mask | in ice_check_sq_alive() 79 cq->sq.len_ena_mask)) == in ice_check_sq_alive() [all …]
|
| /linux/drivers/infiniband/hw/mthca/ |
| H A D | mthca_cq.c | 169 static inline struct mthca_cqe *get_cqe(struct mthca_cq *cq, int entry) in get_cqe() argument 171 return get_cqe_from_buf(&cq->buf, entry); in get_cqe() 179 static inline struct mthca_cqe *next_cqe_sw(struct mthca_cq *cq) in next_cqe_sw() argument 181 return cqe_sw(get_cqe(cq, cq->cons_index & cq->ibcq.cqe)); in next_cqe_sw() 204 static inline void update_cons_index(struct mthca_dev *dev, struct mthca_cq *cq, in update_cons_index() argument 208 *cq->set_ci_db = cpu_to_be32(cq->cons_index); in update_cons_index() 211 mthca_write64(MTHCA_TAVOR_CQ_DB_INC_CI | cq->cqn, incr - 1, in update_cons_index() 219 struct mthca_cq *cq; in mthca_cq_completion() local 221 cq = mthca_array_get(&dev->cq_table.cq, cqn & (dev->limits.num_cqs - 1)); in mthca_cq_completion() 223 if (!cq) { in mthca_cq_completion() [all …]
|
| /linux/drivers/scsi/snic/ |
| H A D | vnic_cq.c | 10 void svnic_cq_free(struct vnic_cq *cq) in svnic_cq_free() argument 12 svnic_dev_free_desc_ring(cq->vdev, &cq->ring); in svnic_cq_free() 14 cq->ctrl = NULL; in svnic_cq_free() 17 int svnic_cq_alloc(struct vnic_dev *vdev, struct vnic_cq *cq, in svnic_cq_alloc() argument 20 cq->index = index; in svnic_cq_alloc() 21 cq->vdev = vdev; in svnic_cq_alloc() 23 cq->ctrl = svnic_dev_get_res(vdev, RES_TYPE_CQ, index); in svnic_cq_alloc() 24 if (!cq->ctrl) { in svnic_cq_alloc() 30 return svnic_dev_alloc_desc_ring(vdev, &cq->ring, desc_count, desc_size); in svnic_cq_alloc() 33 void svnic_cq_init(struct vnic_cq *cq, unsigned int flow_control_enable, in svnic_cq_init() argument [all …]
|
| H A D | vnic_cq_fw.h | 10 vnic_cq_fw_service(struct vnic_cq *cq, in vnic_cq_fw_service() argument 21 desc = (struct snic_fw_req *)((u8 *)cq->ring.descs + in vnic_cq_fw_service() 22 cq->ring.desc_size * cq->to_clean); in vnic_cq_fw_service() 25 while (color != cq->last_color) { in vnic_cq_fw_service() 27 if ((*q_service)(cq->vdev, cq->index, desc)) in vnic_cq_fw_service() 30 cq->to_clean++; in vnic_cq_fw_service() 31 if (cq->to_clean == cq->ring.desc_count) { in vnic_cq_fw_service() 32 cq->to_clean = 0; in vnic_cq_fw_service() 33 cq->last_color = cq->last_color ? 0 : 1; in vnic_cq_fw_service() 36 desc = (struct snic_fw_req *)((u8 *)cq->ring.descs + in vnic_cq_fw_service() [all …]
|
| H A D | vnic_cq.h | 46 static inline unsigned int svnic_cq_service(struct vnic_cq *cq, in svnic_cq_service() argument 57 cq_desc = (struct cq_desc *)((u8 *)cq->ring.descs + in svnic_cq_service() 58 cq->ring.desc_size * cq->to_clean); in svnic_cq_service() 62 while (color != cq->last_color) { in svnic_cq_service() 64 if ((*q_service)(cq->vdev, cq_desc, type, in svnic_cq_service() 68 cq->to_clean++; in svnic_cq_service() 69 if (cq->to_clean == cq->ring.desc_count) { in svnic_cq_service() 70 cq->to_clean = 0; in svnic_cq_service() 71 cq->last_color = cq->last_color ? 0 : 1; in svnic_cq_service() 74 cq_desc = (struct cq_desc *)((u8 *)cq->ring.descs + in svnic_cq_service() [all …]
|
| /linux/drivers/scsi/fnic/ |
| H A D | vnic_cq.c | 12 void vnic_cq_free(struct vnic_cq *cq) in vnic_cq_free() argument 14 vnic_dev_free_desc_ring(cq->vdev, &cq->ring); in vnic_cq_free() 16 cq->ctrl = NULL; in vnic_cq_free() 19 int vnic_cq_alloc(struct vnic_dev *vdev, struct vnic_cq *cq, unsigned int index, in vnic_cq_alloc() argument 24 cq->index = index; in vnic_cq_alloc() 25 cq->vdev = vdev; in vnic_cq_alloc() 27 cq->ctrl = vnic_dev_get_res(vdev, RES_TYPE_CQ, index); in vnic_cq_alloc() 28 if (!cq->ctrl) { in vnic_cq_alloc() 33 err = vnic_dev_alloc_desc_ring(vdev, &cq->ring, desc_count, desc_size); in vnic_cq_alloc() 40 void vnic_cq_init(struct vnic_cq *cq, unsigned int flow_control_enable, in vnic_cq_init() argument [all …]
|
| H A D | vnic_cq_copy.h | 12 struct vnic_cq *cq, in vnic_cq_copy_service() argument 23 desc = (struct fcpio_fw_req *)((u8 *)cq->ring.descs + in vnic_cq_copy_service() 24 cq->ring.desc_size * cq->to_clean); in vnic_cq_copy_service() 27 while (color != cq->last_color) { in vnic_cq_copy_service() 29 if ((*q_service)(cq->vdev, cq->index, desc)) in vnic_cq_copy_service() 32 cq->to_clean++; in vnic_cq_copy_service() 33 if (cq->to_clean == cq->ring.desc_count) { in vnic_cq_copy_service() 34 cq->to_clean = 0; in vnic_cq_copy_service() 35 cq->last_color = cq->last_color ? 0 : 1; in vnic_cq_copy_service() 38 desc = (struct fcpio_fw_req *)((u8 *)cq->ring.descs + in vnic_cq_copy_service() [all …]
|
| H A D | vnic_cq.h | 58 static inline unsigned int vnic_cq_service(struct vnic_cq *cq, in vnic_cq_service() argument 69 cq_desc = (struct cq_desc *)((u8 *)cq->ring.descs + in vnic_cq_service() 70 cq->ring.desc_size * cq->to_clean); in vnic_cq_service() 74 while (color != cq->last_color) { in vnic_cq_service() 76 if ((*q_service)(cq->vdev, cq_desc, type, in vnic_cq_service() 80 cq->to_clean++; in vnic_cq_service() 81 if (cq->to_clean == cq->ring.desc_count) { in vnic_cq_service() 82 cq->to_clean = 0; in vnic_cq_service() 83 cq->last_color = cq->last_color ? 0 : 1; in vnic_cq_service() 86 cq_desc = (struct cq_desc *)((u8 *)cq->ring.descs + in vnic_cq_service() [all …]
|
| /linux/drivers/net/ethernet/mellanox/mlx5/core/ |
| H A D | cq.c | 69 void mlx5_add_cq_to_tasklet(struct mlx5_core_cq *cq, in mlx5_add_cq_to_tasklet() argument 73 struct mlx5_eq_tasklet *tasklet_ctx = cq->tasklet_ctx.priv; in mlx5_add_cq_to_tasklet() 82 if (list_empty_careful(&cq->tasklet_ctx.list)) { in mlx5_add_cq_to_tasklet() 83 mlx5_cq_hold(cq); in mlx5_add_cq_to_tasklet() 91 list_add_tail(&cq->tasklet_ctx.list, &tasklet_ctx->list); in mlx5_add_cq_to_tasklet() 100 static void mlx5_core_cq_dummy_cb(struct mlx5_core_cq *cq, struct mlx5_eqe *eqe) in mlx5_core_cq_dummy_cb() argument 102 mlx5_core_err(cq->eq->core.dev, in mlx5_core_cq_dummy_cb() 103 "CQ default completion callback, CQ #%u\n", cq->cqn); in mlx5_core_cq_dummy_cb() 108 int mlx5_create_cq(struct mlx5_core_dev *dev, struct mlx5_core_cq *cq, in mlx5_create_cq() argument 127 cq->cqn = MLX5_GET(create_cq_out, out, cqn); in mlx5_create_cq() [all …]
|
| H A D | wc.c | 45 struct mlx5_wc_cq cq; member 50 struct mlx5_wc_cq *cq) in mlx5_wc_create_cqwq() argument 52 struct mlx5_core_cq *mcq = &cq->mcq; in mlx5_wc_create_cqwq() 57 err = mlx5_cqwq_create(mdev, ¶m, cqc, &cq->wq, &cq->wq_ctrl); in mlx5_wc_create_cqwq() 62 mcq->set_ci_db = cq->wq_ctrl.db.db; in mlx5_wc_create_cqwq() 63 mcq->arm_db = cq->wq_ctrl.db.db + 1; in mlx5_wc_create_cqwq() 65 for (i = 0; i < mlx5_cqwq_get_size(&cq->wq); i++) { in mlx5_wc_create_cqwq() 66 struct mlx5_cqe64 *cqe = mlx5_cqwq_get_wqe(&cq->wq, i); in mlx5_wc_create_cqwq() 71 cq->mdev = mdev; in mlx5_wc_create_cqwq() 76 static int create_wc_cq(struct mlx5_wc_cq *cq, void *cqc_data) in create_wc_cq() argument [all …]
|
| /linux/include/linux/mlx5/ |
| H A D | cq.h | 48 void (*comp)(struct mlx5_core_cq *cq, struct mlx5_eqe *eqe); 56 void (*comp)(struct mlx5_core_cq *cq, struct mlx5_eqe *eqe); 141 static inline void mlx5_cq_set_ci(struct mlx5_core_cq *cq) in mlx5_cq_set_ci() argument 143 *cq->set_ci_db = cpu_to_be32(cq->cons_index & 0xffffff); in mlx5_cq_set_ci() 151 static inline void mlx5_cq_arm(struct mlx5_core_cq *cq, u32 cmd, in mlx5_cq_arm() argument 159 sn = cq->arm_sn & 3; in mlx5_cq_arm() 162 *cq->arm_db = cpu_to_be32(sn << 28 | cmd | ci); in mlx5_cq_arm() 170 doorbell[1] = cpu_to_be32(cq->cqn); in mlx5_cq_arm() 175 static inline void mlx5_cq_hold(struct mlx5_core_cq *cq) in mlx5_cq_hold() argument 177 refcount_inc(&cq->refcount); in mlx5_cq_hold() [all …]
|
| /linux/drivers/scsi/elx/efct/ |
| H A D | efct_hw_queues.c | 15 struct hw_cq *cq = NULL; in efct_hw_init_queues() local 44 cq = efct_hw_new_cq(eq, in efct_hw_init_queues() 46 if (!cq) { in efct_hw_init_queues() 51 mq = efct_hw_new_mq(cq, EFCT_HW_MQ_DEPTH); in efct_hw_init_queues() 59 cq = efct_hw_new_cq(eq, hw->num_qentries[SLI4_QTYPE_CQ]); in efct_hw_init_queues() 60 if (!cq) { in efct_hw_init_queues() 65 wq = efct_hw_new_wq(cq, hw->num_qentries[SLI4_QTYPE_WQ]); in efct_hw_init_queues() 162 struct hw_cq *cq = kzalloc_obj(*cq); in efct_hw_new_cq() local 164 if (!cq) in efct_hw_new_cq() 167 cq->eq = eq; in efct_hw_new_cq() [all …]
|
| /linux/drivers/net/ethernet/cisco/enic/ |
| H A D | vnic_cq.h | 59 static inline void *vnic_cq_to_clean(struct vnic_cq *cq) in vnic_cq_to_clean() argument 61 return ((u8 *)cq->ring.descs + cq->ring.desc_size * cq->to_clean); in vnic_cq_to_clean() 64 static inline void vnic_cq_inc_to_clean(struct vnic_cq *cq) in vnic_cq_inc_to_clean() argument 66 cq->to_clean++; in vnic_cq_inc_to_clean() 67 if (cq->to_clean == cq->ring.desc_count) { in vnic_cq_inc_to_clean() 68 cq->to_clean = 0; in vnic_cq_inc_to_clean() 69 cq->last_color = cq->last_color ? 0 : 1; in vnic_cq_inc_to_clean() 73 void vnic_cq_free(struct vnic_cq *cq); 74 int vnic_cq_alloc(struct vnic_dev *vdev, struct vnic_cq *cq, unsigned int index, 76 int vnic_cq_alloc_with_type(struct vnic_dev *vdev, struct vnic_cq *cq, [all …]
|
| /linux/drivers/infiniband/hw/cxgb4/ |
| H A D | t4.h | 703 static inline void write_gts(struct t4_cq *cq, u32 val) in write_gts() argument 705 if (cq->bar2_va) in write_gts() 706 writel(val | INGRESSQID_V(cq->bar2_qid), in write_gts() 707 cq->bar2_va + SGE_UDB_GTS); in write_gts() 709 writel(val | INGRESSQID_V(cq->cqid), cq->gts); in write_gts() 712 static inline int t4_clear_cq_armed(struct t4_cq *cq) in t4_clear_cq_armed() argument 714 return test_and_clear_bit(CQ_ARMED, &cq->flags); in t4_clear_cq_armed() 717 static inline int t4_arm_cq(struct t4_cq *cq, int se) in t4_arm_cq() argument 721 set_bit(CQ_ARMED, &cq->flags); in t4_arm_cq() 722 while (cq->cidx_inc > CIDXINC_M) { in t4_arm_cq() [all …]
|
| H A D | restrack.c | 271 static int fill_cq(struct sk_buff *msg, struct t4_cq *cq) in fill_cq() argument 273 if (rdma_nl_put_driver_u32(msg, "cqid", cq->cqid)) in fill_cq() 275 if (rdma_nl_put_driver_u32(msg, "memsize", cq->memsize)) in fill_cq() 277 if (rdma_nl_put_driver_u32(msg, "size", cq->size)) in fill_cq() 279 if (rdma_nl_put_driver_u32(msg, "cidx", cq->cidx)) in fill_cq() 281 if (rdma_nl_put_driver_u32(msg, "cidx_inc", cq->cidx_inc)) in fill_cq() 283 if (rdma_nl_put_driver_u32(msg, "sw_cidx", cq->sw_cidx)) in fill_cq() 285 if (rdma_nl_put_driver_u32(msg, "sw_pidx", cq->sw_pidx)) in fill_cq() 287 if (rdma_nl_put_driver_u32(msg, "sw_in_use", cq->sw_in_use)) in fill_cq() 289 if (rdma_nl_put_driver_u32(msg, "vector", cq->vector)) in fill_cq() [all …]
|
| /linux/include/trace/events/ |
| H A D | rdma_core.h | 51 struct ib_cq *cq 54 TP_ARGS(cq), 61 cq->timestamp = ktime_get(); 62 cq->interrupt = true; 64 __entry->cq_id = cq->res.id; 72 struct ib_cq *cq 75 TP_ARGS(cq), 82 cq->timestamp = ktime_get(); 83 cq->interrupt = false; 85 __entry->cq_id = cq->res.id; [all …]
|
| /linux/drivers/net/ethernet/mellanox/mlx5/core/lib/ |
| H A D | aso.c | 28 struct mlx5_aso_cq cq; member 40 static void mlx5_aso_free_cq(struct mlx5_aso_cq *cq) in mlx5_aso_free_cq() argument 42 mlx5_wq_destroy(&cq->wq_ctrl); in mlx5_aso_free_cq() 46 void *cqc_data, struct mlx5_aso_cq *cq) in mlx5_aso_alloc_cq() argument 48 struct mlx5_core_cq *mcq = &cq->mcq; in mlx5_aso_alloc_cq() 56 err = mlx5_cqwq_create(mdev, ¶m, cqc_data, &cq->wq, &cq->wq_ctrl); in mlx5_aso_alloc_cq() 61 mcq->set_ci_db = cq->wq_ctrl.db.db; in mlx5_aso_alloc_cq() 62 mcq->arm_db = cq->wq_ctrl.db.db + 1; in mlx5_aso_alloc_cq() 64 for (i = 0; i < mlx5_cqwq_get_size(&cq->wq); i++) { in mlx5_aso_alloc_cq() 65 struct mlx5_cqe64 *cqe = mlx5_cqwq_get_wqe(&cq->wq, i); in mlx5_aso_alloc_cq() [all …]
|
| /linux/drivers/infiniband/sw/siw/ |
| H A D | siw_cq.c | 48 int siw_reap_cqe(struct siw_cq *cq, struct ib_wc *wc) in siw_reap_cqe() argument 53 spin_lock_irqsave(&cq->lock, flags); in siw_reap_cqe() 55 cqe = &cq->queue[cq->cq_get % cq->num_cqe]; in siw_reap_cqe() 66 if (likely(rdma_is_kernel_res(&cq->base_cq.res))) { in siw_reap_cqe() 74 siw_dbg_cq(cq, in siw_reap_cqe() 76 cq->cq_get % cq->num_cqe, cqe->opcode, in siw_reap_cqe() 100 cq->cq_get++; in siw_reap_cqe() 102 spin_unlock_irqrestore(&cq->lock, flags); in siw_reap_cqe() 106 spin_unlock_irqrestore(&cq->lock, flags); in siw_reap_cqe() 116 void siw_cq_flush(struct siw_cq *cq) in siw_cq_flush() argument [all …]
|
| /linux/drivers/infiniband/sw/rdmavt/ |
| H A D | trace_cq.h | 36 TP_PROTO(struct rvt_cq *cq, 38 TP_ARGS(cq, attr), 39 TP_STRUCT__entry(RDI_DEV_ENTRY(cq->rdi) 46 TP_fast_assign(RDI_DEV_ASSIGN(cq->rdi); 47 __entry->ip = cq->ip; 51 cq->comp_vector_cpu; 62 TP_PROTO(struct rvt_cq *cq, const struct ib_cq_init_attr *attr), 63 TP_ARGS(cq, attr)); 70 TP_PROTO(struct rvt_cq *cq, struct ib_wc *wc, u32 idx), 71 TP_ARGS(cq, wc, idx), [all …]
|
| /linux/drivers/net/ethernet/marvell/octeontx2/nic/ |
| H A D | otx2_txrx.c | 43 struct otx2_cq_queue *cq, 58 struct otx2_cq_queue *cq) in otx2_nix_cq_op_status() argument 60 u64 incr = (u64)(cq->cq_idx) << 32; in otx2_nix_cq_op_status() 71 cq->cq_tail = status & 0xFFFFF; in otx2_nix_cq_op_status() 72 cq->cq_head = (status >> 20) & 0xFFFFF; in otx2_nix_cq_op_status() 73 if (cq->cq_tail < cq->cq_head) in otx2_nix_cq_op_status() 74 cq->pend_cqe = (cq->cqe_cnt - cq->cq_head) + in otx2_nix_cq_op_status() 75 cq->cq_tail; in otx2_nix_cq_op_status() 77 cq->pend_cqe = cq->cq_tail - cq->cq_head; in otx2_nix_cq_op_status() 82 static struct nix_cqe_hdr_s *otx2_get_next_cqe(struct otx2_cq_queue *cq) in otx2_get_next_cqe() argument [all …]
|
| /linux/drivers/net/ethernet/amd/pds_core/ |
| H A D | adminq.c | 12 struct pdsc_cq *cq = &qcq->cq; in pdsc_process_notifyq() local 17 cq_info = &cq->info[cq->tail_idx]; in pdsc_process_notifyq() 54 cq->tail_idx = (cq->tail_idx + 1) & (cq->num_descs - 1); in pdsc_process_notifyq() 55 cq_info = &cq->info[cq->tail_idx]; in pdsc_process_notifyq() 81 struct pdsc_cq *cq = &qcq->cq; in pdsc_process_adminq() local 108 comp = cq->info[cq->tail_idx].comp; in pdsc_process_adminq() 109 while (pdsc_color_match(comp->color, cq->done_color)) { in pdsc_process_adminq() 122 if (cq->tail_idx == cq->num_descs - 1) in pdsc_process_adminq() 123 cq->done_color = !cq->done_color; in pdsc_process_adminq() 124 cq->tail_idx = (cq->tail_idx + 1) & (cq->num_descs - 1); in pdsc_process_adminq() [all …]
|
| /linux/include/linux/mlx4/ |
| H A D | cq.h | 147 static inline void mlx4_cq_arm(struct mlx4_cq *cq, u32 cmd, in mlx4_cq_arm() argument 155 sn = cq->arm_sn & 3; in mlx4_cq_arm() 156 ci = cq->cons_index & 0xffffff; in mlx4_cq_arm() 158 *cq->arm_db = cpu_to_be32(sn << 28 | cmd | ci); in mlx4_cq_arm() 166 doorbell[0] = cpu_to_be32(sn << 28 | cmd | cq->cqn); in mlx4_cq_arm() 172 static inline void mlx4_cq_set_ci(struct mlx4_cq *cq) in mlx4_cq_set_ci() argument 174 *cq->set_ci_db = cpu_to_be32(cq->cons_index & 0xffffff); in mlx4_cq_set_ci() 182 int mlx4_cq_modify(struct mlx4_dev *dev, struct mlx4_cq *cq, 184 int mlx4_cq_resize(struct mlx4_dev *dev, struct mlx4_cq *cq,
|
| /linux/tools/include/io_uring/ |
| H A D | mini_liburing.h | 57 struct io_uring_cq cq; member 71 struct io_uring_sq *sq, struct io_uring_cq *cq) in io_uring_mmap() argument 108 cq->ring_sz = p->cq_off.cqes + p->cq_entries * sizeof(struct io_uring_cqe); in io_uring_mmap() 109 ptr = mmap(0, cq->ring_sz, PROT_READ | PROT_WRITE, in io_uring_mmap() 116 cq->khead = ptr + p->cq_off.head; in io_uring_mmap() 117 cq->ktail = ptr + p->cq_off.tail; in io_uring_mmap() 118 cq->kring_mask = ptr + p->cq_off.ring_mask; in io_uring_mmap() 119 cq->kring_entries = ptr + p->cq_off.ring_entries; in io_uring_mmap() 120 cq->koverflow = ptr + p->cq_off.overflow; in io_uring_mmap() 121 cq->cqes = ptr + p->cq_off.cqes; in io_uring_mmap() [all …]
|
| /linux/drivers/nvme/target/ |
| H A D | pci-epf.c | 132 struct nvmet_pci_epf_queue *cq; member 166 struct nvmet_pci_epf_queue *cq; member 571 struct nvmet_pci_epf_queue *cq, bool force) in nvmet_pci_epf_should_raise_irq() argument 573 struct nvmet_pci_epf_irq_vector *iv = cq->iv; in nvmet_pci_epf_should_raise_irq() 577 if (!cq->qid) in nvmet_pci_epf_should_raise_irq() 596 struct nvmet_pci_epf_queue *cq, bool force) in nvmet_pci_epf_raise_irq() argument 602 if (!test_bit(NVMET_PCI_EPF_Q_LIVE, &cq->flags) || in nvmet_pci_epf_raise_irq() 603 !test_bit(NVMET_PCI_EPF_Q_IRQ_ENABLED, &cq->flags)) in nvmet_pci_epf_raise_irq() 608 if (!nvmet_pci_epf_should_raise_irq(ctrl, cq, force)) in nvmet_pci_epf_raise_irq() 621 nvme_epf->irq_type, cq->vector + 1); in nvmet_pci_epf_raise_irq() [all …]
|
| /linux/drivers/infiniband/hw/ionic/ |
| H A D | ionic_admin.c | 79 static bool ionic_admin_next_cqe(struct ionic_ibdev *dev, struct ionic_cq *cq, in ionic_admin_next_cqe() argument 82 struct ionic_v1_cqe *qcqe = ionic_queue_at_prod(&cq->q); in ionic_admin_next_cqe() 84 if (unlikely(cq->color != ionic_v1_cqe_color(qcqe))) in ionic_admin_next_cqe() 96 struct ionic_cq *cq = &aq->vcq->cq[0]; in ionic_admin_poll_locked() local 126 old_prod = cq->q.prod; in ionic_admin_poll_locked() 128 while (ionic_admin_next_cqe(dev, cq, &cqe)) { in ionic_admin_poll_locked() 173 ionic_queue_produce(&cq->q); in ionic_admin_poll_locked() 174 cq->color = ionic_color_wrap(cq->q.prod, cq->color); in ionic_admin_poll_locked() 177 if (old_prod != cq->q.prod) { in ionic_admin_poll_locked() 179 cq->q.cons = cq->q.prod; in ionic_admin_poll_locked() [all …]
|