aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorSagi Grimberg <sagig@mellanox.com>2014-03-17 06:52:16 -0400
committerNicholas Bellinger <nab@linux-iscsi.org>2014-04-07 04:48:48 -0400
commitc2caa207774683bddaa628d4c848ca48cc172e0a (patch)
treeeb39eccefc9f45f649efac3aec5b5c4cd53ee0ff /drivers
parenta3662605f66473124501e8c12f7ff44999917e23 (diff)
Target/iser: Fix signature work requests accounting
As REG_SIG_MR work request and it's LOCAL_INVALIDATE are not accounted in post_send_buf_count we must color these with ISER_FASTREG_LI_WRID in order to process their error completions when the QP flushes. Signed-off-by: Sagi Grimberg <sagig@mellanox.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/infiniband/ulp/isert/ib_isert.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/infiniband/ulp/isert/ib_isert.c b/drivers/infiniband/ulp/isert/ib_isert.c
index f82fe3dccabe..e4ebb4c08358 100644
--- a/drivers/infiniband/ulp/isert/ib_isert.c
+++ b/drivers/infiniband/ulp/isert/ib_isert.c
@@ -2610,6 +2610,7 @@ isert_reg_sig_mr(struct isert_conn *isert_conn, struct se_cmd *se_cmd,
2610 if (!(fr_desc->ind & ISERT_SIG_KEY_VALID)) { 2610 if (!(fr_desc->ind & ISERT_SIG_KEY_VALID)) {
2611 memset(&inv_wr, 0, sizeof(inv_wr)); 2611 memset(&inv_wr, 0, sizeof(inv_wr));
2612 inv_wr.opcode = IB_WR_LOCAL_INV; 2612 inv_wr.opcode = IB_WR_LOCAL_INV;
2613 inv_wr.wr_id = ISER_FASTREG_LI_WRID;
2613 inv_wr.ex.invalidate_rkey = pi_ctx->sig_mr->rkey; 2614 inv_wr.ex.invalidate_rkey = pi_ctx->sig_mr->rkey;
2614 wr = &inv_wr; 2615 wr = &inv_wr;
2615 /* Bump the key */ 2616 /* Bump the key */
@@ -2619,6 +2620,7 @@ isert_reg_sig_mr(struct isert_conn *isert_conn, struct se_cmd *se_cmd,
2619 2620
2620 memset(&sig_wr, 0, sizeof(sig_wr)); 2621 memset(&sig_wr, 0, sizeof(sig_wr));
2621 sig_wr.opcode = IB_WR_REG_SIG_MR; 2622 sig_wr.opcode = IB_WR_REG_SIG_MR;
2623 sig_wr.wr_id = ISER_FASTREG_LI_WRID;
2622 sig_wr.sg_list = data_sge; 2624 sig_wr.sg_list = data_sge;
2623 sig_wr.num_sge = 1; 2625 sig_wr.num_sge = 1;
2624 sig_wr.wr.sig_handover.access_flags = IB_ACCESS_LOCAL_WRITE; 2626 sig_wr.wr.sig_handover.access_flags = IB_ACCESS_LOCAL_WRITE;