Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 73bc06b7 authored by Sagi Grimberg's avatar Sagi Grimberg Committed by Roland Dreier
Browse files

IB/iser: Replace fastreg descriptor valid bool with indicators container



In T10-PI support we will have memory keys for protection buffers and
signature transactions.  We prefer to compact indicators rather than
keeping multiple bools.

This commit does not change any functionality.

Signed-off-by: default avatarSagi Grimberg <sagig@mellanox.com>
Signed-off-by: default avatarAlex Tabachnik <alext@mellanox.com>
Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
parent 65198d6b
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -280,13 +280,17 @@ struct iser_device {
							    enum iser_data_dir cmd_dir);
};

enum iser_reg_indicator {
	ISER_DATA_KEY_VALID = 1 << 0,
};

struct fast_reg_descriptor {
	struct list_head		  list;
	/* For fast registration - FRWR */
	struct ib_mr			 *data_mr;
	struct ib_fast_reg_page_list     *data_frpl;
	/* Valid for fast registration flag */
	bool				  valid;
	/* registration indicators container */
	u8				  reg_indicators;
};

struct iser_conn {
+2 −2
Original line number Diff line number Diff line
@@ -479,7 +479,7 @@ static int iser_fast_reg_mr(struct iscsi_iser_task *iser_task,
		return -EINVAL;
	}

	if (!desc->valid) {
	if (!(desc->reg_indicators & ISER_DATA_KEY_VALID)) {
		memset(&inv_wr, 0, sizeof(inv_wr));
		inv_wr.wr_id = ISER_FASTREG_LI_WRID;
		inv_wr.opcode = IB_WR_LOCAL_INV;
@@ -514,7 +514,7 @@ static int iser_fast_reg_mr(struct iscsi_iser_task *iser_task,
		iser_err("fast registration failed, ret:%d\n", ret);
		return ret;
	}
	desc->valid = false;
	desc->reg_indicators &= ~ISER_DATA_KEY_VALID;

	sge->lkey = desc->data_mr->lkey;
	sge->addr = desc->data_frpl->page_list[0] + offset;
+1 −1
Original line number Diff line number Diff line
@@ -296,7 +296,7 @@ iser_create_fastreg_desc(struct ib_device *ib_device, struct ib_pd *pd,
	}
	iser_info("Create fr_desc %p page_list %p\n",
		  desc, desc->data_frpl->page_list);
	desc->valid = true;
	desc->reg_indicators |= ISER_DATA_KEY_VALID;

	return 0;