Lines Matching full:wc
81 static inline void smc_wr_tx_process_cqe(struct ib_wc *wc) in smc_wr_tx_process_cqe() argument
87 link = wc->qp->qp_context; in smc_wr_tx_process_cqe()
89 if (wc->opcode == IB_WC_REG_MR) { in smc_wr_tx_process_cqe()
90 if (wc->status) in smc_wr_tx_process_cqe()
98 pnd_snd_idx = smc_wr_tx_find_pending_index(link, wc->wr_id); in smc_wr_tx_process_cqe()
101 link->wr_tx_pends[pnd_snd_idx].wc_status = wc->status; in smc_wr_tx_process_cqe()
112 if (wc->status) { in smc_wr_tx_process_cqe()
117 pnd_snd.handler(&pnd_snd.priv, link, wc->status); in smc_wr_tx_process_cqe()
124 struct ib_wc wc[SMC_WR_MAX_POLL_CQE]; in smc_wr_tx_tasklet_fn() local
131 memset(&wc, 0, sizeof(wc)); in smc_wr_tx_tasklet_fn()
132 rc = ib_poll_cq(dev->roce_cq_send, SMC_WR_MAX_POLL_CQE, wc); in smc_wr_tx_tasklet_fn()
141 smc_wr_tx_process_cqe(&wc[i]); in smc_wr_tx_tasklet_fn()
365 static inline void smc_wr_rx_demultiplex(struct ib_wc *wc) in smc_wr_rx_demultiplex() argument
367 struct smc_link *link = (struct smc_link *)wc->qp->qp_context; in smc_wr_rx_demultiplex()
373 if (wc->byte_len < sizeof(*wr_rx)) in smc_wr_rx_demultiplex()
375 temp_wr_id = wc->wr_id; in smc_wr_rx_demultiplex()
380 handler->handler(wc, wr_rx); in smc_wr_rx_demultiplex()
384 static inline void smc_wr_rx_process_cqes(struct ib_wc wc[], int num) in smc_wr_rx_process_cqes() argument
390 link = wc[i].qp->qp_context; in smc_wr_rx_process_cqes()
391 if (wc[i].status == IB_WC_SUCCESS) { in smc_wr_rx_process_cqes()
393 smc_wr_rx_demultiplex(&wc[i]); in smc_wr_rx_process_cqes()
397 switch (wc[i].status) { in smc_wr_rx_process_cqes()
414 struct ib_wc wc[SMC_WR_MAX_POLL_CQE]; in smc_wr_rx_tasklet_fn() local
421 memset(&wc, 0, sizeof(wc)); in smc_wr_rx_tasklet_fn()
422 rc = ib_poll_cq(dev->roce_cq_recv, SMC_WR_MAX_POLL_CQE, wc); in smc_wr_rx_tasklet_fn()
430 smc_wr_rx_process_cqes(&wc[0], rc); in smc_wr_rx_tasklet_fn()