Lines Matching refs:sqe

278 	wqe->sqe.flags = 0;
279 wqe->sqe.num_sge = 1;
280 wqe->sqe.sge[0].length = 0;
281 wqe->sqe.sge[0].laddr = 0;
282 wqe->sqe.sge[0].lkey = 0;
287 wqe->sqe.rkey = 1;
288 wqe->sqe.raddr = 0;
292 wqe->sqe.opcode = SIW_OP_WRITE;
296 wqe->sqe.opcode = SIW_OP_READ;
303 siw_read_to_orq(rreq, &wqe->sqe);
483 rreq->ddp_msn = htonl(wqe->sqe.sge[0].length);
486 rreq->sink_stag = htonl(wqe->sqe.rkey);
487 rreq->sink_to = cpu_to_be64(wqe->sqe.raddr);
488 rreq->read_size = htonl(wqe->sqe.sge[0].length);
489 rreq->source_stag = htonl(wqe->sqe.sge[0].lkey);
491 cpu_to_be64(wqe->sqe.sge[0].laddr);
872 void siw_read_to_orq(struct siw_sqe *rreq, struct siw_sqe *sqe)
874 rreq->id = sqe->id;
875 rreq->opcode = sqe->opcode;
876 rreq->sge[0].laddr = sqe->sge[0].laddr;
877 rreq->sge[0].length = sqe->sge[0].length;
878 rreq->sge[0].lkey = sqe->sge[0].lkey;
879 rreq->sge[1].lkey = sqe->sge[1].lkey;
880 rreq->flags = sqe->flags | SIW_WQE_VALID;
886 struct siw_sqe *sqe;
890 sqe = sq_get_next(qp);
891 if (!sqe)
898 memcpy(&wqe->sqe, sqe, sizeof(*sqe));
900 if (wqe->sqe.opcode >= SIW_NUM_OPCODES) {
904 if (wqe->sqe.flags & SIW_WQE_INLINE) {
905 if (wqe->sqe.opcode != SIW_OP_SEND &&
906 wqe->sqe.opcode != SIW_OP_WRITE) {
910 if (wqe->sqe.sge[0].length > SIW_MAX_INLINE) {
914 wqe->sqe.sge[0].laddr = (uintptr_t)&wqe->sqe.sge[1];
915 wqe->sqe.sge[0].lkey = 0;
916 wqe->sqe.num_sge = 1;
918 if (wqe->sqe.flags & SIW_WQE_READ_FENCE) {
920 if (unlikely(wqe->sqe.opcode == SIW_OP_READ ||
921 wqe->sqe.opcode ==
935 } else if (wqe->sqe.opcode == SIW_OP_READ ||
936 wqe->sqe.opcode == SIW_OP_READ_LOCAL_INV) {
944 wqe->sqe.num_sge = 1;
954 siw_read_to_orq(rreq, &wqe->sqe);
964 smp_store_mb(sqe->flags, 0);
1005 wqe->sqe.opcode = SIW_OP_READ_RESPONSE;
1006 wqe->sqe.flags = 0;
1008 wqe->sqe.num_sge = 1;
1009 wqe->sqe.sge[0].length = irqe->sge[0].length;
1010 wqe->sqe.sge[0].laddr = irqe->sge[0].laddr;
1011 wqe->sqe.sge[0].lkey = irqe->sge[0].lkey;
1013 wqe->sqe.num_sge = 0;
1019 wqe->sqe.sge[1].length = irqe->sge[1].length;
1021 wqe->sqe.rkey = irqe->rkey;
1022 wqe->sqe.raddr = irqe->raddr;
1063 int siw_sqe_complete(struct siw_qp *qp, struct siw_sqe *sqe, u32 bytes,
1070 u32 sqe_flags = sqe->flags;
1083 cqe->id = sqe->id;
1084 cqe->opcode = sqe->opcode;
1097 smp_store_mb(sqe->flags, 0);
1116 smp_store_mb(sqe->flags, 0);
1193 struct siw_sqe *sqe;
1201 sqe = &qp->orq[qp->orq_get % qp->attrs.orq_size];
1202 if (!READ_ONCE(sqe->flags))
1205 if (siw_sqe_complete(qp, sqe, 0, SIW_WC_WR_FLUSH_ERR) != 0)
1208 WRITE_ONCE(sqe->flags, 0);
1228 siw_sqe_complete(qp, &wqe->sqe, wqe->bytes,
1237 sqe = &qp->sendq[qp->sq_get % qp->attrs.sq_size];
1238 if (!READ_ONCE(sqe->flags))
1242 if (siw_sqe_complete(qp, sqe, 0, SIW_WC_WR_FLUSH_ERR) != 0)
1249 WRITE_ONCE(sqe->flags, 0);
1286 siw_sqe_complete(qp, &wqe->sqe, 0, SIW_WC_WR_FLUSH_ERR);