--- /dev/null
+From dfa032b975949be21830cfd7ad4c50a98f61a718 Mon Sep 17 00:00:00 2001
+From: Roland Dreier <roland@purestorage.com>
+Date: Fri, 29 May 2015 23:10:31 -0700
+Subject: [PATCH 1/9] RDMA/ocrdma: Fix memory leak in _ocrdma_alloc_pd()
+
+If ocrdma_get_pd_num() fails, then we need to free the pd struct we allocated.
+
+This was detected by Coverity (CID 1271245).
+
+Signed-off-by: Roland Dreier <roland@purestorage.com>
+Acked-By: Devesh Sharma <devesh.sharma@avagotech.com>
+Signed-off-by: Doug Ledford <dledford@redhat.com>
+Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
+---
+ drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
+index 736fee3..f57d070 100644
+--- a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
++++ b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
+@@ -390,7 +390,12 @@ static struct ocrdma_pd *_ocrdma_alloc_pd(struct ocrdma_dev *dev,
+
+ if (dev->pd_mgr->pd_prealloc_valid) {
+ status = ocrdma_get_pd_num(dev, pd);
+- return (status == 0) ? pd : ERR_PTR(status);
++ if (status == 0) {
++ return pd;
++ } else {
++ kfree(pd);
++ return ERR_PTR(status);
++ }
+ }
+
+ retry:
+--
+2.2.0
+
--- /dev/null
+From 5cc1f0beecc99adc2a93379317e177f7ccaefe50 Mon Sep 17 00:00:00 2001
+From: Colin Ian King <colin.king@canonical.com>
+Date: Fri, 5 Jun 2015 15:47:27 +0100
+Subject: [PATCH 2/9] RDMA/ocrdma: fix double free on pd
+
+A reorganisation of the PD allocation and deallocation in commit
+9ba1377daa ("RDMA/ocrdma: Move PD resource management to driver.")
+introduced a double free on pd, as detected by static analysis by
+smatch:
+
+drivers/infiniband/hw/ocrdma/ocrdma_verbs.c:682 ocrdma_alloc_pd()
+ error: double free of 'pd'^
+
+The original call to ocrdma_mbx_dealloc_pd() (which does not kfree
+pd) was replaced with a call to _ocrdma_dealloc_pd() (which does
+kfree pd). The kfree following this call causes the double free,
+so just remove it to fix the problem.
+
+Fixes: 9ba1377daa ("RDMA/ocrdma: Move PD resource management to driver.")
+Signed-off-by: Colin Ian King <colin.king@canonical.com>
+Acked-By: Devesh Sharma <devesh.sharma@avagotech.com>
+Signed-off-by: Doug Ledford <dledford@redhat.com>
+Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
+---
+ drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
+index f57d070..aae5601 100644
+--- a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
++++ b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
+@@ -699,7 +699,6 @@ err:
+ ocrdma_release_ucontext_pd(uctx);
+ } else {
+ status = _ocrdma_dealloc_pd(dev, pd);
+- kfree(pd);
+ }
+ exit:
+ return ERR_PTR(status);
+--
+2.2.0
+
--- /dev/null
+From ed8a600eca4fd88e98992150a12a9c04d4f9014d Mon Sep 17 00:00:00 2001
+From: Johannes Thumshirn <jthumshirn@suse.de>
+Date: Wed, 8 Jul 2015 17:23:00 +0200
+Subject: [PATCH 3/9] IB/core: Destroy ocrdma_dev_id IDR on module exit
+
+Destroy ocrdma_dev_id IDR on module exit, reclaiming the allocated memory.
+
+This was detected by the following semantic patch (written by Luis Rodriguez
+<mcgrof@suse.com>)
+<SmPL>
+@ defines_module_init @
+declarer name module_init, module_exit;
+declarer name DEFINE_IDR;
+identifier init;
+@@
+
+module_init(init);
+
+@ defines_module_exit @
+identifier exit;
+@@
+
+module_exit(exit);
+
+@ declares_idr depends on defines_module_init && defines_module_exit @
+identifier idr;
+@@
+
+DEFINE_IDR(idr);
+
+@ on_exit_calls_destroy depends on declares_idr && defines_module_exit @
+identifier declares_idr.idr, defines_module_exit.exit;
+@@
+
+exit(void)
+{
+ ...
+ idr_destroy(&idr);
+ ...
+}
+
+@ missing_module_idr_destroy depends on declares_idr && defines_module_exit && !on_exit_calls_destroy @
+identifier declares_idr.idr, defines_module_exit.exit;
+@@
+
+exit(void)
+{
+ ...
+ +idr_destroy(&idr);
+ }
+
+</SmPL>
+
+Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
+Signed-off-by: Doug Ledford <dledford@redhat.com>
+Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
+---
+ drivers/infiniband/hw/ocrdma/ocrdma_main.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_main.c b/drivers/infiniband/hw/ocrdma/ocrdma_main.c
+index 30dc904..3db5349 100644
+--- a/drivers/infiniband/hw/ocrdma/ocrdma_main.c
++++ b/drivers/infiniband/hw/ocrdma/ocrdma_main.c
+@@ -691,6 +691,7 @@ static void __exit ocrdma_exit_module(void)
+ ocrdma_unregister_inet6addr_notifier();
+ ocrdma_unregister_inetaddr_notifier();
+ ocrdma_rem_debugfs();
++ idr_destroy(&ocrdma_dev_id);
+ }
+
+ module_init(ocrdma_init_module);
+--
+2.2.0
+
--- /dev/null
+From f12e0a14e43ef02743be0f8f7898d5ddbacc2986 Mon Sep 17 00:00:00 2001
+From: Selvin Xavier <selvin.xavier@avagotech.com>
+Date: Tue, 20 Oct 2015 14:17:57 +0530
+Subject: [PATCH 4/9] RDMA/ocrdma: Avoid a possible crash in
+ ocrdma_rem_port_stats
+
+debugfs_remove should be called before freeing the driver
+stats resources to avoid any crash during ocrdma_remove.
+
+Signed-off-by: Devesh Sharma <devesh.sharma@avagotech.com>
+Signed-off-by: Selvin Xavier <selvin.xavier@avagotech.com>
+Signed-off-by: Doug Ledford <dledford@redhat.com>
+Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
+---
+ drivers/infiniband/hw/ocrdma/ocrdma_stats.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_stats.c b/drivers/infiniband/hw/ocrdma/ocrdma_stats.c
+index b9e5e10..98e1744 100644
+--- a/drivers/infiniband/hw/ocrdma/ocrdma_stats.c
++++ b/drivers/infiniband/hw/ocrdma/ocrdma_stats.c
+@@ -856,9 +856,9 @@ void ocrdma_rem_port_stats(struct ocrdma_dev *dev)
+ {
+ if (!dev->dir)
+ return;
++ debugfs_remove(dev->dir);
+ mutex_destroy(&dev->stats_lock);
+ ocrdma_release_stats_mem(dev);
+- debugfs_remove(dev->dir);
+ }
+
+ void ocrdma_init_debugfs(void)
+--
+2.2.0
+
--- /dev/null
+From 24e4da1d22895d964a00f2785240af6cec54396e Mon Sep 17 00:00:00 2001
+From: Naga Irrinki <Naga.Irrinki@avagotech.com>
+Date: Tue, 20 Oct 2015 14:17:58 +0530
+Subject: [PATCH 5/9] RDMA/ocrdma: Check resource ids received in Async CQE
+
+Some versions of the FW sends wrong QP or CQ IDs in the
+Async CQE. Adding a check to see whether qp or cq structures
+associated with the CQE is valid.
+
+Signed-off-by: Devesh Sharma <devesh.sharma@avagotech.com>
+Signed-off-by: Selvin Xavier <selvin.xavier@avagotech.com>
+Signed-off-by: Doug Ledford <dledford@redhat.com>
+Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
+---
+ drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 30 ++++++++++++++++++++++++++----
+ 1 file changed, 26 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_hw.c b/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
+index 8776e12..c12cbaa 100644
+--- a/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
++++ b/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
+@@ -678,11 +678,33 @@ static void ocrdma_dispatch_ibevent(struct ocrdma_dev *dev,
+ int dev_event = 0;
+ int type = (cqe->valid_ae_event & OCRDMA_AE_MCQE_EVENT_TYPE_MASK) >>
+ OCRDMA_AE_MCQE_EVENT_TYPE_SHIFT;
++ u16 qpid = cqe->qpvalid_qpid & OCRDMA_AE_MCQE_QPID_MASK;
++ u16 cqid = cqe->cqvalid_cqid & OCRDMA_AE_MCQE_CQID_MASK;
+
+- if (cqe->qpvalid_qpid & OCRDMA_AE_MCQE_QPVALID)
+- qp = dev->qp_tbl[cqe->qpvalid_qpid & OCRDMA_AE_MCQE_QPID_MASK];
+- if (cqe->cqvalid_cqid & OCRDMA_AE_MCQE_CQVALID)
+- cq = dev->cq_tbl[cqe->cqvalid_cqid & OCRDMA_AE_MCQE_CQID_MASK];
++ /*
++ * Some FW version returns wrong qp or cq ids in CQEs.
++ * Checking whether the IDs are valid
++ */
++
++ if (cqe->qpvalid_qpid & OCRDMA_AE_MCQE_QPVALID) {
++ if (qpid < dev->attr.max_qp)
++ qp = dev->qp_tbl[qpid];
++ if (qp == NULL) {
++ pr_err("ocrdma%d:Async event - qpid %u is not valid\n",
++ dev->id, qpid);
++ return;
++ }
++ }
++
++ if (cqe->cqvalid_cqid & OCRDMA_AE_MCQE_CQVALID) {
++ if (cqid < dev->attr.max_cq)
++ cq = dev->cq_tbl[cqid];
++ if (cq == NULL) {
++ pr_err("ocrdma%d:Async event - cqid %u is not valid\n",
++ dev->id, cqid);
++ return;
++ }
++ }
+
+ memset(&ib_evt, 0, sizeof(ib_evt));
+
+--
+2.2.0
+
--- /dev/null
+From 3c4579ec474299d5ef8c0c13d1d7538f05eb01fd Mon Sep 17 00:00:00 2001
+From: Devesh Sharma <devesh.sharma@avagotech.com>
+Date: Tue, 20 Oct 2015 14:17:59 +0530
+Subject: [PATCH 6/9] RDMA/ocrdma: Prevent CQ-Doorbell floods
+
+Changing CQ-Doorbell(DB) logic to prevent DB floods, it is supposed to be
+pressed only if any hw CQE is polled. If cq-arm was requested
+previously then don't bother about number of hw CQEs polled and
+arm the CQ.
+
+Signed-off-by: Devesh Sharma <devesh.sharma@avagotech.com>
+Signed-off-by: Selvin Xavier <selvin.xavier@avagotech.com>
+Signed-off-by: Doug Ledford <dledford@redhat.com>
+Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
+---
+ drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 11 +++--------
+ 1 file changed, 3 insertions(+), 8 deletions(-)
+
+diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
+index aae5601..45b8e09 100644
+--- a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
++++ b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
+@@ -2886,16 +2886,11 @@ expand_cqe:
+ }
+ stop_cqe:
+ cq->getp = cur_getp;
+- if (cq->deferred_arm) {
+- ocrdma_ring_cq_db(dev, cq->id, true, cq->deferred_sol,
+- polled_hw_cqes);
++ if (cq->deferred_arm || polled_hw_cqes) {
++ ocrdma_ring_cq_db(dev, cq->id, cq->deferred_arm,
++ cq->deferred_sol, polled_hw_cqes);
+ cq->deferred_arm = false;
+ cq->deferred_sol = false;
+- } else {
+- /* We need to pop the CQE. No need to arm */
+- ocrdma_ring_cq_db(dev, cq->id, false, cq->deferred_sol,
+- polled_hw_cqes);
+- cq->deferred_sol = false;
+ }
+
+ return i;
+--
+2.2.0
+
--- /dev/null
+From 81afbfac5107d1bae0077f0c53dbcb410efceb9a Mon Sep 17 00:00:00 2001
+From: Selvin Xavier <selvin.xavier@broadcom.com>
+Date: Fri, 5 Feb 2016 20:06:37 +0530
+Subject: [PATCH 7/9] RDMA/ocrdma: Initialize stats resources in the driver
+ before ib device registration.
+
+In the latest kernel, process_mad hook of the driver can be invoked as
+soon as device is registered. In this hook, ocrdma driver is issuing a
+command to get the stats counters from the HW. This is triggering system
+crash since the statistics command resources are not allocated by the driver.
+Changing the sequence of initialization to avoid this crash.
+
+Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
+Signed-off-by: Doug Ledford <dledford@redhat.com>
+---
+ drivers/infiniband/hw/ocrdma/ocrdma_main.c | 6 ++++++
+ drivers/infiniband/hw/ocrdma/ocrdma_stats.c | 14 ++++----------
+ drivers/infiniband/hw/ocrdma/ocrdma_stats.h | 2 ++
+ 3 files changed, 12 insertions(+), 10 deletions(-)
+
+diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_main.c b/drivers/infiniband/hw/ocrdma/ocrdma_main.c
+index 3db5349..b66711d 100644
+--- a/drivers/infiniband/hw/ocrdma/ocrdma_main.c
++++ b/drivers/infiniband/hw/ocrdma/ocrdma_main.c
+@@ -346,6 +346,11 @@ static int ocrdma_alloc_resources(struct ocrdma_dev *dev)
+
+ ocrdma_alloc_pd_pool(dev);
+
++ if (!ocrdma_alloc_stats_resources(dev)) {
++ pr_err("%s: stats resource allocation failed\n", __func__);
++ goto alloc_err;
++ }
++
+ spin_lock_init(&dev->av_tbl.lock);
+ spin_lock_init(&dev->flush_q_lock);
+ return 0;
+@@ -356,6 +361,7 @@ alloc_err:
+
+ static void ocrdma_free_resources(struct ocrdma_dev *dev)
+ {
++ ocrdma_release_stats_resources(dev);
+ kfree(dev->stag_arr);
+ kfree(dev->qp_tbl);
+ kfree(dev->cq_tbl);
+diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_stats.c b/drivers/infiniband/hw/ocrdma/ocrdma_stats.c
+index 98e1744..844e249 100644
+--- a/drivers/infiniband/hw/ocrdma/ocrdma_stats.c
++++ b/drivers/infiniband/hw/ocrdma/ocrdma_stats.c
+@@ -64,10 +64,11 @@ static int ocrdma_add_stat(char *start, char *pcur,
+ return cpy_len;
+ }
+
+-static bool ocrdma_alloc_stats_mem(struct ocrdma_dev *dev)
++bool ocrdma_alloc_stats_resources(struct ocrdma_dev *dev)
+ {
+ struct stats_mem *mem = &dev->stats_mem;
+
++ mutex_init(&dev->stats_lock);
+ /* Alloc mbox command mem*/
+ mem->size = max_t(u32, sizeof(struct ocrdma_rdma_stats_req),
+ sizeof(struct ocrdma_rdma_stats_resp));
+@@ -91,13 +92,14 @@ static bool ocrdma_alloc_stats_mem(struct ocrdma_dev *dev)
+ return true;
+ }
+
+-static void ocrdma_release_stats_mem(struct ocrdma_dev *dev)
++void ocrdma_release_stats_resources(struct ocrdma_dev *dev)
+ {
+ struct stats_mem *mem = &dev->stats_mem;
+
+ if (mem->va)
+ dma_free_coherent(&dev->nic_info.pdev->dev, mem->size,
+ mem->va, mem->pa);
++ mem->va = NULL;
+ kfree(mem->debugfs_mem);
+ }
+
+@@ -839,15 +841,9 @@ void ocrdma_add_port_stats(struct ocrdma_dev *dev)
+ &dev->reset_stats, &ocrdma_dbg_ops))
+ goto err;
+
+- /* Now create dma_mem for stats mbx command */
+- if (!ocrdma_alloc_stats_mem(dev))
+- goto err;
+-
+- mutex_init(&dev->stats_lock);
+
+ return;
+ err:
+- ocrdma_release_stats_mem(dev);
+ debugfs_remove_recursive(dev->dir);
+ dev->dir = NULL;
+ }
+@@ -857,8 +853,6 @@ void ocrdma_rem_port_stats(struct ocrdma_dev *dev)
+ if (!dev->dir)
+ return;
+ debugfs_remove(dev->dir);
+- mutex_destroy(&dev->stats_lock);
+- ocrdma_release_stats_mem(dev);
+ }
+
+ void ocrdma_init_debugfs(void)
+diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_stats.h b/drivers/infiniband/hw/ocrdma/ocrdma_stats.h
+index c9e58d0..bba1fec 100644
+--- a/drivers/infiniband/hw/ocrdma/ocrdma_stats.h
++++ b/drivers/infiniband/hw/ocrdma/ocrdma_stats.h
+@@ -65,6 +65,8 @@ enum OCRDMA_STATS_TYPE {
+
+ void ocrdma_rem_debugfs(void);
+ void ocrdma_init_debugfs(void);
++bool ocrdma_alloc_stats_resources(struct ocrdma_dev *dev);
++void ocrdma_release_stats_resources(struct ocrdma_dev *dev);
+ void ocrdma_rem_port_stats(struct ocrdma_dev *dev);
+ void ocrdma_add_port_stats(struct ocrdma_dev *dev);
+ int ocrdma_pma_counters(struct ocrdma_dev *dev,
+--
+2.2.0
+
--- /dev/null
+From 50f6f1cd866c23230362df3888c06e3eba2f9c9d Mon Sep 17 00:00:00 2001
+From: Selvin Xavier <selvin.xavier@broadcom.com>
+Date: Fri, 5 Feb 2016 20:06:39 +0530
+Subject: [PATCH 8/9] RDMA/ocrdma: Fix pkey_index returned by driver in rq work
+ completion
+
+Currently returning the pkey value instead of pkey index.
+pkey index is always zero since ocrdma supports only default
+pkey.
+
+Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
+Signed-off-by: Doug Ledford <dledford@redhat.com>
+---
+ drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
+index 45b8e09..3cd8e3c 100644
+--- a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
++++ b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
+@@ -2701,8 +2701,7 @@ static int ocrdma_update_ud_rcqe(struct ib_wc *ibwc, struct ocrdma_cqe *cqe)
+ OCRDMA_CQE_UD_STATUS_MASK) >> OCRDMA_CQE_UD_STATUS_SHIFT;
+ ibwc->src_qp = le32_to_cpu(cqe->flags_status_srcqpn) &
+ OCRDMA_CQE_SRCQP_MASK;
+- ibwc->pkey_index = le32_to_cpu(cqe->ud.rxlen_pkey) &
+- OCRDMA_CQE_PKEY_MASK;
++ ibwc->pkey_index = 0;
+ ibwc->wc_flags = IB_WC_GRH;
+ ibwc->byte_len = (le32_to_cpu(cqe->ud.rxlen_pkey) >>
+ OCRDMA_CQE_UD_XFER_LEN_SHIFT);
+--
+2.2.0
+
--- /dev/null
+From abab0d4223adc9390980d02b8f4e96f69f361ede Mon Sep 17 00:00:00 2001
+From: Selvin Xavier <selvin.xavier@broadcom.com>
+Date: Fri, 5 Feb 2016 20:06:40 +0530
+Subject: [PATCH 9/9] RDMA/ocrdma: Fixing ocrdma debugfs directory remove
+
+During the ocrdma device remove sequence, the debugfs directory
+tree of each ocrdma device needs to be removed. Use
+debugfs_remove_recursive instead of debugfs_remove.
+
+Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
+Signed-off-by: Doug Ledford <dledford@redhat.com>
+---
+ drivers/infiniband/hw/ocrdma/ocrdma_stats.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_stats.c b/drivers/infiniband/hw/ocrdma/ocrdma_stats.c
+index 844e249..54c0958 100644
+--- a/drivers/infiniband/hw/ocrdma/ocrdma_stats.c
++++ b/drivers/infiniband/hw/ocrdma/ocrdma_stats.c
+@@ -852,7 +852,7 @@ void ocrdma_rem_port_stats(struct ocrdma_dev *dev)
+ {
+ if (!dev->dir)
+ return;
+- debugfs_remove(dev->dir);
++ debugfs_remove_recursive(dev->dir);
+ }
+
+ void ocrdma_init_debugfs(void)
+--
+2.2.0
+
--- /dev/null
+From af8d02d973efd52342ea52d45de0e8b0c16fb6f4 Mon Sep 17 00:00:00 2001
+From: Selvin Xavier <selvin.xavier@broadcom.com>
+Date: Wed, 24 Feb 2016 18:18:07 +0530
+Subject: [PATCH] RDMA/ocrdma: Updating ocrdma version
+
+Updating ocrdma version to 11.0.0.0
+
+Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
+---
+ drivers/infiniband/hw/ocrdma/ocrdma.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/infiniband/hw/ocrdma/ocrdma.h b/drivers/infiniband/hw/ocrdma/ocrdma.h
+index c293491..7b25ca7 100644
+--- a/drivers/infiniband/hw/ocrdma/ocrdma.h
++++ b/drivers/infiniband/hw/ocrdma/ocrdma.h
+@@ -55,7 +55,7 @@
+ #include <be_roce.h>
+ #include "ocrdma_sli.h"
+
+-#define OCRDMA_ROCE_DRV_VERSION "10.6.0.0_ofed"
++#define OCRDMA_ROCE_DRV_VERSION "11.0.0.0_ofed"
+
+ #define OCRDMA_ROCE_DRV_DESC "Emulex OneConnect RoCE Driver"
+ #define OCRDMA_NODE_DESC "Emulex OneConnect RoCE HCA"
+--
+2.2.0
+