Commit 1d11d26c authored by Shiraz Saleem's avatar Shiraz Saleem Committed by Jason Gunthorpe
Browse files

RDMA/i40iw: Remove push code from i40iw

The push feature does not work as expected in x722 and has historically
been disabled in the driver.

Purge all remaining code related to the push feature in i40iw.

Link: https://lore.kernel.org/r/20201125005616.1800-3-shiraz.saleem@intel.com


Signed-off-by: default avatarShiraz Saleem <shiraz.saleem@intel.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
parent 2b0a999b
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -274,7 +274,6 @@ struct i40iw_device {
	u8 max_sge;
	u8 iw_status;
	u8 send_term_ok;
	bool push_mode;		/* Initialized from parameter passed to driver */

	/* x710 specific */
	struct mutex pbl_mutex;
+1 −51
Original line number Diff line number Diff line
@@ -819,46 +819,6 @@ static enum i40iw_status_code i40iw_sc_poll_for_cqp_op_done(
	return ret_code;
}

/**
 * i40iw_sc_manage_push_page - Handle push page
 * @cqp: struct for cqp hw
 * @info: push page info
 * @scratch: u64 saved to be used during cqp completion
 * @post_sq: flag for cqp db to ring
 */
static enum i40iw_status_code i40iw_sc_manage_push_page(
				struct i40iw_sc_cqp *cqp,
				struct i40iw_cqp_manage_push_page_info *info,
				u64 scratch,
				bool post_sq)
{
	u64 *wqe;
	u64 header;

	if (info->push_idx >= I40IW_MAX_PUSH_PAGE_COUNT)
		return I40IW_ERR_INVALID_PUSH_PAGE_INDEX;

	wqe = i40iw_sc_cqp_get_next_send_wqe(cqp, scratch);
	if (!wqe)
		return I40IW_ERR_RING_FULL;

	set_64bit_val(wqe, 16, info->qs_handle);

	header = LS_64(info->push_idx, I40IW_CQPSQ_MPP_PPIDX) |
		 LS_64(I40IW_CQP_OP_MANAGE_PUSH_PAGES, I40IW_CQPSQ_OPCODE) |
		 LS_64(cqp->polarity, I40IW_CQPSQ_WQEVALID) |
		 LS_64(info->free_page, I40IW_CQPSQ_MPP_FREE_PAGE);

	i40iw_insert_wqe_hdr(wqe, header);

	i40iw_debug_buf(cqp->dev, I40IW_DEBUG_WQE, "MANAGE_PUSH_PAGES WQE",
			wqe, I40IW_CQP_WQE_SIZE * 8);

	if (post_sq)
		i40iw_sc_cqp_post_sq(cqp);
	return 0;
}

/**
 * i40iw_sc_manage_hmc_pm_func_table - manage of function table
 * @cqp: struct for cqp hw
@@ -2859,9 +2819,7 @@ static enum i40iw_status_code i40iw_sc_qp_setctx(
	      LS_64(qp->rcv_tph_en, I40IWQPC_RCVTPHEN) |
	      LS_64(qp->xmit_tph_en, I40IWQPC_XMITTPHEN) |
	      LS_64(qp->rq_tph_en, I40IWQPC_RQTPHEN) |
	      LS_64(qp->sq_tph_en, I40IWQPC_SQTPHEN) |
	      LS_64(info->push_idx, I40IWQPC_PPIDX) |
	      LS_64(info->push_mode_en, I40IWQPC_PMENA);
	      LS_64(qp->sq_tph_en, I40IWQPC_SQTPHEN);

	set_64bit_val(qp_ctx, 8, qp->sq_pa);
	set_64bit_val(qp_ctx, 16, qp->rq_pa);
@@ -4291,13 +4249,6 @@ static enum i40iw_status_code i40iw_exec_cqp_cmd(struct i40iw_sc_dev *dev,
				pcmdinfo->in.u.add_arp_cache_entry.scratch,
				pcmdinfo->post_sq);
		break;
	case OP_MANAGE_PUSH_PAGE:
		status = i40iw_sc_manage_push_page(
				pcmdinfo->in.u.manage_push_page.cqp,
				&pcmdinfo->in.u.manage_push_page.info,
				pcmdinfo->in.u.manage_push_page.scratch,
				pcmdinfo->post_sq);
		break;
	case OP_UPDATE_PE_SDS:
		/* case I40IW_CQP_OP_UPDATE_PE_SDS */
		status = i40iw_update_pe_sds(
@@ -5173,7 +5124,6 @@ static const struct i40iw_mr_ops iw_mr_ops = {
};

static const struct i40iw_cqp_misc_ops iw_cqp_misc_ops = {
	.manage_push_page = i40iw_sc_manage_push_page,
	.manage_hmc_pm_func_table = i40iw_sc_manage_hmc_pm_func_table,
	.set_hmc_resource_profile = i40iw_sc_set_hmc_resource_profile,
	.commit_fpm_values = i40iw_sc_commit_fpm_values,
+12 −23
Original line number Diff line number Diff line
@@ -40,11 +40,6 @@
#define I40IW_DB_ADDR_OFFSET    (4 * 1024 * 1024 - 64 * 1024)
#define I40IW_VF_DB_ADDR_OFFSET (64 * 1024)

#define I40IW_PUSH_OFFSET       (4 * 1024 * 1024)
#define I40IW_PF_FIRST_PUSH_PAGE_INDEX 16
#define I40IW_VF_PUSH_OFFSET    ((8 + 64) * 1024)
#define I40IW_VF_FIRST_PUSH_PAGE_INDEX 2

#define I40IW_PE_DB_SIZE_4M     1
#define I40IW_PE_DB_SIZE_8M     2

@@ -402,7 +397,6 @@
#define I40IW_CQP_OP_MANAGE_LOC_MAC_IP_TABLE    0x0e
#define I40IW_CQP_OP_MANAGE_ARP                 0x0f
#define I40IW_CQP_OP_MANAGE_VF_PBLE_BP          0x10
#define I40IW_CQP_OP_MANAGE_PUSH_PAGES          0x11
#define I40IW_CQP_OP_QUERY_RDMA_FEATURES	0x12
#define I40IW_CQP_OP_UPLOAD_CONTEXT             0x13
#define I40IW_CQP_OP_ALLOCATE_LOC_MAC_IP_TABLE_ENTRY 0x14
@@ -843,7 +837,6 @@
#define I40IW_CQPSQ_MVPBP_PD_PLPBA_MASK \
	(0x1fffffffffffffffULL << I40IW_CQPSQ_MVPBP_PD_PLPBA_SHIFT)

/* Manage Push Page - MPP */
#define I40IW_INVALID_PUSH_PAGE_INDEX 0xffff

#define I40IW_CQPSQ_MPP_QS_HANDLE_SHIFT 0
@@ -1352,9 +1345,6 @@
#define I40IWQPSQ_ADDFRAGCNT_SHIFT 38
#define I40IWQPSQ_ADDFRAGCNT_MASK (0x7ULL << I40IWQPSQ_ADDFRAGCNT_SHIFT)

#define I40IWQPSQ_PUSHWQE_SHIFT 56
#define I40IWQPSQ_PUSHWQE_MASK (1ULL << I40IWQPSQ_PUSHWQE_SHIFT)

#define I40IWQPSQ_STREAMMODE_SHIFT 58
#define I40IWQPSQ_STREAMMODE_MASK (1ULL << I40IWQPSQ_STREAMMODE_SHIFT)

@@ -1740,18 +1730,17 @@ enum i40iw_alignment {
#define OP_MW_ALLOC                             20
#define OP_QP_FLUSH_WQES                        21
#define OP_ADD_ARP_CACHE_ENTRY                  22
#define OP_MANAGE_PUSH_PAGE                     23
#define OP_UPDATE_PE_SDS                        24
#define OP_MANAGE_HMC_PM_FUNC_TABLE             25
#define OP_SUSPEND                              26
#define OP_RESUME                               27
#define OP_MANAGE_VF_PBLE_BP                    28
#define OP_QUERY_FPM_VALUES                     29
#define OP_COMMIT_FPM_VALUES                    30
#define OP_REQUESTED_COMMANDS                   31
#define OP_COMPLETED_COMMANDS                   32
#define OP_GEN_AE                               33
#define OP_QUERY_RDMA_FEATURES                  34
#define OP_SIZE_CQP_STAT_ARRAY			35
#define OP_UPDATE_PE_SDS                        23
#define OP_MANAGE_HMC_PM_FUNC_TABLE             24
#define OP_SUSPEND                              25
#define OP_RESUME                               26
#define OP_MANAGE_VF_PBLE_BP                    27
#define OP_QUERY_FPM_VALUES                     28
#define OP_COMMIT_FPM_VALUES                    29
#define OP_REQUESTED_COMMANDS                   30
#define OP_COMPLETED_COMMANDS                   31
#define OP_GEN_AE                               32
#define OP_QUERY_RDMA_FEATURES                  33
#define OP_SIZE_CQP_STAT_ARRAY			34

#endif
+0 −1
Original line number Diff line number Diff line
@@ -61,7 +61,6 @@ enum i40iw_status_code {
	I40IW_ERR_QUEUE_EMPTY = -22,
	I40IW_ERR_INVALID_ALIGNMENT = -23,
	I40IW_ERR_FLUSHED_QUEUE = -24,
	I40IW_ERR_INVALID_PUSH_PAGE_INDEX = -25,
	I40IW_ERR_INVALID_INLINE_DATA_SIZE = -26,
	I40IW_ERR_TIMEOUT = -27,
	I40IW_ERR_OPCODE_MISMATCH = -28,
+0 −18
Original line number Diff line number Diff line
@@ -387,7 +387,6 @@ struct i40iw_sc_qp {
	u8 *q2_buf;
	u64 qp_compl_ctx;
	u16 qs_handle;
	u16 push_idx;
	u8 sq_tph_val;
	u8 rq_tph_val;
	u8 qp_state;
@@ -749,8 +748,6 @@ struct i40iw_qp_host_ctx_info {
	struct i40iwarp_offload_info *iwarp_info;
	u32 send_cq_num;
	u32 rcv_cq_num;
	u16 push_idx;
	bool push_mode_en;
	bool tcp_info_valid;
	bool iwarp_info_valid;
	bool err_rq_idx_valid;
@@ -937,12 +934,6 @@ struct i40iw_local_mac_ipaddr_entry_info {
	u8 entry_idx;
};

struct i40iw_cqp_manage_push_page_info {
	u32 push_idx;
	u16 qs_handle;
	u8 free_page;
};

struct i40iw_qp_flush_info {
	u16 sq_minor_code;
	u16 sq_major_code;
@@ -1114,9 +1105,6 @@ struct i40iw_mr_ops {
};

struct i40iw_cqp_misc_ops {
	enum i40iw_status_code (*manage_push_page)(struct i40iw_sc_cqp *,
						   struct i40iw_cqp_manage_push_page_info *,
						   u64, bool);
	enum i40iw_status_code (*manage_hmc_pm_func_table)(struct i40iw_sc_cqp *,
							   u64, u8, bool, bool);
	enum i40iw_status_code (*set_hmc_resource_profile)(struct i40iw_sc_cqp *,
@@ -1253,12 +1241,6 @@ struct cqp_info {
			u64 scratch;
		} manage_vf_pble_bp;

		struct {
			struct i40iw_sc_cqp *cqp;
			struct i40iw_cqp_manage_push_page_info info;
			u64 scratch;
		} manage_push_page;

		struct {
			struct i40iw_sc_dev *dev;
			struct i40iw_upload_context_info info;
Loading