Lines Matching refs:sqe

251 	wqe->sqe.flags = 0;
252 wqe->sqe.num_sge = 1;
253 wqe->sqe.sge[0].length = 0;
254 wqe->sqe.sge[0].laddr = 0;
255 wqe->sqe.sge[0].lkey = 0;
260 wqe->sqe.rkey = 1;
261 wqe->sqe.raddr = 0;
265 wqe->sqe.opcode = SIW_OP_WRITE;
269 wqe->sqe.opcode = SIW_OP_READ;
276 siw_read_to_orq(rreq, &wqe->sqe);
456 rreq->ddp_msn = htonl(wqe->sqe.sge[0].length);
459 rreq->sink_stag = htonl(wqe->sqe.rkey);
460 rreq->sink_to = cpu_to_be64(wqe->sqe.raddr);
461 rreq->read_size = htonl(wqe->sqe.sge[0].length);
462 rreq->source_stag = htonl(wqe->sqe.sge[0].lkey);
464 cpu_to_be64(wqe->sqe.sge[0].laddr);
840 void siw_read_to_orq(struct siw_sqe *rreq, struct siw_sqe *sqe)
842 rreq->id = sqe->id;
843 rreq->opcode = sqe->opcode;
844 rreq->sge[0].laddr = sqe->sge[0].laddr;
845 rreq->sge[0].length = sqe->sge[0].length;
846 rreq->sge[0].lkey = sqe->sge[0].lkey;
847 rreq->sge[1].lkey = sqe->sge[1].lkey;
848 rreq->flags = sqe->flags | SIW_WQE_VALID;
854 struct siw_sqe *sqe;
858 sqe = sq_get_next(qp);
859 if (!sqe)
866 memcpy(&wqe->sqe, sqe, sizeof(*sqe));
868 if (wqe->sqe.opcode >= SIW_NUM_OPCODES) {
872 if (wqe->sqe.flags & SIW_WQE_INLINE) {
873 if (wqe->sqe.opcode != SIW_OP_SEND &&
874 wqe->sqe.opcode != SIW_OP_WRITE) {
878 if (wqe->sqe.sge[0].length > SIW_MAX_INLINE) {
882 wqe->sqe.sge[0].laddr = (uintptr_t)&wqe->sqe.sge[1];
883 wqe->sqe.sge[0].lkey = 0;
884 wqe->sqe.num_sge = 1;
886 if (wqe->sqe.flags & SIW_WQE_READ_FENCE) {
888 if (unlikely(wqe->sqe.opcode == SIW_OP_READ ||
889 wqe->sqe.opcode ==
903 } else if (wqe->sqe.opcode == SIW_OP_READ ||
904 wqe->sqe.opcode == SIW_OP_READ_LOCAL_INV) {
912 wqe->sqe.num_sge = 1;
922 siw_read_to_orq(rreq, &wqe->sqe);
932 smp_store_mb(sqe->flags, 0);
973 wqe->sqe.opcode = SIW_OP_READ_RESPONSE;
974 wqe->sqe.flags = 0;
976 wqe->sqe.num_sge = 1;
977 wqe->sqe.sge[0].length = irqe->sge[0].length;
978 wqe->sqe.sge[0].laddr = irqe->sge[0].laddr;
979 wqe->sqe.sge[0].lkey = irqe->sge[0].lkey;
981 wqe->sqe.num_sge = 0;
987 wqe->sqe.sge[1].length = irqe->sge[1].length;
989 wqe->sqe.rkey = irqe->rkey;
990 wqe->sqe.raddr = irqe->raddr;
1031 int siw_sqe_complete(struct siw_qp *qp, struct siw_sqe *sqe, u32 bytes,
1038 u32 sqe_flags = sqe->flags;
1051 cqe->id = sqe->id;
1052 cqe->opcode = sqe->opcode;
1065 smp_store_mb(sqe->flags, 0);
1084 smp_store_mb(sqe->flags, 0);
1161 struct siw_sqe *sqe;
1169 sqe = &qp->orq[qp->orq_get % qp->attrs.orq_size];
1170 if (!READ_ONCE(sqe->flags))
1173 if (siw_sqe_complete(qp, sqe, 0, SIW_WC_WR_FLUSH_ERR) != 0)
1176 WRITE_ONCE(sqe->flags, 0);
1196 siw_sqe_complete(qp, &wqe->sqe, wqe->bytes,
1205 sqe = &qp->sendq[qp->sq_get % qp->attrs.sq_size];
1206 if (!READ_ONCE(sqe->flags))
1210 if (siw_sqe_complete(qp, sqe, 0, SIW_WC_WR_FLUSH_ERR) != 0)
1217 WRITE_ONCE(sqe->flags, 0);
1254 siw_sqe_complete(qp, &wqe->sqe, 0, SIW_WC_WR_FLUSH_ERR);