All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michael Wang <yun.wang@profitbricks.com>
To: Roland Dreier <roland@kernel.org>,
	Sean Hefty <sean.hefty@intel.com>,
	Hal Rosenstock <hal.rosenstock@gmail.com>,
	linux-rdma@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Tom Tucker <tom@opengridcomputing.com>,
	Steve Wise <swise@opengridcomputing.com>,
	Hoang-Nam Nguyen <hnguyen@de.ibm.com>,
	Christoph Raisch <raisch@de.ibm.com>,
	Mike Marciniszyn <infinipath@intel.com>,
	Eli Cohen <eli@mellanox.com>,
	Faisal Latif <faisal.latif@intel.com>,
	Jack Morgenstein <jackm@dev.mellanox.co.il>,
	Or Gerlitz <ogerlitz@mellanox.com>,
	Haggai Eran <haggaie@mellanox.com>,
	Ira Weiny <ira.weiny@intel.com>, Tom Talpey <tom@talpey.com>,
	Jason Gunthorpe <jgunthorpe@obsidianresearch.com>,
	Doug Ledford <dledford@redhat.com>,
	hal@dev.mellanox.co.il, Michael Wang <yun.wang@profitbricks.com>
Subject: [PATCH v4 18/27] IB/Verbs: Use management helper cap_ib_cm()
Date: Thu, 16 Apr 2015 10:12:04 +0200	[thread overview]
Message-ID: <552F6ED4.6080607@profitbricks.com> (raw)
In-Reply-To: <552F6CF2.4000606@profitbricks.com>


Introduce helper cap_ib_cm() to help us check if the port of an
IB device support Infiniband Communication Manager.

Cc: Steve Wise <swise@opengridcomputing.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Cc: Doug Ledford <dledford@redhat.com>
Cc: Ira Weiny <ira.weiny@intel.com>
Cc: Sean Hefty <sean.hefty@intel.com>
Signed-off-by: Michael Wang <yun.wang@profitbricks.com>
---
 drivers/infiniband/core/cm.c  |  6 +++---
 drivers/infiniband/core/cma.c | 19 +++++++++----------
 drivers/infiniband/core/ucm.c |  2 +-
 include/rdma/ib_verbs.h       | 15 +++++++++++++++
 4 files changed, 28 insertions(+), 14 deletions(-)

diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c
index 50321fe..63418ee 100644
--- a/drivers/infiniband/core/cm.c
+++ b/drivers/infiniband/core/cm.c
@@ -3781,7 +3781,7 @@ static void cm_add_one(struct ib_device *ib_device)
 
 	set_bit(IB_MGMT_METHOD_SEND, reg_req.method_mask);
 	for (i = 1; i <= ib_device->phys_port_cnt; i++) {
-		if (!rdma_ib_or_iboe(ib_device, i))
+		if (!cap_ib_cm(ib_device, i))
 			continue;
 
 		port = kzalloc(sizeof *port, GFP_KERNEL);
@@ -3835,7 +3835,7 @@ error1:
 	port_modify.set_port_cap_mask = 0;
 	port_modify.clr_port_cap_mask = IB_PORT_CM_SUP;
 	while (--i) {
-		if (!rdma_ib_or_iboe(ib_device, i))
+		if (!cap_ib_cm(ib_device, i))
 			continue;
 
 		port = cm_dev->port[i-1];
@@ -3866,7 +3866,7 @@ static void cm_remove_one(struct ib_device *ib_device)
 	write_unlock_irqrestore(&cm.device_lock, flags);
 
 	for (i = 1; i <= ib_device->phys_port_cnt; i++) {
-		if (!rdma_ib_or_iboe(ib_device, i))
+		if (!cap_ib_cm(ib_device, i))
 			continue;
 
 		port = cm_dev->port[i-1];
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 40ca5c6..7415078 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -767,7 +767,7 @@ int rdma_init_qp_attr(struct rdma_cm_id *id, struct ib_qp_attr *qp_attr,
 	int ret = 0;
 
 	id_priv = container_of(id, struct rdma_id_private, id);
-	if (rdma_ib_or_iboe(id_priv->id.device, 1)) {
+	if (cap_ib_cm(id_priv->id.device, 1)) {
 		if (!id_priv->cm_id.ib || (id_priv->id.qp_type == IB_QPT_UD))
 			ret = cma_ib_init_qp_attr(id_priv, qp_attr, qp_attr_mask);
 		else
@@ -1055,7 +1055,7 @@ void rdma_destroy_id(struct rdma_cm_id *id)
 	mutex_unlock(&id_priv->handler_mutex);
 
 	if (id_priv->cma_dev) {
-		if (rdma_ib_or_iboe(id_priv->id.device, 1)) {
+		if (cap_ib_cm(id_priv->id.device, 1)) {
 			if (id_priv->cm_id.ib)
 				ib_destroy_cm_id(id_priv->cm_id.ib);
 		} else if (rdma_tech_iwarp(id_priv->id.device, 1)) {
@@ -1638,8 +1638,7 @@ static void cma_listen_on_dev(struct rdma_id_private *id_priv,
 	struct rdma_cm_id *id;
 	int ret;
 
-	if (cma_family(id_priv) == AF_IB &&
-	    !rdma_ib_or_iboe(cma_dev->device, 1))
+	if (cma_family(id_priv) == AF_IB && !cap_ib_cm(cma_dev->device, 1))
 		return;
 
 	id = rdma_create_id(cma_listen_handler, id_priv, id_priv->id.ps,
@@ -2030,7 +2029,7 @@ static int cma_bind_loopback(struct rdma_id_private *id_priv)
 	mutex_lock(&lock);
 	list_for_each_entry(cur_dev, &dev_list, list) {
 		if (cma_family(id_priv) == AF_IB &&
-		    !rdma_ib_or_iboe(cur_dev->device, 1))
+		    !cap_ib_cm(cur_dev->device, 1))
 			continue;
 
 		if (!cma_dev)
@@ -2539,7 +2538,7 @@ int rdma_listen(struct rdma_cm_id *id, int backlog)
 
 	id_priv->backlog = backlog;
 	if (id->device) {
-		if (rdma_ib_or_iboe(id->device, 1)) {
+		if (cap_ib_cm(id->device, 1)) {
 			ret = cma_ib_listen(id_priv);
 			if (ret)
 				goto err;
@@ -2883,7 +2882,7 @@ int rdma_connect(struct rdma_cm_id *id, struct rdma_conn_param *conn_param)
 		id_priv->srq = conn_param->srq;
 	}
 
-	if (rdma_ib_or_iboe(id->device, 1)) {
+	if (cap_ib_cm(id->device, 1)) {
 		if (id->qp_type == IB_QPT_UD)
 			ret = cma_resolve_ib_udp(id_priv, conn_param);
 		else
@@ -2994,7 +2993,7 @@ int rdma_accept(struct rdma_cm_id *id, struct rdma_conn_param *conn_param)
 		id_priv->srq = conn_param->srq;
 	}
 
-	if (rdma_ib_or_iboe(id->device, 1)) {
+	if (cap_ib_cm(id->device, 1)) {
 		if (id->qp_type == IB_QPT_UD) {
 			if (conn_param)
 				ret = cma_send_sidr_rep(id_priv, IB_SIDR_SUCCESS,
@@ -3057,7 +3056,7 @@ int rdma_reject(struct rdma_cm_id *id, const void *private_data,
 	if (!id_priv->cm_id.ib)
 		return -EINVAL;
 
-	if (rdma_ib_or_iboe(id->device, 1)) {
+	if (cap_ib_cm(id->device, 1)) {
 		if (id->qp_type == IB_QPT_UD)
 			ret = cma_send_sidr_rep(id_priv, IB_SIDR_REJECT, 0,
 						private_data, private_data_len);
@@ -3084,7 +3083,7 @@ int rdma_disconnect(struct rdma_cm_id *id)
 	if (!id_priv->cm_id.ib)
 		return -EINVAL;
 
-	if (rdma_ib_or_iboe(id->device, 1)) {
+	if (cap_ib_cm(id->device, 1)) {
 		ret = cma_modify_qp_err(id_priv);
 		if (ret)
 			goto out;
diff --git a/drivers/infiniband/core/ucm.c b/drivers/infiniband/core/ucm.c
index 70e0ccb..f7290c8 100644
--- a/drivers/infiniband/core/ucm.c
+++ b/drivers/infiniband/core/ucm.c
@@ -1253,7 +1253,7 @@ static void ib_ucm_add_one(struct ib_device *device)
 	dev_t base;
 	struct ib_ucm_device *ucm_dev;
 
-	if (!device->alloc_ucontext || !rdma_ib_or_iboe(device, 1))
+	if (!device->alloc_ucontext || !cap_ib_cm(device, 1))
 		return;
 
 	ucm_dev = kzalloc(sizeof *ucm_dev, GFP_KERNEL);
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index 873b9a6..6805e3e 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -1803,6 +1803,21 @@ static inline int cap_ib_smi(struct ib_device *device, u8 port_num)
 	return rdma_tech_ib(device, port_num);
 }
 
+/**
+ * cap_ib_cm - Check if the port of device has the capability Infiniband
+ * Communication Manager.
+ *
+ * @device: Device to be checked
+ * @port_num: Port number of the device
+ *
+ * Return 0 when port of the device don't support Infiniband
+ * Communication Manager.
+ */
+static inline int cap_ib_cm(struct ib_device *device, u8 port_num)
+{
+	return rdma_ib_or_iboe(device, port_num);
+}
+
 int ib_query_gid(struct ib_device *device,
 		 u8 port_num, int index, union ib_gid *gid);
 
-- 
2.1.0

  parent reply	other threads:[~2015-04-16  8:12 UTC|newest]

Thread overview: 99+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-16  8:04 [PATCH v4 00/27] IB/Verbs: IB Management Helpers Michael Wang
2015-04-16  8:04 ` Michael Wang
2015-04-16  8:04 ` [PATCH v4 01/27] IB/Verbs: Implement new callback query_transport() Michael Wang
2015-04-16  8:07 ` [PATCH v4 08/27] IB/Verbs: Reform IB-ulp xprtrdma Michael Wang
2015-04-16  8:07 ` [PATCH v4 09/27] IB/Verbs: Reform IB-core verbs/uverbs_cmd/sysfs Michael Wang
2015-04-16  8:08 ` [PATCH v4 11/27] IB/Verbs: Reform route related part in IB-core cma Michael Wang
2015-04-16  8:09 ` [PATCH v4 13/27] IB/Verbs: Reserve legacy transport type in 'dev_addr' Michael Wang
2015-04-16  8:09 ` [PATCH v4 14/27] IB/Verbs: Reform cma_acquire_dev() Michael Wang
     [not found]   ` <552F6E43.2070700-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
2015-04-16 13:19     ` Hal Rosenstock
2015-04-16 13:19       ` Hal Rosenstock
     [not found]       ` <552FB6CA.1040106-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-04-16 13:35         ` Michael Wang
2015-04-16 13:35           ` Michael Wang
     [not found]           ` <552FBA93.1030304-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
2015-04-16 13:41             ` Hal Rosenstock
2015-04-16 13:41               ` Hal Rosenstock
2015-04-16  8:10 ` [PATCH v4 15/27] IB/Verbs: Reform rest part in IB-core cma Michael Wang
2015-04-16  8:12 ` Michael Wang [this message]
2015-04-16  8:12 ` [PATCH v4 20/27] IB/Verbs: Use management helper cap_ib_sa() Michael Wang
     [not found]   ` <552F6EFE.70500-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
2015-04-16 13:36     ` Hal Rosenstock
2015-04-16 13:36       ` Hal Rosenstock
     [not found]       ` <552FBAC7.3020304-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-04-16 13:38         ` Michael Wang
2015-04-16 13:38           ` Michael Wang
2015-04-16  8:13 ` [PATCH v4 21/27] IB/Verbs: Use management helper cap_ib_mcast() Michael Wang
2015-04-16  8:14 ` [PATCH v4 23/27] IB/Verbs: Use management helper cap_read_multi_sge() Michael Wang
2015-04-16  8:15 ` [PATCH v4 25/27] IB/Verbs: Use management helper cap_eth_ah() Michael Wang
     [not found] ` <552F6CF2.4000606-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
2015-04-16  8:05   ` [PATCH v4 02/27] IB/Verbs: Implement raw management helpers Michael Wang
2015-04-16  8:05     ` Michael Wang
2015-04-16  8:05   ` [PATCH v4 03/27] IB/Verbs: Reform IB-core mad/agent/user_mad Michael Wang
2015-04-16  8:05     ` Michael Wang
2015-04-16 12:43     ` Hal Rosenstock
     [not found]       ` <552FAE66.6020900-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-04-16 12:51         ` Michael Wang
2015-04-16 12:51           ` Michael Wang
2015-04-16  8:05   ` [PATCH v4 04/27] IB/Verbs: Reform IB-core cm Michael Wang
2015-04-16  8:05     ` Michael Wang
     [not found]     ` <552F6D67.1070509-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
2015-04-16 12:43       ` Hal Rosenstock
2015-04-16 12:43         ` Hal Rosenstock
     [not found]         ` <552FAE87.50303-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-04-16 12:55           ` Michael Wang
2015-04-16 12:55             ` Michael Wang
2015-04-16  8:06   ` [PATCH v4 05/27] IB/Verbs: Reform IB-core sa_query Michael Wang
2015-04-16  8:06     ` Michael Wang
2015-04-16  8:06   ` [PATCH v4 06/27] IB/Verbs: Reform IB-core multicast Michael Wang
2015-04-16  8:06     ` Michael Wang
2015-04-16  8:07   ` [PATCH v4 07/27] IB/Verbs: Reform IB-ulp ipoib Michael Wang
2015-04-16  8:07     ` Michael Wang
2015-04-16  8:08   ` [PATCH v4 10/27] IB/Verbs: Reform cm related part in IB-core cma/ucm Michael Wang
2015-04-16  8:08     ` Michael Wang
     [not found]     ` <552F6DEA.9080701-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
2015-04-16 13:10       ` Hal Rosenstock
2015-04-16 13:10         ` Hal Rosenstock
     [not found]         ` <552FB4D0.5080302-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-04-16 13:19           ` Michael Wang
2015-04-16 13:19             ` Michael Wang
     [not found]             ` <552FB6EF.80107-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
2015-04-16 14:31               ` Hefty, Sean
2015-04-16 14:31                 ` Hefty, Sean
     [not found]                 ` <1828884A29C6694DAF28B7E6B8A82373A8FC22C3-P5GAC/sN6hkd3b2yrw5b5LfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-04-16 15:22                   ` Michael Wang
2015-04-16 15:22                     ` Michael Wang
     [not found]                     ` <552FD3BE.4090204-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
2015-04-16 17:21                       ` Tom Talpey
2015-04-16 17:21                         ` Tom Talpey
     [not found]                         ` <552FEFAC.6080402-CLs1Zie5N5HQT0dZR+AlfA@public.gmane.org>
2015-04-16 17:30                           ` Hefty, Sean
2015-04-16 17:30                             ` Hefty, Sean
     [not found]                             ` <1828884A29C6694DAF28B7E6B8A82373A8FC2508-P5GAC/sN6hkd3b2yrw5b5LfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-04-17  8:27                               ` Michael Wang
2015-04-17  8:27                                 ` Michael Wang
2015-04-17  8:11                           ` Michael Wang
2015-04-17  8:11                             ` Michael Wang
2015-04-16 15:58       ` Jason Gunthorpe
2015-04-16 15:58         ` Jason Gunthorpe
2015-04-16 16:55         ` Hefty, Sean
     [not found]           ` <1828884A29C6694DAF28B7E6B8A82373A8FC2452-P5GAC/sN6hkd3b2yrw5b5LfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-04-16 16:57             ` Jason Gunthorpe
2015-04-16 16:57               ` Jason Gunthorpe
     [not found]         ` <20150416155823.GB21809-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-04-16 17:38           ` Hal Rosenstock
2015-04-16 17:38             ` Hal Rosenstock
     [not found]             ` <552FF37F.8050306-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-04-16 17:41               ` Weiny, Ira
2015-04-16 17:41                 ` Weiny, Ira
2015-04-16 17:48               ` Jason Gunthorpe
2015-04-16 17:48                 ` Jason Gunthorpe
2015-04-17  8:36           ` Michael Wang
2015-04-17  8:36             ` Michael Wang
2015-04-16  8:08   ` [PATCH v4 12/27] IB/Verbs: Reform mcast related part in IB-core cma Michael Wang
2015-04-16  8:08     ` Michael Wang
2015-04-16  8:10   ` [PATCH v4 16/27] IB/Verbs: Use management helper cap_ib_mad() Michael Wang
2015-04-16  8:10     ` Michael Wang
2015-04-16  8:11   ` [PATCH v4 17/27] IB/Verbs: Use management helper cap_ib_smi() Michael Wang
2015-04-16  8:11     ` Michael Wang
2015-04-16  8:12   ` [PATCH v4 19/27] IB/Verbs: Use management helper cap_iw_cm() Michael Wang
2015-04-16  8:12     ` Michael Wang
2015-04-16  8:13   ` [PATCH v4 22/27] IB/Verbs: Use management helper cap_ipoib() Michael Wang
2015-04-16  8:13     ` Michael Wang
2015-04-16  8:14   ` [PATCH v4 24/27] IB/Verbs: Use management helper cap_af_ib() Michael Wang
2015-04-16  8:14     ` Michael Wang
2015-04-16  8:15   ` [PATCH v4 26/27] IB/Verbs: Clean up rdma_ib_or_iboe() Michael Wang
2015-04-16  8:15     ` Michael Wang
2015-04-16  8:15   ` [PATCH v4 27/27] IB/Verbs: Cleanup rdma_node_get_transport() Michael Wang
2015-04-16  8:15     ` Michael Wang
     [not found]     ` <552F6FB4.3060903-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
2015-04-16 13:36       ` Hal Rosenstock
2015-04-16 13:36         ` Hal Rosenstock
     [not found]         ` <552FBAD6.6000400-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-04-16 13:41           ` Michael Wang
2015-04-16 13:41             ` Michael Wang
     [not found]             ` <552FBBEC.3020606-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
2015-04-16 13:42               ` Hal Rosenstock
2015-04-16 13:42                 ` Hal Rosenstock
2015-04-16 13:45                 ` Michael Wang
     [not found]                   ` <552FBCF4.2070105-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
2015-04-16 13:51                     ` Tom Tucker
2015-04-16 13:51                       ` Tom Tucker

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=552F6ED4.6080607@profitbricks.com \
    --to=yun.wang@profitbricks.com \
    --cc=dledford@redhat.com \
    --cc=eli@mellanox.com \
    --cc=faisal.latif@intel.com \
    --cc=haggaie@mellanox.com \
    --cc=hal.rosenstock@gmail.com \
    --cc=hal@dev.mellanox.co.il \
    --cc=hnguyen@de.ibm.com \
    --cc=infinipath@intel.com \
    --cc=ira.weiny@intel.com \
    --cc=jackm@dev.mellanox.co.il \
    --cc=jgunthorpe@obsidianresearch.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=ogerlitz@mellanox.com \
    --cc=raisch@de.ibm.com \
    --cc=roland@kernel.org \
    --cc=sean.hefty@intel.com \
    --cc=swise@opengridcomputing.com \
    --cc=tom@opengridcomputing.com \
    --cc=tom@talpey.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.