Lines Matching refs:sqe

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;
289 wqe->sqe.opcode = SIW_OP_WRITE;
293 wqe->sqe.opcode = SIW_OP_READ;
300 siw_read_to_orq(rreq, &wqe->sqe);
480 rreq->ddp_msn = htonl(wqe->sqe.sge[0].length);
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);
869 void siw_read_to_orq(struct siw_sqe *rreq, struct siw_sqe *sqe)
871 rreq->id = sqe->id;
872 rreq->opcode = sqe->opcode;
873 rreq->sge[0].laddr = sqe->sge[0].laddr;
874 rreq->sge[0].length = sqe->sge[0].length;
875 rreq->sge[0].lkey = sqe->sge[0].lkey;
876 rreq->sge[1].lkey = sqe->sge[1].lkey;
877 rreq->flags = sqe->flags | SIW_WQE_VALID;
883 struct siw_sqe *sqe;
887 sqe = sq_get_next(qp);
888 if (!sqe)
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);
961 smp_store_mb(sqe->flags, 0);
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;
1060 int siw_sqe_complete(struct siw_qp *qp, struct siw_sqe *sqe, u32 bytes,
1067 u32 sqe_flags = sqe->flags;
1080 cqe->id = sqe->id;
1081 cqe->opcode = sqe->opcode;
1094 smp_store_mb(sqe->flags, 0);
1113 smp_store_mb(sqe->flags, 0);
1190 struct siw_sqe *sqe;
1198 sqe = &qp->orq[qp->orq_get % qp->attrs.orq_size];
1199 if (!READ_ONCE(sqe->flags))
1202 if (siw_sqe_complete(qp, sqe, 0, SIW_WC_WR_FLUSH_ERR) != 0)
1205 WRITE_ONCE(sqe->flags, 0);
1225 siw_sqe_complete(qp, &wqe->sqe, wqe->bytes,
1234 sqe = &qp->sendq[qp->sq_get % qp->attrs.sq_size];
1235 if (!READ_ONCE(sqe->flags))
1239 if (siw_sqe_complete(qp, sqe, 0, SIW_WC_WR_FLUSH_ERR) != 0)
1246 WRITE_ONCE(sqe->flags, 0);
1283 siw_sqe_complete(qp, &wqe->sqe, 0, SIW_WC_WR_FLUSH_ERR);