linux-rdma.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Michael Wang <yun.wang-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
To: Roland Dreier <roland-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Sean Hefty <sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	Hal Rosenstock
	<hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: Tom Tucker
	<tom-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>,
	Steve Wise
	<swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>,
	Hoang-Nam Nguyen
	<hnguyen-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>,
	Christoph Raisch <raisch-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>,
	Mike Marciniszyn
	<infinipath-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	Eli Cohen <eli-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>,
	Faisal Latif
	<faisal.latif-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	Jack Morgenstein
	<jackm-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>,
	Or Gerlitz <ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>,
	Haggai Eran <haggaie-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>,
	Ira Weiny <ira.weiny-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	Tom Talpey <tom-CLs1Zie5N5HQT0dZR+AlfA@public.gmane.org>,
	Jason Gunthorpe
	<jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>,
	Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	hal-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org,
	Michael Wang <yun.wang-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
Subject: [PATCH v4 12/27] IB/Verbs: Reform mcast related part in IB-core cma
Date: Thu, 16 Apr 2015 10:08:54 +0200	[thread overview]
Message-ID: <552F6E16.4090908@profitbricks.com> (raw)
In-Reply-To: <552F6CF2.4000606-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>


Use raw management helpers to reform mcast related part in IB-core cma.

Cc: Steve Wise <swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
Cc: Tom Talpey <tom-CLs1Zie5N5HQT0dZR+AlfA@public.gmane.org>
Cc: Jason Gunthorpe <jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
Cc: Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: Ira Weiny <ira.weiny-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: Sean Hefty <sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Signed-off-by: Michael Wang <yun.wang-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
---
 drivers/infiniband/core/cma.c | 57 +++++++++++++++----------------------------
 1 file changed, 19 insertions(+), 38 deletions(-)

diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 4adb909..377e2fb 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -997,17 +997,12 @@ 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);
-		switch (rdma_port_get_link_layer(id_priv->cma_dev->device, id_priv->id.port_num)) {
-		case IB_LINK_LAYER_INFINIBAND:
+		if (rdma_tech_ib(id_priv->cma_dev->device,
+				      id_priv->id.port_num)) {
 			ib_sa_free_multicast(mc->multicast.ib);
 			kfree(mc);
-			break;
-		case IB_LINK_LAYER_ETHERNET:
+		} else
 			kref_put(&mc->mcref, release_mc);
-			break;
-		default:
-			break;
-		}
 	}
 }
 
@@ -3314,24 +3309,13 @@ int rdma_join_multicast(struct rdma_cm_id *id, struct sockaddr *addr,
 	list_add(&mc->list, &id_priv->mc_list);
 	spin_unlock(&id_priv->lock);
 
-	switch (rdma_node_get_transport(id->device->node_type)) {
-	case RDMA_TRANSPORT_IB:
-		switch (rdma_port_get_link_layer(id->device, id->port_num)) {
-		case IB_LINK_LAYER_INFINIBAND:
-			ret = cma_join_ib_multicast(id_priv, mc);
-			break;
-		case IB_LINK_LAYER_ETHERNET:
-			kref_init(&mc->mcref);
-			ret = cma_iboe_join_multicast(id_priv, mc);
-			break;
-		default:
-			ret = -EINVAL;
-		}
-		break;
-	default:
+	if (rdma_tech_iboe(id->device, id->port_num)) {
+		kref_init(&mc->mcref);
+		ret = cma_iboe_join_multicast(id_priv, mc);
+	} else if (rdma_tech_ib(id->device, id->port_num))
+		ret = cma_join_ib_multicast(id_priv, mc);
+	else
 		ret = -ENOSYS;
-		break;
-	}
 
 	if (ret) {
 		spin_lock_irq(&id_priv->lock);
@@ -3359,19 +3343,16 @@ void rdma_leave_multicast(struct rdma_cm_id *id, struct sockaddr *addr)
 				ib_detach_mcast(id->qp,
 						&mc->multicast.ib->rec.mgid,
 						be16_to_cpu(mc->multicast.ib->rec.mlid));
-			if (rdma_node_get_transport(id_priv->cma_dev->device->node_type) == RDMA_TRANSPORT_IB) {
-				switch (rdma_port_get_link_layer(id->device, id->port_num)) {
-				case IB_LINK_LAYER_INFINIBAND:
-					ib_sa_free_multicast(mc->multicast.ib);
-					kfree(mc);
-					break;
-				case IB_LINK_LAYER_ETHERNET:
-					kref_put(&mc->mcref, release_mc);
-					break;
-				default:
-					break;
-				}
-			}
+
+			BUG_ON(id_priv->cma_dev->device != id->device);
+
+			if (rdma_tech_ib(id->device, id->port_num)) {
+				ib_sa_free_multicast(mc->multicast.ib);
+				kfree(mc);
+			} else if (rdma_tech_iboe(id->device,
+						       id->port_num))
+				kref_put(&mc->mcref, release_mc);
+
 			return;
 		}
 	}
-- 
2.1.0
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

Thread overview: 57+ 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 ` [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
     [not found]       ` <552FB6CA.1040106-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
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  8:10 ` [PATCH v4 15/27] IB/Verbs: Reform rest part in IB-core cma Michael Wang
2015-04-16  8:12 ` [PATCH v4 18/27] IB/Verbs: Use management helper cap_ib_cm() Michael Wang
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
     [not found]       ` <552FBAC7.3020304-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
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
     [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   ` [PATCH v4 03/27] IB/Verbs: Reform IB-core mad/agent/user_mad 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  8:05   ` [PATCH v4 04/27] IB/Verbs: Reform IB-core cm Michael Wang
     [not found]     ` <552F6D67.1070509-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
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  8:06   ` [PATCH v4 05/27] IB/Verbs: Reform IB-core sa_query Michael Wang
2015-04-16  8:06   ` [PATCH v4 06/27] IB/Verbs: Reform IB-core multicast Michael Wang
2015-04-16  8:07   ` [PATCH v4 07/27] IB/Verbs: Reform IB-ulp ipoib Michael Wang
2015-04-16  8:08   ` [PATCH v4 10/27] IB/Verbs: Reform cm related part in IB-core cma/ucm Michael Wang
     [not found]     ` <552F6DEA.9080701-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
2015-04-16 13:10       ` Hal Rosenstock
     [not found]         ` <552FB4D0.5080302-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-04-16 13:19           ` Michael Wang
     [not found]             ` <552FB6EF.80107-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
2015-04-16 14:31               ` Hefty, Sean
     [not found]                 ` <1828884A29C6694DAF28B7E6B8A82373A8FC22C3-P5GAC/sN6hkd3b2yrw5b5LfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-04-16 15:22                   ` Michael Wang
     [not found]                     ` <552FD3BE.4090204-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
2015-04-16 17:21                       ` Tom Talpey
     [not found]                         ` <552FEFAC.6080402-CLs1Zie5N5HQT0dZR+AlfA@public.gmane.org>
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:11                           ` Michael Wang
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
     [not found]         ` <20150416155823.GB21809-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
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:48               ` Jason Gunthorpe
2015-04-17  8:36           ` Michael Wang
2015-04-16  8:08   ` Michael Wang [this message]
2015-04-16  8:10   ` [PATCH v4 16/27] IB/Verbs: Use management helper cap_ib_mad() 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:12   ` [PATCH v4 19/27] IB/Verbs: Use management helper cap_iw_cm() Michael Wang
2015-04-16  8:13   ` [PATCH v4 22/27] IB/Verbs: Use management helper cap_ipoib() 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:15   ` [PATCH v4 26/27] IB/Verbs: Clean up rdma_ib_or_iboe() Michael Wang
2015-04-16  8:15   ` [PATCH v4 27/27] IB/Verbs: Cleanup rdma_node_get_transport() Michael Wang
     [not found]     ` <552F6FB4.3060903-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
2015-04-16 13:36       ` Hal Rosenstock
     [not found]         ` <552FBAD6.6000400-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
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:45                 ` Michael Wang
     [not found]                   ` <552FBCF4.2070105-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
2015-04-16 13:51                     ` Tom Tucker
2015-04-16  8:15 ` [PATCH v4 25/27] IB/Verbs: Use management helper cap_eth_ah() Michael Wang

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=552F6E16.4090908@profitbricks.com \
    --to=yun.wang-eikl63zcoxah+58jc4qpia@public.gmane.org \
    --cc=dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=eli-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=faisal.latif-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=haggaie-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=hal-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org \
    --cc=hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=hnguyen-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org \
    --cc=infinipath-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=ira.weiny-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=jackm-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org \
    --cc=jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=raisch-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org \
    --cc=roland-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org \
    --cc=tom-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org \
    --cc=tom-CLs1Zie5N5HQT0dZR+AlfA@public.gmane.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).