Skip to content
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 11 additions & 8 deletions prov/efa/src/efa_base_ep.c
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ int efa_base_ep_destruct(struct efa_base_ep *base_ep)

if (base_ep->efa_recv_wr_vec)
free(base_ep->efa_recv_wr_vec);

if (base_ep->user_recv_wr_vec)
free(base_ep->user_recv_wr_vec);

Expand Down Expand Up @@ -386,7 +386,7 @@ int efa_base_ep_enable_qp(struct efa_base_ep *base_ep, struct efa_qp *qp)
qp->qp_num = qp->ibv_qp->qp_num;

base_ep->domain->qp_table[qp->qp_num & base_ep->domain->qp_table_sz_m1] = qp;

EFA_INFO(FI_LOG_EP_CTRL, "QP enabled! qp_n: %d qkey: %d\n", qp->qp_num, qp->qkey);

return err;
Expand Down Expand Up @@ -586,11 +586,12 @@ bool efa_qp_support_op_in_order_aligned_128_bytes(struct efa_qp *qp, enum ibv_wr
* If the base_ep is not binded to an EQ, or write to EQ failed,
* this function will print the error message to console, then abort()
*
* @param[in,out] ep base endpoint
* @param[in] err OFI error code
* @param[in,out] ep base endpoint
* @param[in] err OFI error code
* @param[in] prov_errno provider error code
* @param[in] should_abort If true, aborts when no EQ is available
*/
void efa_base_ep_write_eq_error(struct efa_base_ep *ep, ssize_t err, ssize_t prov_errno)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do not think we need this commit at all, we shouldn't even call this function when the tx error can be ignored

void efa_base_ep_write_eq_error(struct efa_base_ep *ep, ssize_t err, ssize_t prov_errno, bool should_abort)
{
struct fi_eq_err_entry err_entry;
int ret = -FI_ENOEQ;
Expand All @@ -614,11 +615,13 @@ void efa_base_ep_write_eq_error(struct efa_base_ep *ep, ssize_t err, ssize_t pro
fprintf(stderr,
"Libfabric EFA provider has encountered an internal error:\n\n"
"Libfabric error: (%zd) %s\n"
"EFA internal error: (%zd) %s\n\n"
"Your application will now abort().\n",
"EFA internal error: (%zd) %s\n\n",
err, fi_strerror(err),
prov_errno, efa_strerror(prov_errno));
abort();
if (should_abort) {
fprintf(stderr, "Your application will now abort().\n");
abort();
}
}

const char *efa_base_ep_raw_addr_str(struct efa_base_ep *base_ep, char *buf, size_t *buflen)
Expand Down
3 changes: 2 additions & 1 deletion prov/efa/src/efa_base_ep.h
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,8 @@ bool efa_qp_support_op_in_order_aligned_128_bytes(struct efa_qp *qp,

void efa_base_ep_write_eq_error(struct efa_base_ep *ep,
ssize_t err,
ssize_t prov_errno);
ssize_t prov_errno,
bool should_abort);

const char *efa_base_ep_raw_addr_str(struct efa_base_ep *base_ep, char *buf,
size_t *buflen);
Expand Down
4 changes: 2 additions & 2 deletions prov/efa/src/efa_cq.c
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ static void efa_cq_handle_error(struct efa_base_ep *base_ep,
FI_LOG_CQ,
"Error writing error cq entry when handling %s error\n",
is_tx ? "TX" : "RX");
efa_base_ep_write_eq_error(base_ep, err, prov_errno);
efa_base_ep_write_eq_error(base_ep, err, prov_errno, true);
}
}

Expand Down Expand Up @@ -247,7 +247,7 @@ efa_cq_proc_ibv_recv_rdma_with_imm_completion(struct efa_base_ep *base_ep,
"operation: %s\n",
fi_strerror(-ret));
efa_base_ep_write_eq_error(base_ep, -ret,
FI_EFA_ERR_WRITE_RECV_COMP);
FI_EFA_ERR_WRITE_RECV_COMP, true);
}
}

Expand Down
2 changes: 1 addition & 1 deletion prov/efa/src/efa_domain.c
Original file line number Diff line number Diff line change
Expand Up @@ -802,7 +802,7 @@ void efa_domain_progress_rdm_peers_and_queues(struct efa_domain *domain)
peer->conn->fi_addr,
peer->conn->implicit_fi_addr,
fi_strerror(-ret));
efa_base_ep_write_eq_error(&peer->ep->base_ep, -ret, FI_EFA_ERR_PEER_HANDSHAKE);
efa_base_ep_write_eq_error(&peer->ep->base_ep, -ret, FI_EFA_ERR_PEER_HANDSHAKE, true);
continue;
}

Expand Down
12 changes: 6 additions & 6 deletions prov/efa/src/rdm/efa_rdm_cq.c
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ void efa_rdm_cq_proc_ibv_recv_rdma_with_imm_completion(
EFA_WARN(FI_LOG_CQ,
"Unable to write a cq entry for remote for RECV_RDMA operation: %s\n",
fi_strerror(-ret));
efa_base_ep_write_eq_error(&ep->base_ep, -ret, FI_EFA_ERR_WRITE_RECV_COMP);
efa_base_ep_write_eq_error(&ep->base_ep, -ret, FI_EFA_ERR_WRITE_RECV_COMP, true);
}

efa_cntr_report_rx_completion(&ep->base_ep.util_ep, flags);
Expand Down Expand Up @@ -189,7 +189,7 @@ static inline int efa_rdm_cq_populate_src_efa_ep_addr(
self_raw_addr_str, base_hdr->version,
EFA_RDM_PROTOCOL_VERSION);
efa_base_ep_write_eq_error(&ep->base_ep, FI_EIO,
FI_EFA_ERR_INVALID_PKT_TYPE);
FI_EFA_ERR_INVALID_PKT_TYPE, true);
fprintf(stderr,
"Host %s received a packet with invalid protocol "
"version %d.\n"
Expand Down Expand Up @@ -399,7 +399,7 @@ efa_rdm_cq_get_peer_for_pkt_entry(struct efa_rdm_ep *ep,
0, NULL, false, true);
if (OFI_UNLIKELY(ret != 0)) {
efa_base_ep_write_eq_error(&ep->base_ep, ret,
FI_EFA_ERR_AV_INSERT);
FI_EFA_ERR_AV_INSERT, true);
return NULL;
}
assert(implicit_fi_addr != FI_ADDR_NOTAVAIL);
Expand Down Expand Up @@ -500,7 +500,7 @@ static void efa_rdm_cq_handle_recv_completion(struct efa_ibv_cq *ibv_cq, struct
base_hdr->type);

assert(0 && "invalid REQ packet type");
efa_base_ep_write_eq_error(&ep->base_ep, FI_EIO, FI_EFA_ERR_INVALID_PKT_TYPE);
efa_base_ep_write_eq_error(&ep->base_ep, FI_EIO, FI_EFA_ERR_INVALID_PKT_TYPE, true);
efa_rdm_pke_release_rx(pkt_entry);
return;
}
Expand All @@ -518,7 +518,7 @@ static void efa_rdm_cq_handle_recv_completion(struct efa_ibv_cq *ibv_cq, struct
/* local & peer host-id & ep address will be logged by efa_rdm_write_error_msg */
if (!efa_rdm_write_error_msg(ep, pkt_entry->peer, FI_EFA_ERR_INVALID_PKT_TYPE_ZCPY_RX, errbuf, &errbuf_len))
EFA_WARN(FI_LOG_CQ, "Error: %s\n", (const char *) errbuf);
efa_base_ep_write_eq_error(&ep->base_ep, FI_EINVAL, FI_EFA_ERR_INVALID_PKT_TYPE_ZCPY_RX);
efa_base_ep_write_eq_error(&ep->base_ep, FI_EINVAL, FI_EFA_ERR_INVALID_PKT_TYPE_ZCPY_RX, true);
efa_rdm_pke_release_rx(pkt_entry);
return;
}
Expand Down Expand Up @@ -692,7 +692,7 @@ enum ibv_wc_status efa_rdm_cq_process_wc(struct efa_ibv_cq *cq, struct efa_rdm_e
if (efa_cq_wc_is_unsolicited(cq)) {
EFA_WARN(FI_LOG_CQ, "Receive error %s (%d) for unsolicited write recv",
efa_strerror(prov_errno), prov_errno);
efa_base_ep_write_eq_error(&ep->base_ep, to_fi_errno(prov_errno), prov_errno);
efa_base_ep_write_eq_error(&ep->base_ep, to_fi_errno(prov_errno), prov_errno, true);
break;
}
assert(pkt_entry);
Expand Down
4 changes: 2 additions & 2 deletions prov/efa/src/rdm/efa_rdm_ep_utils.c
Original file line number Diff line number Diff line change
Expand Up @@ -754,7 +754,7 @@ void efa_rdm_ep_post_handshake_or_queue(struct efa_rdm_ep *ep, struct efa_rdm_pe
EFA_WARN(FI_LOG_EP_CTRL,
"Failed to post HANDSHAKE to peer fi_addr: %ld implicit fi_addr %ld. %s\n",
peer->conn->fi_addr, peer->conn->implicit_fi_addr, fi_strerror(-err));
efa_base_ep_write_eq_error(&ep->base_ep, err, FI_EFA_ERR_PEER_HANDSHAKE);
efa_base_ep_write_eq_error(&ep->base_ep, err, FI_EFA_ERR_PEER_HANDSHAKE, true);
return;
}

Expand Down Expand Up @@ -1009,7 +1009,7 @@ void efa_rdm_ep_post_internal_rx_pkts(struct efa_rdm_ep *ep)

err_exit:

efa_base_ep_write_eq_error(&ep->base_ep, err, FI_EFA_ERR_INTERNAL_RX_BUF_POST);
efa_base_ep_write_eq_error(&ep->base_ep, err, FI_EFA_ERR_INTERNAL_RX_BUF_POST, true);
}

/**
Expand Down
8 changes: 4 additions & 4 deletions prov/efa/src/rdm/efa_rdm_msg.c
Original file line number Diff line number Diff line change
Expand Up @@ -767,7 +767,7 @@ efa_rdm_msg_alloc_rxe_for_msgrtm(struct efa_rdm_ep *ep,
if (ret == FI_SUCCESS) { /* A matched rxe is found */
rxe = efa_rdm_msg_alloc_matched_rxe_for_rtm(ep, *pkt_entry_ptr, peer_rxe, ofi_op_msg);
if (OFI_UNLIKELY(!rxe)) {
efa_base_ep_write_eq_error(&ep->base_ep, FI_ENOBUFS, FI_EFA_ERR_RXE_POOL_EXHAUSTED);
efa_base_ep_write_eq_error(&ep->base_ep, FI_ENOBUFS, FI_EFA_ERR_RXE_POOL_EXHAUSTED, true);
return NULL;
}
efa_rdm_tracepoint(msg_match_expected_nontagged, rxe->msg_id,
Expand All @@ -779,7 +779,7 @@ efa_rdm_msg_alloc_rxe_for_msgrtm(struct efa_rdm_ep *ep,
*/
rxe = efa_rdm_msg_alloc_unexp_rxe_for_rtm(ep, pkt_entry_ptr, ofi_op_msg);
if (OFI_UNLIKELY(!rxe)) {
efa_base_ep_write_eq_error(&ep->base_ep, FI_ENOBUFS, FI_EFA_ERR_RXE_POOL_EXHAUSTED);
efa_base_ep_write_eq_error(&ep->base_ep, FI_ENOBUFS, FI_EFA_ERR_RXE_POOL_EXHAUSTED, true);
return NULL;
}
(*pkt_entry_ptr)->ope = rxe;
Expand Down Expand Up @@ -840,7 +840,7 @@ efa_rdm_msg_alloc_rxe_for_tagrtm(struct efa_rdm_ep *ep,
if (ret == FI_SUCCESS) { /* A matched rxe is found */
rxe = efa_rdm_msg_alloc_matched_rxe_for_rtm(ep, *pkt_entry_ptr, peer_rxe, ofi_op_tagged);
if (OFI_UNLIKELY(!rxe)) {
efa_base_ep_write_eq_error(&ep->base_ep, FI_ENOBUFS, FI_EFA_ERR_RXE_POOL_EXHAUSTED);
efa_base_ep_write_eq_error(&ep->base_ep, FI_ENOBUFS, FI_EFA_ERR_RXE_POOL_EXHAUSTED, true);
return NULL;
}
efa_rdm_tracepoint(msg_match_expected_tagged, rxe->msg_id,
Expand All @@ -852,7 +852,7 @@ efa_rdm_msg_alloc_rxe_for_tagrtm(struct efa_rdm_ep *ep,
*/
rxe = efa_rdm_msg_alloc_unexp_rxe_for_rtm(ep, pkt_entry_ptr, ofi_op_tagged);
if (OFI_UNLIKELY(!rxe)) {
efa_base_ep_write_eq_error(&ep->base_ep, FI_ENOBUFS, FI_EFA_ERR_RXE_POOL_EXHAUSTED);
efa_base_ep_write_eq_error(&ep->base_ep, FI_ENOBUFS, FI_EFA_ERR_RXE_POOL_EXHAUSTED, true);
return NULL;
}
(*pkt_entry_ptr)->ope = rxe;
Expand Down
12 changes: 6 additions & 6 deletions prov/efa/src/rdm/efa_rdm_ope.c
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ void efa_rdm_txe_release(struct efa_rdm_ope *txe)
err = fi_close((struct fid *)txe->mr[i]);
if (OFI_UNLIKELY(err)) {
EFA_WARN(FI_LOG_CQ, "mr dereg failed. err=%d\n", err);
efa_base_ep_write_eq_error(&txe->ep->base_ep, err, FI_EFA_ERR_MR_DEREG);
efa_base_ep_write_eq_error(&txe->ep->base_ep, err, FI_EFA_ERR_MR_DEREG, true);
}

txe->mr[i] = NULL;
Expand Down Expand Up @@ -189,7 +189,7 @@ void efa_rdm_rxe_release_internal(struct efa_rdm_ope *rxe)
err = fi_close((struct fid *)rxe->mr[i]);
if (OFI_UNLIKELY(err)) {
EFA_WARN(FI_LOG_CQ, "mr dereg failed. err=%d\n", err);
efa_base_ep_write_eq_error(&rxe->ep->base_ep, err, FI_EFA_ERR_MR_DEREG);
efa_base_ep_write_eq_error(&rxe->ep->base_ep, err, FI_EFA_ERR_MR_DEREG, true);
}

rxe->mr[i] = NULL;
Expand Down Expand Up @@ -651,7 +651,7 @@ void efa_rdm_rxe_handle_error(struct efa_rdm_ope *rxe, int err, int prov_errno)
if (rxe->internal_flags & EFA_RDM_OPE_INTERNAL) {
EFA_WARN(FI_LOG_CQ,
"Writing eq error for rxe from internal operations\n");
efa_base_ep_write_eq_error(&ep->base_ep, err, prov_errno);
efa_base_ep_write_eq_error(&ep->base_ep, err, prov_errno, true);
return;
}

Expand All @@ -660,7 +660,7 @@ void efa_rdm_rxe_handle_error(struct efa_rdm_ope *rxe, int err, int prov_errno)
if (write_cq_err) {
EFA_WARN(FI_LOG_CQ,
"Error writing error cq entry when handling RX error\n");
efa_base_ep_write_eq_error(&ep->base_ep, err, prov_errno);
efa_base_ep_write_eq_error(&ep->base_ep, err, prov_errno, true);
}
}

Expand Down Expand Up @@ -755,7 +755,7 @@ void efa_rdm_txe_handle_error(struct efa_rdm_ope *txe, int err, int prov_errno)
if (txe->internal_flags & EFA_RDM_OPE_INTERNAL) {
EFA_WARN(FI_LOG_CQ,
"Writing eq error for txe from internal operations\n");
efa_base_ep_write_eq_error(&ep->base_ep, err, prov_errno);
efa_base_ep_write_eq_error(&ep->base_ep, err, prov_errno, true);
return;
}

Expand All @@ -764,7 +764,7 @@ void efa_rdm_txe_handle_error(struct efa_rdm_ope *txe, int err, int prov_errno)
if (write_cq_err) {
EFA_WARN(FI_LOG_CQ,
"Error writing error cq entry when handling TX error\n");
efa_base_ep_write_eq_error(&ep->base_ep, err, prov_errno);
efa_base_ep_write_eq_error(&ep->base_ep, err, prov_errno, true);
}
}

Expand Down
2 changes: 1 addition & 1 deletion prov/efa/src/rdm/efa_rdm_peer.c
Original file line number Diff line number Diff line change
Expand Up @@ -275,7 +275,7 @@ void efa_rdm_peer_move_overflow_pke_to_recvwin(struct efa_rdm_peer *peer)
/* running out of memory while copy packet */
efa_base_ep_write_eq_error(
&(overflow_pkt_entry->ep->base_ep),
FI_ENOBUFS, FI_EFA_ERR_OOM);
FI_ENOBUFS, FI_EFA_ERR_OOM, true);
return;
}
dlist_remove(&overflow_pke_list_entry->entry);
Expand Down
16 changes: 8 additions & 8 deletions prov/efa/src/rdm/efa_rdm_pke_cmd.c
Original file line number Diff line number Diff line change
Expand Up @@ -466,7 +466,7 @@ void efa_rdm_pke_handle_tx_error(struct efa_rdm_pke *pkt_entry, int prov_errno)
"While sending a handshake packet, an error occurred."
" Our address: %s, peer address: %s\n",
ep_addr_str, peer_addr_str);
efa_base_ep_write_eq_error(&ep->base_ep, err, prov_errno);
efa_base_ep_write_eq_error(&ep->base_ep, err, prov_errno, true);
break;
}
}
Expand Down Expand Up @@ -524,7 +524,7 @@ void efa_rdm_pke_handle_tx_error(struct efa_rdm_pke *pkt_entry, int prov_errno)
default:
EFA_WARN(FI_LOG_CQ, "Unknown x_entry type: %d\n", pkt_entry->ope->type);
assert(0 && "unknown x_entry state");
efa_base_ep_write_eq_error(&ep->base_ep, err, prov_errno);
efa_base_ep_write_eq_error(&ep->base_ep, err, prov_errno, true);
efa_rdm_pke_release_tx(pkt_entry);
break;
}
Expand Down Expand Up @@ -666,7 +666,7 @@ void efa_rdm_pke_handle_send_completion(struct efa_rdm_pke *pkt_entry)
"invalid control pkt type %d\n",
efa_rdm_pke_get_base_hdr(pkt_entry)->type);
assert(0 && "invalid control pkt type");
efa_base_ep_write_eq_error(&ep->base_ep, FI_EIO, FI_EFA_ERR_INVALID_PKT_TYPE);
efa_base_ep_write_eq_error(&ep->base_ep, FI_EIO, FI_EFA_ERR_INVALID_PKT_TYPE, true);
return;
}

Expand Down Expand Up @@ -713,7 +713,7 @@ void efa_rdm_pke_handle_rx_error(struct efa_rdm_pke *pkt_entry, int prov_errno)
"Packet receive error from non TX/RX packet. Our address: %s\n",
ep_addr_str);

efa_base_ep_write_eq_error(&ep->base_ep, err, prov_errno);
efa_base_ep_write_eq_error(&ep->base_ep, err, prov_errno, true);
efa_rdm_pke_release_rx(pkt_entry);
return;
}
Expand All @@ -726,7 +726,7 @@ void efa_rdm_pke_handle_rx_error(struct efa_rdm_pke *pkt_entry, int prov_errno)
EFA_WARN(FI_LOG_CQ, "unknown RDM operation entry type encountered: %d\n",
pkt_entry->ope->type);
assert(0 && "unknown x_entry state");
efa_base_ep_write_eq_error(&ep->base_ep, err, prov_errno);
efa_base_ep_write_eq_error(&ep->base_ep, err, prov_errno, true);
}

efa_rdm_pke_release_rx(pkt_entry);
Expand Down Expand Up @@ -781,14 +781,14 @@ void efa_rdm_pke_proc_received(struct efa_rdm_pke *pkt_entry)
EFA_WARN(FI_LOG_CQ,
"Received a RTS packet, which has been retired since protocol version 4\n");
assert(0 && "deprecated RTS pakcet received");
efa_base_ep_write_eq_error(&ep->base_ep, FI_EIO, FI_EFA_ERR_DEPRECATED_PKT_TYPE);
efa_base_ep_write_eq_error(&ep->base_ep, FI_EIO, FI_EFA_ERR_DEPRECATED_PKT_TYPE, true);
efa_rdm_pke_release_rx(pkt_entry);
return;
case EFA_RDM_RETIRED_CONNACK_PKT:
EFA_WARN(FI_LOG_CQ,
"Received a CONNACK packet, which has been retired since protocol version 4\n");
assert(0 && "deprecated CONNACK pakcet received");
efa_base_ep_write_eq_error(&ep->base_ep, FI_EIO, FI_EFA_ERR_DEPRECATED_PKT_TYPE);
efa_base_ep_write_eq_error(&ep->base_ep, FI_EIO, FI_EFA_ERR_DEPRECATED_PKT_TYPE, true);
efa_rdm_pke_release_rx(pkt_entry);
return;
case EFA_RDM_EOR_PKT:
Expand Down Expand Up @@ -859,7 +859,7 @@ void efa_rdm_pke_proc_received(struct efa_rdm_pke *pkt_entry)
"invalid control pkt type %d\n",
efa_rdm_pke_get_base_hdr(pkt_entry)->type);
assert(0 && "invalid control pkt type");
efa_base_ep_write_eq_error(&ep->base_ep, FI_EIO, FI_EFA_ERR_INVALID_PKT_TYPE);
efa_base_ep_write_eq_error(&ep->base_ep, FI_EIO, FI_EFA_ERR_INVALID_PKT_TYPE, true);
efa_rdm_pke_release_rx(pkt_entry);
return;
}
Expand Down
2 changes: 1 addition & 1 deletion prov/efa/src/rdm/efa_rdm_pke_nonreq.c
Original file line number Diff line number Diff line change
Expand Up @@ -832,7 +832,7 @@ void efa_rdm_pke_handle_atomrsp_recv(struct efa_rdm_pke *pkt_entry)
txe->atomic_ex.resp_iov_count, atomrsp_pkt->data,
atomrsp_hdr->seg_length);
if (OFI_UNLIKELY(ret < 0)) {
efa_base_ep_write_eq_error(&pkt_entry->ep->base_ep, -ret, EFA_IO_COMP_STATUS_LOCAL_ERROR_BAD_LENGTH);
efa_base_ep_write_eq_error(&pkt_entry->ep->base_ep, -ret, EFA_IO_COMP_STATUS_LOCAL_ERROR_BAD_LENGTH, true);
return;
}

Expand Down
10 changes: 5 additions & 5 deletions prov/efa/src/rdm/efa_rdm_pke_rta.c
Original file line number Diff line number Diff line change
Expand Up @@ -282,7 +282,7 @@ int efa_rdm_pke_proc_dc_write_rta(struct efa_rdm_pke *pkt_entry)

rxe = efa_rdm_pke_alloc_rta_rxe(pkt_entry, ofi_op_atomic);
if (OFI_UNLIKELY(!rxe)) {
efa_base_ep_write_eq_error(&pkt_entry->ep->base_ep, FI_ENOBUFS, FI_EFA_ERR_RXE_POOL_EXHAUSTED);
efa_base_ep_write_eq_error(&pkt_entry->ep->base_ep, FI_ENOBUFS, FI_EFA_ERR_RXE_POOL_EXHAUSTED, true);
efa_rdm_pke_release_rx(pkt_entry);
return -FI_ENOBUFS;
}
Expand Down Expand Up @@ -381,7 +381,7 @@ int efa_rdm_pke_proc_fetch_rta(struct efa_rdm_pke *pkt_entry)
rxe = efa_rdm_pke_alloc_rta_rxe(pkt_entry, ofi_op_atomic_fetch);
if(OFI_UNLIKELY(!rxe)) {
efa_base_ep_write_eq_error(&pkt_entry->ep->base_ep, FI_ENOBUFS,
FI_EFA_ERR_RXE_POOL_EXHAUSTED);
FI_EFA_ERR_RXE_POOL_EXHAUSTED, true);
return -FI_ENOBUFS;
}

Expand Down Expand Up @@ -511,7 +511,7 @@ int efa_rdm_pke_proc_compare_rta(struct efa_rdm_pke *pkt_entry)

rxe = efa_rdm_pke_alloc_rta_rxe(pkt_entry, ofi_op_atomic_compare);
if(OFI_UNLIKELY(!rxe)) {
efa_base_ep_write_eq_error(&pkt_entry->ep->base_ep, FI_ENOBUFS, FI_EFA_ERR_RXE_POOL_EXHAUSTED);
efa_base_ep_write_eq_error(&pkt_entry->ep->base_ep, FI_ENOBUFS, FI_EFA_ERR_RXE_POOL_EXHAUSTED, true);
efa_rdm_pke_release_rx(pkt_entry);
return -FI_ENOBUFS;
}
Expand All @@ -521,7 +521,7 @@ int efa_rdm_pke_proc_compare_rta(struct efa_rdm_pke *pkt_entry)
dt = rxe->atomic_hdr.datatype;
dtsize = ofi_datatype_size(rxe->atomic_hdr.datatype);
if (OFI_UNLIKELY(!dtsize)) {
efa_base_ep_write_eq_error(&ep->base_ep, errno, FI_EFA_ERR_INVALID_DATATYPE);
efa_base_ep_write_eq_error(&ep->base_ep, errno, FI_EFA_ERR_INVALID_DATATYPE, true);
efa_rdm_rxe_release(rxe);
efa_rdm_pke_release_rx(pkt_entry);
return -errno;
Expand Down Expand Up @@ -552,7 +552,7 @@ int efa_rdm_pke_proc_compare_rta(struct efa_rdm_pke *pkt_entry)

err = efa_rdm_ope_post_send_or_queue(rxe, EFA_RDM_ATOMRSP_PKT);
if (OFI_UNLIKELY(err)) {
efa_base_ep_write_eq_error(&ep->base_ep, err, FI_EFA_ERR_PKT_POST);
efa_base_ep_write_eq_error(&ep->base_ep, err, FI_EFA_ERR_PKT_POST, true);
ofi_buf_free(rxe->atomrsp_data);
efa_rdm_rxe_release(rxe);
efa_rdm_pke_release_rx(pkt_entry);
Expand Down
Loading