Commit 30bf1d58 authored by Sagi Grimberg's avatar Sagi Grimberg Committed by Doug Ledford

IB/iser: Handle fastreg/local_inv completion errors

Fast registration and local invalidate work requests can
also fail. We should call error completion handler for them.
Reported-by: default avatarRoi Dayan <roid@mellanox.com>
Signed-off-by: default avatarSagi Grimberg <sagig@mellanox.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent c4de4663
...@@ -1210,6 +1210,9 @@ iser_handle_comp_error(struct ib_conn *ib_conn, ...@@ -1210,6 +1210,9 @@ iser_handle_comp_error(struct ib_conn *ib_conn,
iscsi_conn_failure(iser_conn->iscsi_conn, iscsi_conn_failure(iser_conn->iscsi_conn,
ISCSI_ERR_CONN_FAILED); ISCSI_ERR_CONN_FAILED);
if (wc->wr_id == ISER_FASTREG_LI_WRID)
return;
if (is_iser_tx_desc(iser_conn, wr_id)) { if (is_iser_tx_desc(iser_conn, wr_id)) {
struct iser_tx_desc *desc = wr_id; struct iser_tx_desc *desc = wr_id;
...@@ -1254,13 +1257,11 @@ static void iser_handle_wc(struct ib_wc *wc) ...@@ -1254,13 +1257,11 @@ static void iser_handle_wc(struct ib_wc *wc)
else else
iser_dbg("flush error: wr id %llx\n", wc->wr_id); iser_dbg("flush error: wr id %llx\n", wc->wr_id);
if (wc->wr_id != ISER_FASTREG_LI_WRID &&
wc->wr_id != ISER_BEACON_WRID)
iser_handle_comp_error(ib_conn, wc);
/* complete in case all flush errors were consumed */
if (wc->wr_id == ISER_BEACON_WRID) if (wc->wr_id == ISER_BEACON_WRID)
/* all flush errors were consumed */
complete(&ib_conn->flush_comp); complete(&ib_conn->flush_comp);
else
iser_handle_comp_error(ib_conn, wc);
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment