RDMA/ib: ctxt refresh #2

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
diff --git a/queue/RDMA-qedr-Fix-synchronization-methods-and-memory-lea.patch b/queue/RDMA-qedr-Fix-synchronization-methods-and-memory-lea.patch
index 49f1d61..c10d7ac 100644
--- a/queue/RDMA-qedr-Fix-synchronization-methods-and-memory-lea.patch
+++ b/queue/RDMA-qedr-Fix-synchronization-methods-and-memory-lea.patch
@@ -1,4 +1,4 @@
-From 82af6d19d8d9227c22a53ff00b40fb2a4f9fce69 Mon Sep 17 00:00:00 2001
+From 585c4ac7bd7a26e989f657ed575c0401ef4f1402 Mon Sep 17 00:00:00 2001
 From: Michal Kalderon <michal.kalderon@marvell.com>
 Date: Sun, 27 Oct 2019 22:04:50 +0200
 Subject: [PATCH] RDMA/qedr: Fix synchronization methods and memory leaks in
@@ -46,7 +46,7 @@
 Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
 
 diff --git a/drivers/infiniband/hw/qedr/qedr.h b/drivers/infiniband/hw/qedr/qedr.h
-index 0cfd849b13d6..8e927f6c1520 100644
+index 6175d1e98717..8a9b0ee7dbc5 100644
 --- a/drivers/infiniband/hw/qedr/qedr.h
 +++ b/drivers/infiniband/hw/qedr/qedr.h
 @@ -40,6 +40,7 @@
@@ -57,7 +57,7 @@
  #include "qedr_hsi_rdma.h"
  
  #define QEDR_NODE_DESC "QLogic 579xx RoCE HCA"
-@@ -377,10 +378,20 @@ enum qedr_qp_err_bitmap {
+@@ -375,10 +376,20 @@ enum qedr_qp_err_bitmap {
  	QEDR_QP_ERR_RQ_PBL_FULL = 32,
  };
  
@@ -79,7 +79,7 @@
  	struct qedr_qp_hwq_info sq;
  	struct qedr_qp_hwq_info rq;
  
-@@ -395,6 +406,7 @@ struct qedr_qp {
+@@ -393,6 +404,7 @@ struct qedr_qp {
  	u32 id;
  	struct qedr_pd *pd;
  	enum ib_qp_type qp_type;
@@ -87,7 +87,7 @@
  	struct qed_rdma_qp *qed_qp;
  	u32 qp_id;
  	u16 icid;
-@@ -437,8 +449,11 @@ struct qedr_qp {
+@@ -435,8 +447,11 @@ struct qedr_qp {
  	/* Relevant to qps created from user space only (applications) */
  	struct qedr_userq usq;
  	struct qedr_userq urq;
@@ -101,7 +101,7 @@
  };
  
  struct qedr_ah {
-@@ -531,7 +546,7 @@ struct qedr_iw_ep {
+@@ -529,7 +544,7 @@ struct qedr_iw_ep {
  	struct iw_cm_id	*cm_id;
  	struct qedr_qp	*qp;
  	void		*qed_context;
@@ -426,7 +426,7 @@
  
  struct ib_qp *qedr_iw_get_qp(struct ib_device *ibdev, int qpn)
 diff --git a/drivers/infiniband/hw/qedr/verbs.c b/drivers/infiniband/hw/qedr/verbs.c
-index 84b666c67cff..a17b388ee3b3 100644
+index c4f9ad2f6f37..2b1ec2d43e74 100644
 --- a/drivers/infiniband/hw/qedr/verbs.c
 +++ b/drivers/infiniband/hw/qedr/verbs.c
 @@ -51,6 +51,7 @@
@@ -437,7 +437,7 @@
  
  #define QEDR_SRQ_WQE_ELEM_SIZE	sizeof(union rdma_srq_elm)
  #define	RDMA_MAX_SGE_PER_SRQ	(4)
-@@ -1193,7 +1194,10 @@ static void qedr_set_common_qp_params(struct qedr_dev *dev,
+@@ -1226,7 +1227,10 @@ static void qedr_set_common_qp_params(struct qedr_dev *dev,
  				      struct ib_qp_init_attr *attrs)
  {
  	spin_lock_init(&qp->q_lock);
@@ -449,7 +449,7 @@
  	qp->pd = pd;
  	qp->qp_type = attrs->qp_type;
  	qp->max_inline_data = attrs->cap.max_inline_data;
-@@ -1592,6 +1596,7 @@ static int qedr_create_user_qp(struct qedr_dev *dev,
+@@ -1635,6 +1639,7 @@ static int qedr_create_user_qp(struct qedr_dev *dev,
  	int alloc_and_init = rdma_protocol_roce(&dev->ibdev, 1);
  	int rc = -EINVAL;
  
@@ -457,7 +457,7 @@
  	memset(&ureq, 0, sizeof(ureq));
  	rc = ib_copy_from_udata(&ureq, udata, sizeof(ureq));
  	if (rc) {
-@@ -1805,6 +1810,7 @@ static int qedr_create_kernel_qp(struct qedr_dev *dev,
+@@ -1848,6 +1853,7 @@ static int qedr_create_kernel_qp(struct qedr_dev *dev,
  	u32 n_sq_entries;
  
  	memset(&in_params, 0, sizeof(in_params));
@@ -465,7 +465,7 @@
  
  	/* A single work request may take up to QEDR_MAX_SQ_WQE_SIZE elements in
  	 * the ring. The ring should allow at least a single WR, even if the
-@@ -2437,7 +2443,7 @@ static int qedr_free_qp_resources(struct qedr_dev *dev, struct qedr_qp *qp,
+@@ -2480,7 +2486,7 @@ static int qedr_free_qp_resources(struct qedr_dev *dev, struct qedr_qp *qp,
  			return rc;
  	}
  
@@ -474,7 +474,7 @@
  		qedr_cleanup_user(dev, qp);
  	else
  		qedr_cleanup_kernel(dev, qp);
-@@ -2467,34 +2473,44 @@ int qedr_destroy_qp(struct ib_qp *ibqp, struct ib_udata *udata)
+@@ -2511,34 +2517,44 @@ int qedr_destroy_qp(struct ib_qp *ibqp, struct ib_udata *udata)
  			qedr_modify_qp(ibqp, &attr, attr_mask, NULL);
  		}
  	} else {
@@ -537,7 +537,7 @@
 +	if (rdma_protocol_iwarp(&dev->ibdev, 1))
 +		qedr_iw_qp_rem_ref(&qp->ibqp);
 +
- 	return 0;
+ 	return rc;
  }
  
 --