Lines Matching refs:wqe
262 struct siw_wqe *wqe = tx_wqe(qp);
268 if (unlikely(wqe->wr_status != SIW_WR_IDLE)) {
272 memset(wqe->mem, 0, sizeof(*wqe->mem) * SIW_MAX_SGE);
274 wqe->wr_status = SIW_WR_QUEUED;
275 wqe->sqe.flags = 0;
276 wqe->sqe.num_sge = 1;
277 wqe->sqe.sge[0].length = 0;
278 wqe->sqe.sge[0].laddr = 0;
279 wqe->sqe.sge[0].lkey = 0;
284 wqe->sqe.rkey = 1;
285 wqe->sqe.raddr = 0;
286 wqe->processed = 0;
289 wqe->sqe.opcode = SIW_OP_WRITE;
293 wqe->sqe.opcode = SIW_OP_READ;
300 siw_read_to_orq(rreq, &wqe->sqe);
310 wqe->wr_status = SIW_WR_IDLE;
462 struct siw_wqe *wqe = tx_wqe(qp);
480 rreq->ddp_msn = htonl(wqe->sqe.sge[0].length);
482 rreq->ddp_mo = htonl(wqe->processed);
483 rreq->sink_stag = htonl(wqe->sqe.rkey);
484 rreq->sink_to = cpu_to_be64(wqe->sqe.raddr);
485 rreq->read_size = htonl(wqe->sqe.sge[0].length);
486 rreq->source_stag = htonl(wqe->sqe.sge[0].lkey);
488 cpu_to_be64(wqe->sqe.sge[0].laddr);
884 struct siw_wqe *wqe = tx_wqe(qp);
891 memset(wqe->mem, 0, sizeof(*wqe->mem) * SIW_MAX_SGE);
892 wqe->wr_status = SIW_WR_QUEUED;
895 memcpy(&wqe->sqe, sqe, sizeof(*sqe));
897 if (wqe->sqe.opcode >= SIW_NUM_OPCODES) {
901 if (wqe->sqe.flags & SIW_WQE_INLINE) {
902 if (wqe->sqe.opcode != SIW_OP_SEND &&
903 wqe->sqe.opcode != SIW_OP_WRITE) {
907 if (wqe->sqe.sge[0].length > SIW_MAX_INLINE) {
911 wqe->sqe.sge[0].laddr = (uintptr_t)&wqe->sqe.sge[1];
912 wqe->sqe.sge[0].lkey = 0;
913 wqe->sqe.num_sge = 1;
915 if (wqe->sqe.flags & SIW_WQE_READ_FENCE) {
917 if (unlikely(wqe->sqe.opcode == SIW_OP_READ ||
918 wqe->sqe.opcode ==
932 } else if (wqe->sqe.opcode == SIW_OP_READ ||
933 wqe->sqe.opcode == SIW_OP_READ_LOCAL_INV) {
941 wqe->sqe.num_sge = 1;
951 siw_read_to_orq(rreq, &wqe->sqe);
966 wqe->wr_status = SIW_WR_IDLE;
980 struct siw_wqe *wqe = tx_wqe(qp);
998 memset(wqe->mem, 0, sizeof(*wqe->mem) * SIW_MAX_SGE);
999 wqe->wr_status = SIW_WR_QUEUED;
1002 wqe->sqe.opcode = SIW_OP_READ_RESPONSE;
1003 wqe->sqe.flags = 0;
1005 wqe->sqe.num_sge = 1;
1006 wqe->sqe.sge[0].length = irqe->sge[0].length;
1007 wqe->sqe.sge[0].laddr = irqe->sge[0].laddr;
1008 wqe->sqe.sge[0].lkey = irqe->sge[0].lkey;
1010 wqe->sqe.num_sge = 0;
1016 wqe->sqe.sge[1].length = irqe->sge[1].length;
1018 wqe->sqe.rkey = irqe->rkey;
1019 wqe->sqe.raddr = irqe->raddr;
1021 wqe->processed = 0;
1191 struct siw_wqe *wqe = tx_wqe(qp);
1211 if (wqe->wr_status != SIW_WR_IDLE) {
1213 tx_type(wqe), wqe->wr_status);
1215 siw_wqe_put_mem(wqe, tx_type(wqe));
1217 if (tx_type(wqe) != SIW_OP_READ_RESPONSE &&
1218 ((tx_type(wqe) != SIW_OP_READ &&
1219 tx_type(wqe) != SIW_OP_READ_LOCAL_INV) ||
1220 wqe->wr_status == SIW_WR_QUEUED))
1225 siw_sqe_complete(qp, &wqe->sqe, wqe->bytes,
1228 wqe->wr_status = SIW_WR_IDLE;
1266 struct siw_wqe *wqe = &qp->rx_untagged.wqe_active;
1271 if (wqe->wr_status != SIW_WR_IDLE) {
1273 rx_type(wqe), wqe->wr_status);
1275 siw_wqe_put_mem(wqe, rx_type(wqe));
1277 if (rx_type(wqe) == SIW_OP_RECEIVE) {
1278 siw_rqe_complete(qp, &wqe->rqe, wqe->bytes,
1280 } else if (rx_type(wqe) != SIW_OP_READ &&
1281 rx_type(wqe) != SIW_OP_READ_RESPONSE &&
1282 rx_type(wqe) != SIW_OP_WRITE) {
1283 siw_sqe_complete(qp, &wqe->sqe, 0, SIW_WC_WR_FLUSH_ERR);
1285 wqe->wr_status = SIW_WR_IDLE;
1287 wqe = &qp->rx_tagged.wqe_active;
1289 if (wqe->wr_status != SIW_WR_IDLE) {
1290 siw_wqe_put_mem(wqe, rx_type(wqe));
1291 wqe->wr_status = SIW_WR_IDLE;