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

Commit 4f1df844 authored by Selvin Xavier's avatar Selvin Xavier Committed by Roland Dreier
Browse files

RDMA/ocrdma: Increase the size of STAG array in dev structure to 16K



HW can support 16K STAG entries.  Change this max limit.  Also, move
this array out of ocrdma_dev to reduce the size of this structure.

Signed-off-by: default avatarDevesh Sharma <devesh.sharma@emulex.com>
Signed-off-by: default avatarSelvin Xavier <selvin.xavier@emulex.com>
Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
parent 920de55d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -236,7 +236,7 @@ struct ocrdma_dev {
	struct list_head entry;
	struct rcu_head rcu;
	int id;
	u64 stag_arr[OCRDMA_MAX_STAG];
	u64 *stag_arr;
	u8 sl; /* service level */
	bool pfc_state;
	atomic_t update_sl;
+6 −0
Original line number Diff line number Diff line
@@ -324,6 +324,11 @@ static int ocrdma_alloc_resources(struct ocrdma_dev *dev)
		if (!dev->qp_tbl)
			goto alloc_err;
	}

	dev->stag_arr = kzalloc(sizeof(u64) * OCRDMA_MAX_STAG, GFP_KERNEL);
	if (dev->stag_arr == NULL)
		goto alloc_err;

	spin_lock_init(&dev->av_tbl.lock);
	spin_lock_init(&dev->flush_q_lock);
	return 0;
@@ -334,6 +339,7 @@ static int ocrdma_alloc_resources(struct ocrdma_dev *dev)

static void ocrdma_free_resources(struct ocrdma_dev *dev)
{
	kfree(dev->stag_arr);
	kfree(dev->qp_tbl);
	kfree(dev->cq_tbl);
	kfree(dev->sgid_tbl);
+1 −1
Original line number Diff line number Diff line
@@ -107,7 +107,7 @@ enum {

#define OCRDMA_MAX_QP    2048
#define OCRDMA_MAX_CQ    2048
#define OCRDMA_MAX_STAG  8192
#define OCRDMA_MAX_STAG 16384

enum {
	OCRDMA_DB_RQ_OFFSET		= 0xE0,