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@dev.mellanox.co.il>,
	Doug Ledford <dledford@redhat.com>,
	linux-rdma@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Michael Wang <yun.wang@profitbricks.com>,
	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>,
	Devesh Sharma <Devesh.Sharma@Emulex.Com>,
	Liran Liss <liranl@mellanox.com>,
	Dave Goodell <dgoodell@cisco.com>
Subject: [PATCH v8 20/23] IB/Verbs: Use management helper rdma_cap_ib_mcast()
Date: Tue,  5 May 2015 14:50:37 +0200	[thread overview]
Message-ID: <1430830240-32389-21-git-send-email-yun.wang@profitbricks.com> (raw)
In-Reply-To: <1430830240-32389-1-git-send-email-yun.wang@profitbricks.com>

Introduce helper rdma_cap_ib_mcast() to help us check if the port of an
IB device support Infiniband Multicast.

Signed-off-by: Michael Wang <yun.wang@profitbricks.com>
---
 drivers/infiniband/core/cma.c       |  6 +++---
 drivers/infiniband/core/multicast.c |  6 +++---
 include/rdma/ib_verbs.h             | 15 +++++++++++++++
 3 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 8def2f5..101e9cc 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -1007,7 +1007,7 @@ static void cma_leave_mc_groups(struct rdma_id_private *id_priv)
 		mc = container_of(id_priv->mc_list.next,
 				  struct cma_multicast, list);
 		list_del(&mc->list);
-		if (rdma_protocol_ib(id_priv->cma_dev->device,
+		if (rdma_cap_ib_mcast(id_priv->cma_dev->device,
 				      id_priv->id.port_num)) {
 			ib_sa_free_multicast(mc->multicast.ib);
 			kfree(mc);
@@ -3321,7 +3321,7 @@ int rdma_join_multicast(struct rdma_cm_id *id, struct sockaddr *addr,
 	if (rdma_protocol_iboe(id->device, id->port_num)) {
 		kref_init(&mc->mcref);
 		ret = cma_iboe_join_multicast(id_priv, mc);
-	} else if (rdma_protocol_ib(id->device, id->port_num))
+	} else if (rdma_cap_ib_mcast(id->device, id->port_num))
 		ret = cma_join_ib_multicast(id_priv, mc);
 	else
 		ret = -ENOSYS;
@@ -3355,7 +3355,7 @@ void rdma_leave_multicast(struct rdma_cm_id *id, struct sockaddr *addr)
 
 			BUG_ON(id_priv->cma_dev->device != id->device);
 
-			if (rdma_protocol_ib(id->device, id->port_num)) {
+			if (rdma_cap_ib_mcast(id->device, id->port_num)) {
 				ib_sa_free_multicast(mc->multicast.ib);
 				kfree(mc);
 			} else if (rdma_protocol_iboe(id->device, id->port_num))
diff --git a/drivers/infiniband/core/multicast.c b/drivers/infiniband/core/multicast.c
index b57ed03..605f20a 100644
--- a/drivers/infiniband/core/multicast.c
+++ b/drivers/infiniband/core/multicast.c
@@ -780,7 +780,7 @@ static void mcast_event_handler(struct ib_event_handler *handler,
 	int index;
 
 	dev = container_of(handler, struct mcast_device, event_handler);
-	if (WARN_ON(!rdma_protocol_ib(dev->device, event->element.port_num)))
+	if (WARN_ON(!rdma_cap_ib_mcast(dev->device, event->element.port_num)))
 		return;
 
 	index = event->element.port_num - dev->start_port;
@@ -820,7 +820,7 @@ static void mcast_add_one(struct ib_device *device)
 	}
 
 	for (i = 0; i <= dev->end_port - dev->start_port; i++) {
-		if (!rdma_protocol_ib(device, dev->start_port + i))
+		if (!rdma_cap_ib_mcast(device, dev->start_port + i))
 			continue;
 		port = &dev->port[i];
 		port->dev = dev;
@@ -858,7 +858,7 @@ static void mcast_remove_one(struct ib_device *device)
 	flush_workqueue(mcast_wq);
 
 	for (i = 0; i <= dev->end_port - dev->start_port; i++) {
-		if (rdma_protocol_ib(device, dev->start_port + i)) {
+		if (rdma_cap_ib_mcast(device, dev->start_port + i)) {
 			port = &dev->port[i];
 			deref_port(port);
 			wait_for_completion(&port->comp);
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index c3a561e8..6bbbc86 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -1849,6 +1849,21 @@ static inline bool rdma_cap_ib_sa(struct ib_device *device, u8 port_num)
 	return rdma_protocol_ib(device, port_num);
 }
 
+/**
+ * rdma_cap_ib_mcast - Check if the port of device has the capability Infiniband
+ * Multicast.
+ *
+ * @device: Device to be checked
+ * @port_num: Port number of the device
+ *
+ * Return false when port of the device don't support Infiniband
+ * Multicast.
+ */
+static inline bool rdma_cap_ib_mcast(struct ib_device *device, u8 port_num)
+{
+	return rdma_cap_ib_sa(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-05-05 12:50 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-05 12:50 [PATCH v8 00/23] IB/Verbs: IB Management Helpers Michael Wang
2015-05-05 12:50 ` Michael Wang
2015-05-05 12:50 ` [PATCH v8 01/23] IB/Verbs: Implement new callback query_protocol() Michael Wang
     [not found] ` <1430830240-32389-1-git-send-email-yun.wang-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
2015-05-05 12:50   ` [PATCH v8 02/23] IB/Verbs: Implement raw management helpers Michael Wang
2015-05-05 12:50     ` Michael Wang
2015-05-05 12:50   ` [PATCH v8 03/23] IB/Verbs: Reform IB-core mad/agent/user_mad Michael Wang
2015-05-05 12:50     ` Michael Wang
2015-05-05 12:50   ` [PATCH v8 04/23] IB/Verbs: Reform IB-core cm Michael Wang
2015-05-05 12:50     ` Michael Wang
2015-05-05 12:50   ` [PATCH v8 05/23] IB/Verbs: Reform IB-core sa_query Michael Wang
2015-05-05 12:50     ` Michael Wang
2015-05-05 12:50   ` [PATCH v8 06/23] IB/Verbs: Reform IB-core multicast Michael Wang
2015-05-05 12:50     ` Michael Wang
2015-05-05 12:50   ` [PATCH v8 07/23] IB/Verbs: Reform IB-ulp ipoib Michael Wang
2015-05-05 12:50     ` Michael Wang
2015-05-05 12:50   ` [PATCH v8 08/23] IB/Verbs: Reform IB-ulp xprtrdma Michael Wang
2015-05-05 12:50     ` Michael Wang
2015-05-05 12:50   ` [PATCH v8 09/23] IB/Verbs: Reform IB-core verbs Michael Wang
2015-05-05 12:50     ` Michael Wang
2015-05-05 12:50   ` [PATCH v8 10/23] IB/Verbs: Reform cm related part in IB-core cma/ucm Michael Wang
2015-05-05 12:50     ` Michael Wang
2015-05-05 12:50   ` [PATCH v8 11/23] IB/Verbs: Reform route related part in IB-core cma Michael Wang
2015-05-05 12:50     ` Michael Wang
2015-05-05 12:50   ` [PATCH v8 13/23] IB/Verbs: Reform cma_acquire_dev() Michael Wang
2015-05-05 12:50     ` Michael Wang
2015-05-05 12:50   ` [PATCH v8 14/23] IB/Verbs: Reform rest part in IB-core cma Michael Wang
2015-05-05 12:50     ` Michael Wang
2015-05-05 12:50   ` [PATCH v8 16/23] IB/Verbs: Use management helper rdma_cap_ib_smi() Michael Wang
2015-05-05 12:50     ` Michael Wang
2015-05-05 12:50   ` [PATCH v8 17/23] IB/Verbs: Use management helper rdma_cap_ib_cm() Michael Wang
2015-05-05 12:50     ` Michael Wang
2015-05-05 12:50   ` [PATCH v8 18/23] IB/Verbs: Use management helper rdma_cap_iw_cm() Michael Wang
2015-05-05 12:50     ` Michael Wang
2015-05-05 12:50   ` [PATCH v8 19/23] IB/Verbs: Use management helper rdma_cap_ib_sa() Michael Wang
2015-05-05 12:50     ` Michael Wang
2015-05-05 12:50   ` [PATCH v8 21/23] IB/Verbs: Use management helper rdma_cap_read_multi_sge() Michael Wang
2015-05-05 12:50     ` Michael Wang
2015-05-05 12:50   ` [PATCH v8 22/23] IB/Verbs: Use management helper rdma_cap_af_ib() Michael Wang
2015-05-05 12:50     ` Michael Wang
2015-05-05 12:50   ` [PATCH v8 23/23] IB/Verbs: Use management helper rdma_cap_eth_ah() Michael Wang
2015-05-05 12:50     ` Michael Wang
2015-05-05 14:16   ` [PATCH v8 00/23] IB/Verbs: IB Management Helpers Or Gerlitz
2015-05-05 14:16     ` Or Gerlitz
2015-05-05 14:40     ` Michael Wang
2015-05-08 16:28       ` Devesh Sharma
2015-05-11 23:49   ` ira.weiny
2015-05-11 23:49     ` ira.weiny
     [not found]     ` <20150511234910.GA20027-W4f6Xiosr+yv7QzWx2u06xL4W9x8LtSr@public.gmane.org>
2015-05-12  0:27       ` Doug Ledford
2015-05-12  0:27         ` Doug Ledford
     [not found]         ` <1431390420.43876.4.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-05-12  7:57           ` Michael Wang
2015-05-12  7:57             ` Michael Wang
2015-05-12 14:24             ` Doug Ledford
     [not found]               ` <1431440667.43876.23.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-05-12 14:28                 ` Michael Wang
2015-05-12 14:28                   ` Michael Wang
2015-05-12 18:09           ` Jason Gunthorpe
2015-05-12 18:09             ` Jason Gunthorpe
     [not found]             ` <20150512180942.GC15891-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-05-12 20:09               ` Doug Ledford
2015-05-12 20:09                 ` Doug Ledford
     [not found]                 ` <1431461362.43876.81.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-05-13  7:44                   ` Michael Wang
2015-05-13  7:44                     ` Michael Wang
2015-05-12  8:04     ` Michael Wang
2015-05-05 12:50 ` [PATCH v8 12/23] IB/Verbs: Reform mcast related part in IB-core cma Michael Wang
2015-05-05 12:50 ` [PATCH v8 15/23] IB/Verbs: Use management helper rdma_cap_ib_mad() Michael Wang
2015-05-05 12:50 ` Michael Wang [this message]

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=1430830240-32389-21-git-send-email-yun.wang@profitbricks.com \
    --to=yun.wang@profitbricks.com \
    --cc=Devesh.Sharma@Emulex.Com \
    --cc=dgoodell@cisco.com \
    --cc=dledford@redhat.com \
    --cc=eli@mellanox.com \
    --cc=faisal.latif@intel.com \
    --cc=haggaie@mellanox.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=liranl@mellanox.com \
    --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.