Lines Matching refs:wqe
538 struct bnxt_qplib_swqe *wqe = &fence->bind_wqe; in bnxt_re_legacy_create_fence_wqe() local
544 memset(wqe, 0, sizeof(*wqe)); in bnxt_re_legacy_create_fence_wqe()
545 wqe->type = BNXT_QPLIB_SWQE_TYPE_BIND_MW; in bnxt_re_legacy_create_fence_wqe()
546 wqe->wr_id = BNXT_QPLIB_FENCE_WRID; in bnxt_re_legacy_create_fence_wqe()
547 wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_SIGNAL_COMP; in bnxt_re_legacy_create_fence_wqe()
548 wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_UC_FENCE; in bnxt_re_legacy_create_fence_wqe()
549 wqe->bind.zero_based = false; in bnxt_re_legacy_create_fence_wqe()
550 wqe->bind.parent_l_key = ib_mr->lkey; in bnxt_re_legacy_create_fence_wqe()
551 wqe->bind.va = (u64)fence->va; in bnxt_re_legacy_create_fence_wqe()
552 wqe->bind.length = fence->size; in bnxt_re_legacy_create_fence_wqe()
553 wqe->bind.access_cntl = __from_ib_access_flags(IB_ACCESS_REMOTE_READ); in bnxt_re_legacy_create_fence_wqe()
554 wqe->bind.mw_type = SQ_BIND_MW_TYPE_TYPE1; in bnxt_re_legacy_create_fence_wqe()
570 struct bnxt_qplib_swqe wqe; in bnxt_re_legacy_bind_fence_mw() local
576 memcpy(&wqe, fence_wqe, sizeof(wqe)); in bnxt_re_legacy_bind_fence_mw()
577 wqe.bind.r_key = fence->bind_rkey; in bnxt_re_legacy_bind_fence_mw()
582 wqe.bind.r_key, qp->qplib_qp.id, pd); in bnxt_re_legacy_bind_fence_mw()
583 rc = bnxt_qplib_post_send(&qp->qplib_qp, &wqe); in bnxt_re_legacy_bind_fence_mw()
1379 struct bnxt_qplib_swqe wqe = {}; in bnxt_re_post_srq_recv() local
1386 wqe.num_sge = wr->num_sge; in bnxt_re_post_srq_recv()
1387 wqe.sg_list = (struct bnxt_qplib_sge *)wr->sg_list; in bnxt_re_post_srq_recv()
1388 wqe.wr_id = wr->wr_id; in bnxt_re_post_srq_recv()
1389 wqe.type = BNXT_QPLIB_SWQE_TYPE_RECV; in bnxt_re_post_srq_recv()
1390 rc = bnxt_qplib_post_srq_recv(&srq->qplib_srq, &wqe); in bnxt_re_post_srq_recv()
2908 struct bnxt_qplib_swqe *wqe) in bnxt_re_build_raw_send() argument
2912 wqe->rawqp1.lflags |= SQ_SEND_RAWETH_QP1_LFLAGS_IP_CHKSUM; in bnxt_re_build_raw_send()
2916 wqe->rawqp1.lflags |= SQ_SEND_RAWETH_QP1_LFLAGS_ROCE_CRC; in bnxt_re_build_raw_send()
2925 struct bnxt_qplib_swqe *wqe, int payload_size) in bnxt_re_build_qp1_send() argument
3003 for (i = wqe->num_sge; i; i--) { in bnxt_re_build_qp1_send()
3004 wqe->sg_list[i].addr = wqe->sg_list[i - 1].addr; in bnxt_re_build_qp1_send()
3005 wqe->sg_list[i].lkey = wqe->sg_list[i - 1].lkey; in bnxt_re_build_qp1_send()
3006 wqe->sg_list[i].size = wqe->sg_list[i - 1].size; in bnxt_re_build_qp1_send()
3008 wqe->sg_list[0].addr = sge.addr; in bnxt_re_build_qp1_send()
3009 wqe->sg_list[0].lkey = sge.lkey; in bnxt_re_build_qp1_send()
3010 wqe->sg_list[0].size = sge.size; in bnxt_re_build_qp1_send()
3011 wqe->num_sge++; in bnxt_re_build_qp1_send()
3018 struct bnxt_qplib_swqe *wqe) in bnxt_re_build_gsi_send() argument
3030 wqe->sg_list[indx].addr = wr->sg_list[indx].addr; in bnxt_re_build_gsi_send()
3031 wqe->sg_list[indx].lkey = wr->sg_list[indx].lkey; in bnxt_re_build_gsi_send()
3032 wqe->sg_list[indx].size = wr->sg_list[indx].length; in bnxt_re_build_gsi_send()
3035 rc = bnxt_re_build_qp1_send(qp, wr, wqe, len); in bnxt_re_build_gsi_send()
3036 wqe->rawqp1.lflags |= SQ_SEND_RAWETH_QP1_LFLAGS_ROCE_CRC; in bnxt_re_build_gsi_send()
3050 struct bnxt_qplib_swqe *wqe) in bnxt_re_build_qp1_recv() argument
3081 wqe->sg_list[0].addr = sge.addr; in bnxt_re_build_qp1_recv()
3082 wqe->sg_list[0].lkey = sge.lkey; in bnxt_re_build_qp1_recv()
3083 wqe->sg_list[0].size = BNXT_QPLIB_MAX_QP1_RQ_ETH_HDR_SIZE; in bnxt_re_build_qp1_recv()
3084 size -= wqe->sg_list[0].size; in bnxt_re_build_qp1_recv()
3091 sge.addr += wqe->sg_list[0].size; in bnxt_re_build_qp1_recv()
3095 wqe->sg_list[1].addr = ref.addr + ip_hdr_size; in bnxt_re_build_qp1_recv()
3096 wqe->sg_list[1].lkey = ref.lkey; in bnxt_re_build_qp1_recv()
3097 wqe->sg_list[1].size = sizeof(struct ib_grh) - ip_hdr_size; in bnxt_re_build_qp1_recv()
3098 ref.size -= wqe->sg_list[1].size; in bnxt_re_build_qp1_recv()
3105 ref.addr += wqe->sg_list[1].size + ip_hdr_size; in bnxt_re_build_qp1_recv()
3108 wqe->sg_list[2].addr = sge.addr; in bnxt_re_build_qp1_recv()
3109 wqe->sg_list[2].lkey = sge.lkey; in bnxt_re_build_qp1_recv()
3110 wqe->sg_list[2].size = BNXT_QPLIB_MAX_QP1_RQ_BDETH_HDR_SIZE + in bnxt_re_build_qp1_recv()
3112 size -= wqe->sg_list[2].size; in bnxt_re_build_qp1_recv()
3120 sge.addr += wqe->sg_list[2].size; in bnxt_re_build_qp1_recv()
3123 wqe->sg_list[3].addr = ref.addr; in bnxt_re_build_qp1_recv()
3124 wqe->sg_list[3].lkey = ref.lkey; in bnxt_re_build_qp1_recv()
3125 wqe->sg_list[3].size = ref.size; in bnxt_re_build_qp1_recv()
3126 ref.size -= wqe->sg_list[3].size; in bnxt_re_build_qp1_recv()
3134 wqe->sg_list[4].addr = sge.addr; in bnxt_re_build_qp1_recv()
3135 wqe->sg_list[4].lkey = sge.lkey; in bnxt_re_build_qp1_recv()
3136 wqe->sg_list[4].size = sge.size; in bnxt_re_build_qp1_recv()
3137 size -= wqe->sg_list[4].size; in bnxt_re_build_qp1_recv()
3145 wqe->num_sge = 5; in bnxt_re_build_qp1_recv()
3156 struct bnxt_qplib_swqe *wqe) in bnxt_re_build_qp1_shadow_qp_recv() argument
3173 wqe->sg_list[0].addr = sge.addr; in bnxt_re_build_qp1_shadow_qp_recv()
3175 wqe->sg_list[0].lkey = sge.lkey; in bnxt_re_build_qp1_shadow_qp_recv()
3176 wqe->sg_list[0].size = BNXT_QPLIB_MAX_QP1_RQ_HDR_SIZE_V2; in bnxt_re_build_qp1_shadow_qp_recv()
3177 if (sge.size < wqe->sg_list[0].size) { in bnxt_re_build_qp1_shadow_qp_recv()
3189 sqp_entry->wrid = wqe->wr_id; in bnxt_re_build_qp1_shadow_qp_recv()
3191 wqe->wr_id = rq_prod_index; in bnxt_re_build_qp1_shadow_qp_recv()
3205 struct bnxt_qplib_swqe *wqe) in bnxt_re_build_send_wqe() argument
3211 wqe->send.q_key = ud_wr(wr)->remote_qkey; in bnxt_re_build_send_wqe()
3212 wqe->send.dst_qp = ud_wr(wr)->remote_qpn; in bnxt_re_build_send_wqe()
3213 wqe->send.avid = ah->qplib_ah.id; in bnxt_re_build_send_wqe()
3217 wqe->type = BNXT_QPLIB_SWQE_TYPE_SEND; in bnxt_re_build_send_wqe()
3220 wqe->type = BNXT_QPLIB_SWQE_TYPE_SEND_WITH_IMM; in bnxt_re_build_send_wqe()
3221 wqe->send.imm_data = wr->ex.imm_data; in bnxt_re_build_send_wqe()
3224 wqe->type = BNXT_QPLIB_SWQE_TYPE_SEND_WITH_INV; in bnxt_re_build_send_wqe()
3225 wqe->send.inv_key = wr->ex.invalidate_rkey; in bnxt_re_build_send_wqe()
3233 wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_SIGNAL_COMP; in bnxt_re_build_send_wqe()
3235 wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_UC_FENCE; in bnxt_re_build_send_wqe()
3237 wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_SOLICIT_EVENT; in bnxt_re_build_send_wqe()
3239 wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_INLINE; in bnxt_re_build_send_wqe()
3245 struct bnxt_qplib_swqe *wqe) in bnxt_re_build_rdma_wqe() argument
3249 wqe->type = BNXT_QPLIB_SWQE_TYPE_RDMA_WRITE; in bnxt_re_build_rdma_wqe()
3252 wqe->type = BNXT_QPLIB_SWQE_TYPE_RDMA_WRITE_WITH_IMM; in bnxt_re_build_rdma_wqe()
3253 wqe->rdma.imm_data = wr->ex.imm_data; in bnxt_re_build_rdma_wqe()
3256 wqe->type = BNXT_QPLIB_SWQE_TYPE_RDMA_READ; in bnxt_re_build_rdma_wqe()
3257 wqe->rdma.inv_key = wr->ex.invalidate_rkey; in bnxt_re_build_rdma_wqe()
3262 wqe->rdma.remote_va = rdma_wr(wr)->remote_addr; in bnxt_re_build_rdma_wqe()
3263 wqe->rdma.r_key = rdma_wr(wr)->rkey; in bnxt_re_build_rdma_wqe()
3265 wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_SIGNAL_COMP; in bnxt_re_build_rdma_wqe()
3267 wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_UC_FENCE; in bnxt_re_build_rdma_wqe()
3269 wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_SOLICIT_EVENT; in bnxt_re_build_rdma_wqe()
3271 wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_INLINE; in bnxt_re_build_rdma_wqe()
3277 struct bnxt_qplib_swqe *wqe) in bnxt_re_build_atomic_wqe() argument
3281 wqe->type = BNXT_QPLIB_SWQE_TYPE_ATOMIC_CMP_AND_SWP; in bnxt_re_build_atomic_wqe()
3282 wqe->atomic.cmp_data = atomic_wr(wr)->compare_add; in bnxt_re_build_atomic_wqe()
3283 wqe->atomic.swap_data = atomic_wr(wr)->swap; in bnxt_re_build_atomic_wqe()
3286 wqe->type = BNXT_QPLIB_SWQE_TYPE_ATOMIC_FETCH_AND_ADD; in bnxt_re_build_atomic_wqe()
3287 wqe->atomic.cmp_data = atomic_wr(wr)->compare_add; in bnxt_re_build_atomic_wqe()
3292 wqe->atomic.remote_va = atomic_wr(wr)->remote_addr; in bnxt_re_build_atomic_wqe()
3293 wqe->atomic.r_key = atomic_wr(wr)->rkey; in bnxt_re_build_atomic_wqe()
3295 wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_SIGNAL_COMP; in bnxt_re_build_atomic_wqe()
3297 wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_UC_FENCE; in bnxt_re_build_atomic_wqe()
3299 wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_SOLICIT_EVENT; in bnxt_re_build_atomic_wqe()
3304 struct bnxt_qplib_swqe *wqe) in bnxt_re_build_inv_wqe() argument
3306 wqe->type = BNXT_QPLIB_SWQE_TYPE_LOCAL_INV; in bnxt_re_build_inv_wqe()
3307 wqe->local_inv.inv_l_key = wr->ex.invalidate_rkey; in bnxt_re_build_inv_wqe()
3309 wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_SIGNAL_COMP; in bnxt_re_build_inv_wqe()
3311 wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_UC_FENCE; in bnxt_re_build_inv_wqe()
3313 wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_SOLICIT_EVENT; in bnxt_re_build_inv_wqe()
3319 struct bnxt_qplib_swqe *wqe) in bnxt_re_build_reg_wqe() argument
3332 wqe->frmr.pbl_ptr = (__le64 *)qplib_frpl->hwq.pbl_ptr[0]; in bnxt_re_build_reg_wqe()
3333 wqe->frmr.pbl_dma_ptr = qplib_frpl->hwq.pbl_dma_ptr[0]; in bnxt_re_build_reg_wqe()
3334 wqe->frmr.levels = qplib_frpl->hwq.level; in bnxt_re_build_reg_wqe()
3335 wqe->frmr.page_list = mr->pages; in bnxt_re_build_reg_wqe()
3336 wqe->frmr.page_list_len = mr->npages; in bnxt_re_build_reg_wqe()
3337 wqe->type = BNXT_QPLIB_SWQE_TYPE_REG_MR; in bnxt_re_build_reg_wqe()
3340 wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_SIGNAL_COMP; in bnxt_re_build_reg_wqe()
3342 wqe->frmr.access_cntl |= SQ_FR_PMR_ACCESS_CNTL_LOCAL_WRITE; in bnxt_re_build_reg_wqe()
3344 wqe->frmr.access_cntl |= SQ_FR_PMR_ACCESS_CNTL_REMOTE_READ; in bnxt_re_build_reg_wqe()
3346 wqe->frmr.access_cntl |= SQ_FR_PMR_ACCESS_CNTL_REMOTE_WRITE; in bnxt_re_build_reg_wqe()
3348 wqe->frmr.access_cntl |= SQ_FR_PMR_ACCESS_CNTL_REMOTE_ATOMIC; in bnxt_re_build_reg_wqe()
3350 wqe->frmr.access_cntl |= SQ_FR_PMR_ACCESS_CNTL_WINDOW_BIND; in bnxt_re_build_reg_wqe()
3353 wqe->frmr.l_key = wr->key; in bnxt_re_build_reg_wqe()
3354 wqe->frmr.length = wr->mr->length; in bnxt_re_build_reg_wqe()
3355 wqe->frmr.pbl_pg_sz_log = ilog2(PAGE_SIZE >> PAGE_SHIFT_4K); in bnxt_re_build_reg_wqe()
3356 wqe->frmr.pg_sz_log = ilog2(wr->mr->page_size >> PAGE_SHIFT_4K); in bnxt_re_build_reg_wqe()
3357 wqe->frmr.va = wr->mr->iova; in bnxt_re_build_reg_wqe()
3358 reg_len = wqe->frmr.page_list_len * wr->mr->page_size; in bnxt_re_build_reg_wqe()
3360 if (wqe->frmr.length > reg_len) { in bnxt_re_build_reg_wqe()
3363 __func__, (void *)mr, wqe->frmr.length, in bnxt_re_build_reg_wqe()
3378 struct bnxt_qplib_swqe *wqe) in bnxt_re_set_sg_list() argument
3380 wqe->sg_list = (struct bnxt_qplib_sge *)wr->sg_list; in bnxt_re_set_sg_list()
3381 wqe->num_sge = wr->num_sge; in bnxt_re_set_sg_list()
3403 struct bnxt_qplib_swqe wqe; in bnxt_re_post_send_shadow_qp() local
3410 memset(&wqe, 0, sizeof(wqe)); in bnxt_re_post_send_shadow_qp()
3419 bnxt_re_set_sg_list(wr, &wqe); in bnxt_re_post_send_shadow_qp()
3420 wqe.wr_id = wr->wr_id; in bnxt_re_post_send_shadow_qp()
3421 wqe.type = BNXT_QPLIB_SWQE_TYPE_SEND; in bnxt_re_post_send_shadow_qp()
3422 rc = bnxt_re_build_send_wqe(qp, wr, &wqe); in bnxt_re_post_send_shadow_qp()
3426 rc = bnxt_qplib_post_send(&qp->qplib_qp, &wqe); in bnxt_re_post_send_shadow_qp()
3441 static void bnxt_re_legacy_set_uc_fence(struct bnxt_qplib_swqe *wqe) in bnxt_re_legacy_set_uc_fence() argument
3446 if (wqe->type == BNXT_QPLIB_SWQE_TYPE_LOCAL_INV || in bnxt_re_legacy_set_uc_fence()
3447 wqe->type == BNXT_QPLIB_SWQE_TYPE_FAST_REG_MR || in bnxt_re_legacy_set_uc_fence()
3448 wqe->type == BNXT_QPLIB_SWQE_TYPE_REG_MR || in bnxt_re_legacy_set_uc_fence()
3449 wqe->type == BNXT_QPLIB_SWQE_TYPE_BIND_MW) in bnxt_re_legacy_set_uc_fence()
3450 wqe->flags |= BNXT_QPLIB_SWQE_FLAGS_UC_FENCE; in bnxt_re_legacy_set_uc_fence()
3458 struct bnxt_qplib_swqe wqe; in bnxt_re_post_send() local
3467 memset(&wqe, 0, sizeof(wqe)); in bnxt_re_post_send()
3476 bnxt_re_set_sg_list(wr, &wqe); in bnxt_re_post_send()
3477 wqe.wr_id = wr->wr_id; in bnxt_re_post_send()
3485 wqe.sg_list = sge; in bnxt_re_post_send()
3486 rc = bnxt_re_build_gsi_send(qp, wr, &wqe); in bnxt_re_post_send()
3490 bnxt_re_build_raw_send(wr, &wqe); in bnxt_re_post_send()
3494 wqe.rawqp1.lflags |= in bnxt_re_post_send()
3502 rc = bnxt_re_build_send_wqe(qp, wr, &wqe); in bnxt_re_post_send()
3507 rc = bnxt_re_build_rdma_wqe(wr, &wqe); in bnxt_re_post_send()
3511 rc = bnxt_re_build_atomic_wqe(wr, &wqe); in bnxt_re_post_send()
3519 rc = bnxt_re_build_inv_wqe(wr, &wqe); in bnxt_re_post_send()
3522 rc = bnxt_re_build_reg_wqe(reg_wr(wr), &wqe); in bnxt_re_post_send()
3534 bnxt_re_legacy_set_uc_fence(&wqe); in bnxt_re_post_send()
3535 rc = bnxt_qplib_post_send(&qp->qplib_qp, &wqe); in bnxt_re_post_send()
3558 struct bnxt_qplib_swqe wqe; in bnxt_re_post_recv_shadow_qp() local
3564 memset(&wqe, 0, sizeof(wqe)); in bnxt_re_post_recv_shadow_qp()
3573 wqe.sg_list = (struct bnxt_qplib_sge *)wr->sg_list; in bnxt_re_post_recv_shadow_qp()
3574 wqe.num_sge = wr->num_sge; in bnxt_re_post_recv_shadow_qp()
3575 wqe.wr_id = wr->wr_id; in bnxt_re_post_recv_shadow_qp()
3576 wqe.type = BNXT_QPLIB_SWQE_TYPE_RECV; in bnxt_re_post_recv_shadow_qp()
3577 rc = bnxt_qplib_post_recv(&qp->qplib_qp, &wqe); in bnxt_re_post_recv_shadow_qp()
3592 struct bnxt_qplib_swqe *wqe) in bnxt_re_build_gsi_recv() argument
3598 rc = bnxt_re_build_qp1_shadow_qp_recv(qp, wr, wqe); in bnxt_re_build_gsi_recv()
3600 rc = bnxt_re_build_qp1_recv(qp, wr, wqe); in bnxt_re_build_gsi_recv()
3610 struct bnxt_qplib_swqe wqe; in bnxt_re_post_recv() local
3617 memset(&wqe, 0, sizeof(wqe)); in bnxt_re_post_recv()
3624 wqe.num_sge = wr->num_sge; in bnxt_re_post_recv()
3625 wqe.sg_list = (struct bnxt_qplib_sge *)wr->sg_list; in bnxt_re_post_recv()
3626 wqe.wr_id = wr->wr_id; in bnxt_re_post_recv()
3627 wqe.type = BNXT_QPLIB_SWQE_TYPE_RECV; in bnxt_re_post_recv()
3632 wqe.sg_list = sge; in bnxt_re_post_recv()
3633 rc = bnxt_re_build_gsi_recv(qp, wr, &wqe); in bnxt_re_post_recv()
3637 rc = bnxt_qplib_post_recv(&qp->qplib_qp, &wqe); in bnxt_re_post_recv()