Lines Matching refs:wqe
169 struct siw_wqe *wqe = &frx->wqe_active; in siw_rresp_check_ntoh() local
176 srx->ddp_stag = wqe->sqe.sge[0].lkey; in siw_rresp_check_ntoh()
177 srx->ddp_to = wqe->sqe.sge[0].laddr; in siw_rresp_check_ntoh()
204 (wqe->processed + srx->fpdu_part_rem != wqe->bytes))) { in siw_rresp_check_ntoh()
207 wqe->processed + srx->fpdu_part_rem, wqe->bytes); in siw_rresp_check_ntoh()
281 struct siw_wqe *wqe = &frx->wqe_active; in siw_send_check_ntoh() local
301 if (unlikely(ddp_mo != wqe->processed)) { in siw_send_check_ntoh()
303 qp_id(rx_qp(srx)), ddp_mo, wqe->processed); in siw_send_check_ntoh()
316 if (unlikely(wqe->bytes < wqe->processed + srx->fpdu_part_rem)) { in siw_send_check_ntoh()
318 wqe->bytes, wqe->processed, srx->fpdu_part_rem); in siw_send_check_ntoh()
319 wqe->wc_status = SIW_WC_LOC_LEN_ERR; in siw_send_check_ntoh()
334 struct siw_wqe *wqe = NULL; in siw_rqe_get() local
357 wqe = rx_wqe(&qp->rx_untagged); in siw_rqe_get()
358 rx_type(wqe) = SIW_OP_RECEIVE; in siw_rqe_get()
359 wqe->wr_status = SIW_WR_INPROGRESS; in siw_rqe_get()
360 wqe->bytes = 0; in siw_rqe_get()
361 wqe->processed = 0; in siw_rqe_get()
363 wqe->rqe.id = rqe->id; in siw_rqe_get()
364 wqe->rqe.num_sge = num_sge; in siw_rqe_get()
367 wqe->rqe.sge[i].laddr = rqe->sge[i].laddr; in siw_rqe_get()
368 wqe->rqe.sge[i].lkey = rqe->sge[i].lkey; in siw_rqe_get()
369 wqe->rqe.sge[i].length = rqe->sge[i].length; in siw_rqe_get()
370 wqe->bytes += wqe->rqe.sge[i].length; in siw_rqe_get()
371 wqe->mem[i] = NULL; in siw_rqe_get()
405 return wqe; in siw_rqe_get()
425 struct siw_wqe *wqe; in siw_proc_send() local
431 wqe = siw_rqe_get(qp); in siw_proc_send()
432 if (unlikely(!wqe)) { in siw_proc_send()
439 wqe = rx_wqe(frx); in siw_proc_send()
460 sge = &wqe->rqe.sge[frx->sge_idx]; in siw_proc_send()
470 mem = &wqe->mem[frx->sge_idx]; in siw_proc_send()
500 wqe->processed += rcvd_bytes; in siw_proc_send()
520 wqe->processed += rcvd_bytes; in siw_proc_send()
560 struct siw_wqe *wqe = rx_wqe(frx); in siw_proc_write() local
573 wqe->rqe.num_sge = 1; in siw_proc_write()
574 rx_type(wqe) = SIW_OP_WRITE; in siw_proc_write()
575 wqe->wr_status = SIW_WR_INPROGRESS; in siw_proc_write()
746 struct siw_wqe *wqe = NULL; in siw_orqe_start_rx() local
757 wqe = rx_wqe(&qp->rx_tagged); in siw_orqe_start_rx()
758 wqe->sqe.id = orqe->id; in siw_orqe_start_rx()
759 wqe->sqe.opcode = orqe->opcode; in siw_orqe_start_rx()
760 wqe->sqe.sge[0].laddr = orqe->sge[0].laddr; in siw_orqe_start_rx()
761 wqe->sqe.sge[0].lkey = orqe->sge[0].lkey; in siw_orqe_start_rx()
762 wqe->sqe.sge[0].length = orqe->sge[0].length; in siw_orqe_start_rx()
763 wqe->sqe.flags = orqe->flags; in siw_orqe_start_rx()
764 wqe->sqe.num_sge = 1; in siw_orqe_start_rx()
765 wqe->bytes = orqe->sge[0].length; in siw_orqe_start_rx()
766 wqe->processed = 0; in siw_orqe_start_rx()
767 wqe->mem[0] = NULL; in siw_orqe_start_rx()
770 wqe->wr_status = SIW_WR_INPROGRESS; in siw_orqe_start_rx()
790 struct siw_wqe *wqe = rx_wqe(frx); in siw_proc_rresp() local
796 if (unlikely(wqe->wr_status != SIW_WR_IDLE)) { in siw_proc_rresp()
798 qp_id(qp), wqe->wr_status, wqe->sqe.opcode); in siw_proc_rresp()
817 if (unlikely(wqe->wr_status != SIW_WR_INPROGRESS)) { in siw_proc_rresp()
819 qp_id(qp), wqe->wr_status); in siw_proc_rresp()
827 sge = wqe->sqe.sge; /* there is only one */ in siw_proc_rresp()
828 mem = &wqe->mem[0]; in siw_proc_rresp()
835 wqe->bytes); in siw_proc_rresp()
838 wqe->wc_status = SIW_WC_LOC_PROT_ERR; in siw_proc_rresp()
855 (void *)(uintptr_t)(sge->laddr + wqe->processed), in siw_proc_rresp()
858 rv = siw_rx_umem(srx, mem_p->umem, sge->laddr + wqe->processed, in siw_proc_rresp()
862 sge->laddr + wqe->processed, bytes); in siw_proc_rresp()
864 wqe->wc_status = SIW_WC_GENERAL_ERR; in siw_proc_rresp()
870 wqe->processed += rv; in siw_proc_rresp()
1222 struct siw_wqe *wqe = rx_wqe(qp->rx_fpdu); in siw_rdmap_complete() local
1223 enum siw_wc_status wc_status = wqe->wc_status; in siw_rdmap_complete()
1230 wqe->rqe.flags |= SIW_WQE_SOLICITED; in siw_rdmap_complete()
1235 if (wqe->wr_status == SIW_WR_IDLE) in siw_rdmap_complete()
1259 rv = siw_rqe_complete(qp, &wqe->rqe, wqe->processed, in siw_rdmap_complete()
1263 rv = siw_rqe_complete(qp, &wqe->rqe, wqe->processed, in siw_rdmap_complete()
1266 siw_wqe_put_mem(wqe, SIW_OP_RECEIVE); in siw_rdmap_complete()
1270 if (wqe->wr_status == SIW_WR_IDLE) in siw_rdmap_complete()
1282 rx_type(wqe) == SIW_OP_READ_LOCAL_INV) { in siw_rdmap_complete()
1286 rv = siw_invalidate_stag(qp->pd, wqe->sqe.sge[0].lkey); in siw_rdmap_complete()
1301 if ((wqe->sqe.flags & SIW_WQE_SIGNALLED) || error != 0) in siw_rdmap_complete()
1302 rv = siw_sqe_complete(qp, &wqe->sqe, wqe->processed, in siw_rdmap_complete()
1304 siw_wqe_put_mem(wqe, SIW_OP_READ); in siw_rdmap_complete()
1323 if (wqe->wr_status == SIW_WR_IDLE) in siw_rdmap_complete()
1341 wqe->wr_status = SIW_WR_IDLE; in siw_rdmap_complete()