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;
}
--