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-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>,
linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: Michael Wang <yun.wang-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>,
Steve Wise
<swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@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>,
Ira Weiny <ira.weiny-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
Tom Tucker
<tom-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>,
Devesh Sharma
<Devesh.Sharma-iH1Dq9VlAzfQT0dZR+AlfA@public.gmane.org>,
Liran Liss <liranl-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>,
Dave Goodell <dgoodell-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
Subject: [PATCH v7 03/23] IB/Verbs: Reform IB-core mad/agent/user_mad
Date: Tue, 28 Apr 2015 17:10:03 +0200 [thread overview]
Message-ID: <1430233823-7075-4-git-send-email-yun.wang@profitbricks.com> (raw)
In-Reply-To: <1430233823-7075-1-git-send-email-yun.wang-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
Use raw management helpers to reform IB-core mad/agent/user_mad.
Cc: Hal Rosenstock <hal-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
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/agent.c | 2 +-
drivers/infiniband/core/mad.c | 43 +++++++++++++++++++-------------------
drivers/infiniband/core/user_mad.c | 26 ++++++++++++++++-------
3 files changed, 41 insertions(+), 30 deletions(-)
diff --git a/drivers/infiniband/core/agent.c b/drivers/infiniband/core/agent.c
index f6d2961..89d4fbc 100644
--- a/drivers/infiniband/core/agent.c
+++ b/drivers/infiniband/core/agent.c
@@ -156,7 +156,7 @@ int ib_agent_port_open(struct ib_device *device, int port_num)
goto error1;
}
- if (rdma_port_get_link_layer(device, port_num) == IB_LINK_LAYER_INFINIBAND) {
+ if (rdma_protocol_ib(device, port_num)) {
/* Obtain send only MAD agent for SMI QP */
port_priv->agent[0] = ib_register_mad_agent(device, port_num,
IB_QPT_SMI, NULL, 0,
diff --git a/drivers/infiniband/core/mad.c b/drivers/infiniband/core/mad.c
index 74c30f4..507eb67 100644
--- a/drivers/infiniband/core/mad.c
+++ b/drivers/infiniband/core/mad.c
@@ -2938,7 +2938,7 @@ static int ib_mad_port_open(struct ib_device *device,
init_mad_qp(port_priv, &port_priv->qp_info[1]);
cq_size = mad_sendq_size + mad_recvq_size;
- has_smi = rdma_port_get_link_layer(device, port_num) == IB_LINK_LAYER_INFINIBAND;
+ has_smi = rdma_protocol_ib(device, port_num);
if (has_smi)
cq_size *= 2;
@@ -3057,9 +3057,6 @@ static void ib_mad_init_device(struct ib_device *device)
{
int start, end, i;
- if (rdma_node_get_transport(device->node_type) != RDMA_TRANSPORT_IB)
- return;
-
if (device->node_type == RDMA_NODE_IB_SWITCH) {
start = 0;
end = 0;
@@ -3069,6 +3066,9 @@ static void ib_mad_init_device(struct ib_device *device)
}
for (i = start; i <= end; i++) {
+ if (!rdma_ib_or_iboe(device, i))
+ continue;
+
if (ib_mad_port_open(device, i)) {
dev_err(&device->dev, "Couldn't open port %d\n", i);
goto error;
@@ -3086,40 +3086,39 @@ error_agent:
dev_err(&device->dev, "Couldn't close port %d\n", i);
error:
- i--;
+ while (--i >= start) {
+ if (!rdma_ib_or_iboe(device, i))
+ continue;
- while (i >= start) {
if (ib_agent_port_close(device, i))
dev_err(&device->dev,
"Couldn't close port %d for agents\n", i);
if (ib_mad_port_close(device, i))
dev_err(&device->dev, "Couldn't close port %d\n", i);
- i--;
}
}
static void ib_mad_remove_device(struct ib_device *device)
{
- int i, num_ports, cur_port;
-
- if (rdma_node_get_transport(device->node_type) != RDMA_TRANSPORT_IB)
- return;
+ int start, end, i;
if (device->node_type == RDMA_NODE_IB_SWITCH) {
- num_ports = 1;
- cur_port = 0;
+ start = 0;
+ end = 0;
} else {
- num_ports = device->phys_port_cnt;
- cur_port = 1;
+ start = 1;
+ end = device->phys_port_cnt;
}
- for (i = 0; i < num_ports; i++, cur_port++) {
- if (ib_agent_port_close(device, cur_port))
+
+ for (i = start; i <= end; i++) {
+ if (!rdma_ib_or_iboe(device, i))
+ continue;
+
+ if (ib_agent_port_close(device, i))
dev_err(&device->dev,
- "Couldn't close port %d for agents\n",
- cur_port);
- if (ib_mad_port_close(device, cur_port))
- dev_err(&device->dev, "Couldn't close port %d\n",
- cur_port);
+ "Couldn't close port %d for agents\n", i);
+ if (ib_mad_port_close(device, i))
+ dev_err(&device->dev, "Couldn't close port %d\n", i);
}
}
diff --git a/drivers/infiniband/core/user_mad.c b/drivers/infiniband/core/user_mad.c
index 928cdd2..aa8b334 100644
--- a/drivers/infiniband/core/user_mad.c
+++ b/drivers/infiniband/core/user_mad.c
@@ -1273,9 +1273,7 @@ static void ib_umad_add_one(struct ib_device *device)
{
struct ib_umad_device *umad_dev;
int s, e, i;
-
- if (rdma_node_get_transport(device->node_type) != RDMA_TRANSPORT_IB)
- return;
+ int count = 0;
if (device->node_type == RDMA_NODE_IB_SWITCH)
s = e = 0;
@@ -1296,21 +1294,33 @@ static void ib_umad_add_one(struct ib_device *device)
umad_dev->end_port = e;
for (i = s; i <= e; ++i) {
+ if (!rdma_ib_or_iboe(device, i))
+ continue;
+
umad_dev->port[i - s].umad_dev = umad_dev;
if (ib_umad_init_port(device, i, umad_dev,
&umad_dev->port[i - s]))
goto err;
+
+ count++;
}
+ if (!count)
+ goto free;
+
ib_set_client_data(device, &umad_client, umad_dev);
return;
err:
- while (--i >= s)
- ib_umad_kill_port(&umad_dev->port[i - s]);
+ while (--i >= s) {
+ if (!rdma_ib_or_iboe(device, i))
+ continue;
+ ib_umad_kill_port(&umad_dev->port[i - s]);
+ }
+free:
kobject_put(&umad_dev->kobj);
}
@@ -1322,8 +1332,10 @@ static void ib_umad_remove_one(struct ib_device *device)
if (!umad_dev)
return;
- for (i = 0; i <= umad_dev->end_port - umad_dev->start_port; ++i)
- ib_umad_kill_port(&umad_dev->port[i]);
+ for (i = 0; i <= umad_dev->end_port - umad_dev->start_port; ++i) {
+ if (rdma_ib_or_iboe(device, i))
+ ib_umad_kill_port(&umad_dev->port[i]);
+ }
kobject_put(&umad_dev->kobj);
}
--
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
next prev parent reply other threads:[~2015-04-28 15:10 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-28 15:10 [PATCH v7 00/23] IB/Verbs: IB Management Helpers Michael Wang
2015-04-28 15:10 ` [PATCH v7 01/23] IB/Verbs: Implement new callback query_protocol() Michael Wang
2015-04-28 15:10 ` [PATCH v7 04/23] IB/Verbs: Reform IB-core cm Michael Wang
2015-04-28 19:02 ` Or Gerlitz
[not found] ` <CAJ3xEMhOg1xh5dXburjavqcy3crwWs6OoF2qEojiDxDhT-MCDw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-04-29 7:40 ` Michael Wang
2015-04-29 8:17 ` Or Gerlitz
2015-04-29 15:48 ` Or Gerlitz
2015-04-30 7:28 ` Michael Wang
2015-04-28 15:10 ` [PATCH v7 05/23] IB/Verbs: Reform IB-core sa_query Michael Wang
2015-04-28 15:10 ` [PATCH v7 06/23] IB/Verbs: Reform IB-core multicast Michael Wang
2015-04-28 15:10 ` [PATCH v7 07/23] IB/Verbs: Reform IB-ulp ipoib Michael Wang
2015-04-28 15:10 ` [PATCH v7 08/23] IB/Verbs: Reform IB-ulp xprtrdma Michael Wang
2015-04-28 15:10 ` [PATCH v7 09/23] IB/Verbs: Reform IB-core verbs Michael Wang
[not found] ` <1430233823-7075-1-git-send-email-yun.wang-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
2015-04-28 15:10 ` [PATCH v7 02/23] IB/Verbs: Implement raw management helpers Michael Wang
2015-04-28 15:10 ` Michael Wang [this message]
2015-04-28 15:10 ` [PATCH v7 10/23] IB/Verbs: Reform cm related part in IB-core cma/ucm Michael Wang
2015-04-28 15:10 ` [PATCH v7 11/23] IB/Verbs: Reform route related part in IB-core cma Michael Wang
2015-04-28 15:10 ` [PATCH v7 14/23] IB/Verbs: Reform rest " Michael Wang
2015-04-28 15:10 ` [PATCH v7 15/23] IB/Verbs: Use management helper cap_ib_mad() Michael Wang
2015-04-28 15:10 ` [PATCH v7 21/23] IB/Verbs: Use management helper cap_read_multi_sge() Michael Wang
2015-04-28 15:10 ` [PATCH v7 22/23] IB/Verbs: Use management helper cap_af_ib() Michael Wang
2015-04-28 15:10 ` [PATCH v7 23/23] IB/Verbs: Use management helper cap_eth_ah() Michael Wang
2015-05-01 6:34 ` [PATCH v7 00/23] IB/Verbs: IB Management Helpers ira.weiny
[not found] ` <20150501063428.GA30098-W4f6Xiosr+yv7QzWx2u06xL4W9x8LtSr@public.gmane.org>
2015-05-01 16:24 ` Hefty, Sean
2015-05-01 16:27 ` Weiny, Ira
2015-05-04 7:36 ` Michael Wang
2015-04-28 15:10 ` [PATCH v7 12/23] IB/Verbs: Reform mcast related part in IB-core cma Michael Wang
2015-04-28 15:10 ` [PATCH v7 13/23] IB/Verbs: Reform cma_acquire_dev() Michael Wang
2015-04-28 15:10 ` [PATCH v7 16/23] IB/Verbs: Use management helper cap_ib_smi() Michael Wang
2015-04-28 15:10 ` [PATCH v7 17/23] IB/Verbs: Use management helper cap_ib_cm() Michael Wang
2015-04-28 15:10 ` [PATCH v7 18/23] IB/Verbs: Use management helper cap_iw_cm() Michael Wang
2015-04-28 15:10 ` [PATCH v7 19/23] IB/Verbs: Use management helper cap_ib_sa() Michael Wang
2015-04-28 15:10 ` [PATCH v7 20/23] IB/Verbs: Use management helper cap_ib_mcast() Michael Wang
2015-04-29 16:28 ` [PATCH v7 00/23] IB/Verbs: IB Management Helpers Doug Ledford
[not found] ` <1430324895.102408.23.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-04-30 5:40 ` Or Gerlitz
[not found] ` <5541C044.7090800-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2015-04-30 7:00 ` Doug Ledford
[not found] ` <1430377216.102408.47.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-04-30 7:24 ` Or Gerlitz
[not found] ` <5541D8CB.8050305-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2015-04-30 8:11 ` Michael Wang
[not found] ` <5541E3BE.2080708-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
2015-04-30 8:23 ` Or Gerlitz
[not found] ` <5541E67E.4030906-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2015-04-30 8:28 ` Michael Wang
2015-04-30 7:48 ` 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=1430233823-7075-4-git-send-email-yun.wang@profitbricks.com \
--to=yun.wang-eikl63zcoxah+58jc4qpia@public.gmane.org \
--cc=Devesh.Sharma-iH1Dq9VlAzfQT0dZR+AlfA@public.gmane.org \
--cc=dgoodell-FYB4Gu1CFyUAvxtiuMwx3w@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=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=liranl-VPRAkNaXOzVWk0Htik3J/w@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