All of lore.kernel.org
 help / color / mirror / Atom feed
From: "ira.weiny" <ira.weiny@intel.com>
To: Michael Wang <yun.wang@profitbricks.com>
Cc: Doug Ledford <dledford@redhat.com>,
	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,
	linux-nfs@vger.kernel.org, netdev@vger.kernel.org,
	"J. Bruce Fields" <bfields@fieldses.org>,
	Trond Myklebust <trond.myklebust@primarydata.com>,
	"David S. Miller" <davem@davemloft.net>,
	Or Gerlitz <ogerlitz@mellanox.com>,
	Moni Shoua <monis@mellanox.com>,
	PJ Waskiewicz <pj.waskiewicz@solidfire.com>,
	Tatyana Nikolova <Tatyana.E.Nikolova@intel.com>,
	Yan Burman <yanb@mellanox.com>,
	Jack Morgenstein <jackm@dev.mellanox.co.il>,
	Bart Van Assche <bvanassche@acm.org>,
	Yann Droneaud <ydroneaud@opteya.com>,
	Colin Ian King <colin.king@canonical.com>,
	Majd Dibbiny <majd@mellanox.com>, Jiri Kosina <jkosina@suse.cz>,
	Matan Barak <matanb@mellanox.com>, Alex Estrin <alex.estrin>
Subject: Re: [RFC PATCH 07/11] IB/Verbs: Use management helper has_mcast() and, cap_mcast() for mcast-check
Date: Mon, 30 Mar 2015 19:47:17 -0400	[thread overview]
Message-ID: <20150330234717.GA28446@phlsvsds.ph.intel.com> (raw)
In-Reply-To: <551977E0.5030001@profitbricks.com>

On Mon, Mar 30, 2015 at 06:20:48PM +0200, Michael Wang wrote:
> On 03/30/2015 06:11 PM, Doug Ledford wrote:
> > On Fri, 2015-03-27 at 16:46 +0100, Michael Wang wrote:
> >> Introduce helper has_mcast() and cap_mcast() to help us check if an
> >> IB device or it's port support Multicast.
> > This probably needs reworded or rethought.  In truth, *all* rdma devices
> > are multicast capable.  *BUT*, IB/OPA devices require multicast
> > registration done the IB way (including for sendonly multicast sends),
> > while Ethernet devices do multicast the Ethernet way.  These tests are
> > really just for IB specific multicast registration and deregistration.
> > Call it has_mcast() and cap_mcast() is incorrect.
> 
> Thanks for the explanation :-)
> 
> Jason also mentioned we should use cap_ib_XX() instead, I'll use
> that name then we can distinguish the management between
> Eth and IB/OPA.
> 
> Regards,
> Michael Wang
> 
> 
> >
> >> 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/cma.c       |  2 +-
> >>  drivers/infiniband/core/multicast.c |  8 ++++----
> >>  include/rdma/ib_verbs.h             | 28 ++++++++++++++++++++++++++++
> >>  3 files changed, 33 insertions(+), 5 deletions(-)
> >>
> >> diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
> >> index 276fb76..cbbc85b 100644
> >> --- a/drivers/infiniband/core/cma.c
> >> +++ b/drivers/infiniband/core/cma.c
> >> @@ -3398,7 +3398,7 @@ 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_transport_is_ib(id_priv->cma_dev->device)) {
> >> +            if (has_mcast(id_priv->cma_dev->device)) {


You need a similar check in rdma_join_multicast.

Ira


> >>                  switch (rdma_port_get_link_layer(id->device, id->port_num)) {
> >>                  case IB_LINK_LAYER_INFINIBAND:
> >>                      ib_sa_free_multicast(mc->multicast.ib);
> >> diff --git a/drivers/infiniband/core/multicast.c b/drivers/infiniband/core/multicast.c
> >> index 17573ff..ffeaf27 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 (!rdma_port_ll_is_ib(dev->device, event->element.port_num))
> >> +    if (!cap_mcast(dev->device, event->element.port_num))
> >>          return;
> >>  
> >>      index = event->element.port_num - dev->start_port;
> >> @@ -807,7 +807,7 @@ static void mcast_add_one(struct ib_device *device)
> >>      int i;
> >>      int count = 0;
> >>  
> >> -    if (!rdma_transport_is_ib(device))
> >> +    if (!has_mcast(device))
> >>          return;
> >>  
> >>      dev = kmalloc(sizeof *dev + device->phys_port_cnt * sizeof *port,
> >> @@ -823,7 +823,7 @@ static void mcast_add_one(struct ib_device *device)
> >>      }
> >>  
> >>      for (i = 0; i <= dev->end_port - dev->start_port; i++) {
> >> -        if (!rdma_port_ll_is_ib(device, dev->start_port + i))
> >> +        if (!cap_mcast(device, dev->start_port + i))
> >>              continue;
> >>          port = &dev->port[i];
> >>          port->dev = dev;
> >> @@ -861,7 +861,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_port_ll_is_ib(device, dev->start_port + i)) {
> >> +        if (cap_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 fa8ffa3..e796104 100644
> >> --- a/include/rdma/ib_verbs.h
> >> +++ b/include/rdma/ib_verbs.h
> >> @@ -1823,6 +1823,19 @@ static inline int has_sa(struct ib_device *device)
> >>  }
> >>  
> >>  /**
> >> + * has_mcast - Check if a device support Multicast.
> >> + *
> >> + * @device: Device to be checked
> >> + *
> >> + * Return 0 when a device has none port to support
> >> + * Multicast.
> >> + */
> >> +static inline int has_mcast(struct ib_device *device)
> >> +{
> >> +    return rdma_transport_is_ib(device);
> >> +}
> >> +
> >> +/**
> >>   * cap_smi - Check if the port of device has the capability
> >>   * Subnet Management Interface.
> >>   *
> >> @@ -1852,6 +1865,21 @@ static inline int cap_sa(struct ib_device *device, u8 port_num)
> >>      return rdma_port_ll_is_ib(device, port_num);
> >>  }
> >>  
> >> +/**
> >> + * cap_mcast - Check if the port of device has the capability
> >> + * Multicast.
> >> + *
> >> + * @device: Device to be checked
> >> + * @port_num: Port number of the device
> >> + *
> >> + * Return 0 when port of the device don't support
> >> + * Multicast.
> >> + */
> >> +static inline int cap_mcast(struct ib_device *device, u8 port_num)
> >> +{
> >> +    return rdma_port_ll_is_ib(device, port_num);
> >> +}
> >> +
> >>  int ib_query_gid(struct ib_device *device,
> >>           u8 port_num, int index, union ib_gid *gid);
> >>  
> >
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: "ira.weiny" <ira.weiny@intel.com>
To: Michael Wang <yun.wang@profitbricks.com>
Cc: Doug Ledford <dledford@redhat.com>,
	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,
	linux-nfs@vger.kernel.org, netdev@vger.kernel.org,
	"J. Bruce Fields" <bfields@fieldses.org>,
	Trond Myklebust <trond.myklebust@primarydata.com>,
	"David S. Miller" <davem@davemloft.net>,
	Or Gerlitz <ogerlitz@mellanox.com>,
	Moni Shoua <monis@mellanox.com>,
	PJ Waskiewicz <pj.waskiewicz@solidfire.com>,
	Tatyana Nikolova <Tatyana.E.Nikolova@intel.com>,
	Yan Burman <yanb@mellanox.com>,
	Jack Morgenstein <jackm@dev.mellanox.co.il>,
	Bart Van Assche <bvanassche@acm.org>,
	Yann Droneaud <ydroneaud@opteya.com>,
	Colin Ian King <colin.king@canonical.com>,
	Majd Dibbiny <majd@mellanox.com>, Jiri Kosina <jkosina@suse.cz>,
	Matan Barak <matanb@mellanox.com>,
	Alex Estrin <alex.estrin@intel.com>,
	Eric Dumazet <edumazet@google.com>,
	Erez Shitrit <erezsh@mellanox.com>,
	Sagi Grimberg <sagig@mellanox.com>,
	Haggai Eran <haggaie@mellanox.com>,
	Shachar Raindel <raindel@mellanox.com>,
	Mike Marciniszyn <mike.marciniszyn@intel.com>,
	Steve Wise <swise@opengridcomputing.com>, Tom Tucker <tom@ogc.us>,
	Chuck Lever <chuck.lever@oracle.com>
Subject: Re: [RFC PATCH 07/11] IB/Verbs: Use management helper has_mcast() and, cap_mcast() for mcast-check
Date: Mon, 30 Mar 2015 19:47:17 -0400	[thread overview]
Message-ID: <20150330234717.GA28446@phlsvsds.ph.intel.com> (raw)
In-Reply-To: <551977E0.5030001@profitbricks.com>

On Mon, Mar 30, 2015 at 06:20:48PM +0200, Michael Wang wrote:
> On 03/30/2015 06:11 PM, Doug Ledford wrote:
> > On Fri, 2015-03-27 at 16:46 +0100, Michael Wang wrote:
> >> Introduce helper has_mcast() and cap_mcast() to help us check if an
> >> IB device or it's port support Multicast.
> > This probably needs reworded or rethought.  In truth, *all* rdma devices
> > are multicast capable.  *BUT*, IB/OPA devices require multicast
> > registration done the IB way (including for sendonly multicast sends),
> > while Ethernet devices do multicast the Ethernet way.  These tests are
> > really just for IB specific multicast registration and deregistration.
> > Call it has_mcast() and cap_mcast() is incorrect.
> 
> Thanks for the explanation :-)
> 
> Jason also mentioned we should use cap_ib_XX() instead, I'll use
> that name then we can distinguish the management between
> Eth and IB/OPA.
> 
> Regards,
> Michael Wang
> 
> 
> >
> >> 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/cma.c       |  2 +-
> >>  drivers/infiniband/core/multicast.c |  8 ++++----
> >>  include/rdma/ib_verbs.h             | 28 ++++++++++++++++++++++++++++
> >>  3 files changed, 33 insertions(+), 5 deletions(-)
> >>
> >> diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
> >> index 276fb76..cbbc85b 100644
> >> --- a/drivers/infiniband/core/cma.c
> >> +++ b/drivers/infiniband/core/cma.c
> >> @@ -3398,7 +3398,7 @@ 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_transport_is_ib(id_priv->cma_dev->device)) {
> >> +            if (has_mcast(id_priv->cma_dev->device)) {


You need a similar check in rdma_join_multicast.

Ira


> >>                  switch (rdma_port_get_link_layer(id->device, id->port_num)) {
> >>                  case IB_LINK_LAYER_INFINIBAND:
> >>                      ib_sa_free_multicast(mc->multicast.ib);
> >> diff --git a/drivers/infiniband/core/multicast.c b/drivers/infiniband/core/multicast.c
> >> index 17573ff..ffeaf27 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 (!rdma_port_ll_is_ib(dev->device, event->element.port_num))
> >> +    if (!cap_mcast(dev->device, event->element.port_num))
> >>          return;
> >>  
> >>      index = event->element.port_num - dev->start_port;
> >> @@ -807,7 +807,7 @@ static void mcast_add_one(struct ib_device *device)
> >>      int i;
> >>      int count = 0;
> >>  
> >> -    if (!rdma_transport_is_ib(device))
> >> +    if (!has_mcast(device))
> >>          return;
> >>  
> >>      dev = kmalloc(sizeof *dev + device->phys_port_cnt * sizeof *port,
> >> @@ -823,7 +823,7 @@ static void mcast_add_one(struct ib_device *device)
> >>      }
> >>  
> >>      for (i = 0; i <= dev->end_port - dev->start_port; i++) {
> >> -        if (!rdma_port_ll_is_ib(device, dev->start_port + i))
> >> +        if (!cap_mcast(device, dev->start_port + i))
> >>              continue;
> >>          port = &dev->port[i];
> >>          port->dev = dev;
> >> @@ -861,7 +861,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_port_ll_is_ib(device, dev->start_port + i)) {
> >> +        if (cap_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 fa8ffa3..e796104 100644
> >> --- a/include/rdma/ib_verbs.h
> >> +++ b/include/rdma/ib_verbs.h
> >> @@ -1823,6 +1823,19 @@ static inline int has_sa(struct ib_device *device)
> >>  }
> >>  
> >>  /**
> >> + * has_mcast - Check if a device support Multicast.
> >> + *
> >> + * @device: Device to be checked
> >> + *
> >> + * Return 0 when a device has none port to support
> >> + * Multicast.
> >> + */
> >> +static inline int has_mcast(struct ib_device *device)
> >> +{
> >> +    return rdma_transport_is_ib(device);
> >> +}
> >> +
> >> +/**
> >>   * cap_smi - Check if the port of device has the capability
> >>   * Subnet Management Interface.
> >>   *
> >> @@ -1852,6 +1865,21 @@ static inline int cap_sa(struct ib_device *device, u8 port_num)
> >>      return rdma_port_ll_is_ib(device, port_num);
> >>  }
> >>  
> >> +/**
> >> + * cap_mcast - Check if the port of device has the capability
> >> + * Multicast.
> >> + *
> >> + * @device: Device to be checked
> >> + * @port_num: Port number of the device
> >> + *
> >> + * Return 0 when port of the device don't support
> >> + * Multicast.
> >> + */
> >> +static inline int cap_mcast(struct ib_device *device, u8 port_num)
> >> +{
> >> +    return rdma_port_ll_is_ib(device, port_num);
> >> +}
> >> +
> >>  int ib_query_gid(struct ib_device *device,
> >>           u8 port_num, int index, union ib_gid *gid);
> >>  
> >
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: "ira.weiny" <ira.weiny@intel.com>
To: Michael Wang <yun.wang@profitbricks.com>
Cc: Doug Ledford <dledford@redhat.com>,
	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,
	linux-nfs@vger.kernel.org, netdev@vger.kernel.org,
	"J. Bruce Fields" <bfields@fieldses.org>,
	Trond Myklebust <trond.myklebust@primarydata.com>,
	"David S. Miller" <davem@davemloft.net>,
	Or Gerlitz <ogerlitz@mellanox.com>,
	Moni Shoua <monis@mellanox.com>,
	PJ Waskiewicz <pj.waskiewicz@solidfire.com>,
	Tatyana Nikolova <Tatyana.E.Nikolova@intel.com>,
	Yan Burman <yanb@mellanox.com>,
	Jack Morgenstein <jackm@dev.mellanox.co.il>,
	Bart Van Assche <bvanassche@acm.org>,
	Yann Droneaud <ydroneaud@opteya.com>,
	Colin Ian King <colin.king@canonical.com>,
	Majd Dibbiny <majd@mellanox.com>, Jiri Kosina <jkosina@suse.cz>,
	Matan Barak <matanb@mellanox.com>,
	Alex Estrin <alex.estrin
Subject: Re: [RFC PATCH 07/11] IB/Verbs: Use management helper has_mcast() and, cap_mcast() for mcast-check
Date: Mon, 30 Mar 2015 19:47:17 -0400	[thread overview]
Message-ID: <20150330234717.GA28446@phlsvsds.ph.intel.com> (raw)
In-Reply-To: <551977E0.5030001@profitbricks.com>

On Mon, Mar 30, 2015 at 06:20:48PM +0200, Michael Wang wrote:
> On 03/30/2015 06:11 PM, Doug Ledford wrote:
> > On Fri, 2015-03-27 at 16:46 +0100, Michael Wang wrote:
> >> Introduce helper has_mcast() and cap_mcast() to help us check if an
> >> IB device or it's port support Multicast.
> > This probably needs reworded or rethought.  In truth, *all* rdma devices
> > are multicast capable.  *BUT*, IB/OPA devices require multicast
> > registration done the IB way (including for sendonly multicast sends),
> > while Ethernet devices do multicast the Ethernet way.  These tests are
> > really just for IB specific multicast registration and deregistration.
> > Call it has_mcast() and cap_mcast() is incorrect.
> 
> Thanks for the explanation :-)
> 
> Jason also mentioned we should use cap_ib_XX() instead, I'll use
> that name then we can distinguish the management between
> Eth and IB/OPA.
> 
> Regards,
> Michael Wang
> 
> 
> >
> >> 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/cma.c       |  2 +-
> >>  drivers/infiniband/core/multicast.c |  8 ++++----
> >>  include/rdma/ib_verbs.h             | 28 ++++++++++++++++++++++++++++
> >>  3 files changed, 33 insertions(+), 5 deletions(-)
> >>
> >> diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
> >> index 276fb76..cbbc85b 100644
> >> --- a/drivers/infiniband/core/cma.c
> >> +++ b/drivers/infiniband/core/cma.c
> >> @@ -3398,7 +3398,7 @@ 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_transport_is_ib(id_priv->cma_dev->device)) {
> >> +            if (has_mcast(id_priv->cma_dev->device)) {


You need a similar check in rdma_join_multicast.

Ira


> >>                  switch (rdma_port_get_link_layer(id->device, id->port_num)) {
> >>                  case IB_LINK_LAYER_INFINIBAND:
> >>                      ib_sa_free_multicast(mc->multicast.ib);
> >> diff --git a/drivers/infiniband/core/multicast.c b/drivers/infiniband/core/multicast.c
> >> index 17573ff..ffeaf27 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 (!rdma_port_ll_is_ib(dev->device, event->element.port_num))
> >> +    if (!cap_mcast(dev->device, event->element.port_num))
> >>          return;
> >>  
> >>      index = event->element.port_num - dev->start_port;
> >> @@ -807,7 +807,7 @@ static void mcast_add_one(struct ib_device *device)
> >>      int i;
> >>      int count = 0;
> >>  
> >> -    if (!rdma_transport_is_ib(device))
> >> +    if (!has_mcast(device))
> >>          return;
> >>  
> >>      dev = kmalloc(sizeof *dev + device->phys_port_cnt * sizeof *port,
> >> @@ -823,7 +823,7 @@ static void mcast_add_one(struct ib_device *device)
> >>      }
> >>  
> >>      for (i = 0; i <= dev->end_port - dev->start_port; i++) {
> >> -        if (!rdma_port_ll_is_ib(device, dev->start_port + i))
> >> +        if (!cap_mcast(device, dev->start_port + i))
> >>              continue;
> >>          port = &dev->port[i];
> >>          port->dev = dev;
> >> @@ -861,7 +861,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_port_ll_is_ib(device, dev->start_port + i)) {
> >> +        if (cap_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 fa8ffa3..e796104 100644
> >> --- a/include/rdma/ib_verbs.h
> >> +++ b/include/rdma/ib_verbs.h
> >> @@ -1823,6 +1823,19 @@ static inline int has_sa(struct ib_device *device)
> >>  }
> >>  
> >>  /**
> >> + * has_mcast - Check if a device support Multicast.
> >> + *
> >> + * @device: Device to be checked
> >> + *
> >> + * Return 0 when a device has none port to support
> >> + * Multicast.
> >> + */
> >> +static inline int has_mcast(struct ib_device *device)
> >> +{
> >> +    return rdma_transport_is_ib(device);
> >> +}
> >> +
> >> +/**
> >>   * cap_smi - Check if the port of device has the capability
> >>   * Subnet Management Interface.
> >>   *
> >> @@ -1852,6 +1865,21 @@ static inline int cap_sa(struct ib_device *device, u8 port_num)
> >>      return rdma_port_ll_is_ib(device, port_num);
> >>  }
> >>  
> >> +/**
> >> + * cap_mcast - Check if the port of device has the capability
> >> + * Multicast.
> >> + *
> >> + * @device: Device to be checked
> >> + * @port_num: Port number of the device
> >> + *
> >> + * Return 0 when port of the device don't support
> >> + * Multicast.
> >> + */
> >> +static inline int cap_mcast(struct ib_device *device, u8 port_num)
> >> +{
> >> +    return rdma_port_ll_is_ib(device, port_num);
> >> +}
> >> +
> >>  int ib_query_gid(struct ib_device *device,
> >>           u8 port_num, int index, union ib_gid *gid);
> >>  
> >
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2015-03-30 23:47 UTC|newest]

Thread overview: 189+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-27 15:39 [RFC PATCH 00/11] IB/Verbs: IB Management Helpers Michael Wang
2015-03-27 15:39 ` Michael Wang
2015-03-27 15:39 ` Michael Wang
2015-03-27 15:42 ` [RFC PATCH 02/11] IB/Verbs: Use management helper tech_iboe() for iboe-check Michael Wang
2015-03-27 15:42   ` Michael Wang
2015-03-27 15:42   ` Michael Wang
2015-03-30 16:17   ` Doug Ledford
2015-03-30 16:17     ` Doug Ledford
2015-03-30 16:17     ` Doug Ledford
     [not found]     ` <1427732250.21101.202.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-03-30 16:23       ` Michael Wang
2015-03-30 16:23         ` Michael Wang
2015-03-30 16:23         ` Michael Wang
2015-03-27 15:43 ` [RFC PATCH 03/11] IB/Verbs: Use management helper has_mad() for mad-check Michael Wang
2015-03-27 15:43   ` Michael Wang
2015-03-27 15:43   ` Michael Wang
2015-03-27 15:44 ` [RFC PATCH 04/11] IB/Verbs: Use management helper cap_smi() for smi-check Michael Wang
2015-03-27 15:44   ` Michael Wang
2015-03-27 15:44   ` Michael Wang
     [not found]   ` <55157AEB.7020705-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
2015-03-27 16:32     ` Jason Gunthorpe
2015-03-27 16:32       ` Jason Gunthorpe
2015-03-27 16:32       ` Jason Gunthorpe
     [not found]       ` <20150327163219.GD28412-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-03-27 16:59         ` Yun Wang
2015-03-27 16:59           ` Yun Wang
2015-03-27 16:59           ` Yun Wang
2015-03-27 15:45 ` [RFC PATCH 05/11] IB/Verbs: Use management helper has_cm() for cm-check Michael Wang
2015-03-27 15:45   ` Michael Wang
2015-03-27 15:45   ` Michael Wang
     [not found] ` <551579CA.4030901-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
2015-03-27 15:40   ` [PATCH 01/11] IB/Verbs: Use helpers to check transport and link layer Michael Wang
2015-03-27 15:40     ` Michael Wang
2015-03-27 15:40     ` Michael Wang
2015-03-30 15:56     ` Doug Ledford
2015-03-30 15:56       ` Doug Ledford
2015-03-30 15:56       ` Doug Ledford
     [not found]       ` <1427730964.21101.195.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-03-30 16:14         ` Michael Wang
2015-03-30 16:14           ` Michael Wang
2015-03-30 16:14           ` Michael Wang
2015-03-30 16:22           ` Doug Ledford
2015-03-30 16:22             ` Doug Ledford
2015-03-30 16:22             ` Doug Ledford
     [not found]             ` <1427732576.21101.205.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-03-30 17:04               ` Michael Wang
2015-03-30 17:04                 ` Michael Wang
2015-03-30 17:04                 ` Michael Wang
2015-03-27 15:46   ` [RFC PATCH 06/11] IB/Verbs: Use management helper has_sa() and cap_sa(), for sa-check Michael Wang
2015-03-27 15:46     ` Michael Wang
2015-03-27 15:46     ` Michael Wang
2015-03-27 16:47     ` ira.weiny
2015-03-27 16:47       ` ira.weiny
2015-03-27 16:47       ` ira.weiny
2015-03-27 17:13       ` Yun Wang
2015-03-27 17:13         ` Yun Wang
2015-03-27 17:13         ` Yun Wang
2015-03-27 19:49       ` Doug Ledford
2015-03-27 19:49         ` Doug Ledford
2015-03-27 19:49         ` Doug Ledford
     [not found]     ` <55157B43.6060507-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
2015-03-30 16:16       ` Doug Ledford
2015-03-30 16:16         ` Doug Ledford
2015-03-30 16:16         ` Doug Ledford
2015-03-30 16:42         ` Michael Wang
2015-03-30 16:42           ` Michael Wang
2015-03-30 16:42           ` Michael Wang
2015-03-30 17:02           ` Doug Ledford
2015-03-30 17:02             ` Doug Ledford
2015-03-30 17:02             ` Doug Ledford
     [not found]             ` <1427734923.21101.227.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-03-31 13:22               ` Michael Wang
2015-03-31 13:22                 ` Michael Wang
2015-03-31 13:22                 ` Michael Wang
2015-03-31 23:12             ` Jason Gunthorpe
2015-03-31 23:12               ` Jason Gunthorpe
2015-03-31 23:12               ` Jason Gunthorpe
     [not found]               ` <20150331231202.GA20094-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-04-01  0:51                 ` ira.weiny
2015-04-01  0:51                   ` ira.weiny
2015-04-01  0:51                   ` ira.weiny
     [not found]                   ` <20150401005113.GA15327-W4f6Xiosr+yv7QzWx2u06xL4W9x8LtSr@public.gmane.org>
2015-04-01  1:31                     ` Jason Gunthorpe
2015-04-01  1:31                       ` Jason Gunthorpe
2015-04-01  1:31                       ` Jason Gunthorpe
2015-03-27 15:46   ` [RFC PATCH 07/11] IB/Verbs: Use management helper has_mcast() and, cap_mcast() for mcast-check Michael Wang
2015-03-27 15:46     ` Michael Wang
2015-03-27 15:46     ` Michael Wang
     [not found]     ` <55157B71.6040505-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
2015-03-27 16:28       ` Jason Gunthorpe
2015-03-27 16:28         ` Jason Gunthorpe
2015-03-27 16:28         ` Jason Gunthorpe
2015-03-27 17:05         ` ira.weiny
2015-03-27 17:05           ` ira.weiny
2015-03-27 17:05           ` ira.weiny
     [not found]           ` <20150327170508.GB27862-W4f6Xiosr+yv7QzWx2u06xL4W9x8LtSr@public.gmane.org>
2015-03-27 17:31             ` Yun Wang
2015-03-27 17:31               ` Yun Wang
2015-03-27 17:31               ` Yun Wang
2015-03-27 17:49               ` Jason Gunthorpe
2015-03-27 17:49                 ` Jason Gunthorpe
2015-03-27 17:49                 ` Jason Gunthorpe
2015-03-27 18:09                 ` Yun Wang
2015-03-27 18:09                   ` Yun Wang
2015-03-27 18:09                   ` Yun Wang
2015-03-27 17:47             ` Jason Gunthorpe
2015-03-27 17:47               ` Jason Gunthorpe
2015-03-27 17:47               ` Jason Gunthorpe
     [not found]               ` <20150327174727.GB28901-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-03-30  8:30                 ` Michael Wang
2015-03-30  8:30                   ` Michael Wang
2015-03-30  8:30                   ` Michael Wang
     [not found]                   ` <551909AC.2030304-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
2015-03-30 22:33                     ` Jason Gunthorpe
2015-03-30 22:33                       ` Jason Gunthorpe
2015-03-30 22:33                       ` Jason Gunthorpe
2015-03-30 16:11       ` Doug Ledford
2015-03-30 16:11         ` Doug Ledford
2015-03-30 16:11         ` Doug Ledford
2015-03-30 16:20         ` Michael Wang
2015-03-30 16:20           ` Michael Wang
2015-03-30 16:20           ` Michael Wang
2015-03-30 23:47           ` ira.weiny [this message]
2015-03-30 23:47             ` ira.weiny
2015-03-30 23:47             ` ira.weiny
     [not found]             ` <20150330234717.GA28446-W4f6Xiosr+yv7QzWx2u06xL4W9x8LtSr@public.gmane.org>
2015-03-31  7:25               ` Michael Wang
2015-03-31  7:25                 ` Michael Wang
2015-03-31  7:25                 ` Michael Wang
2015-03-27 15:47 ` [RFC PATCH 08/11] IB/Verbs: Use management helper has_iwarp() for, iwarp-check Michael Wang
2015-03-27 15:47   ` Michael Wang
2015-03-27 15:47   ` Michael Wang
2015-03-27 16:13   ` Jason Gunthorpe
2015-03-27 16:13     ` Jason Gunthorpe
2015-03-27 16:13     ` Jason Gunthorpe
     [not found]     ` <20150327161319.GB28412-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-03-27 16:17       ` Michael Wang
2015-03-27 16:17         ` Michael Wang
2015-03-27 16:17         ` Michael Wang
2015-03-27 17:16     ` ira.weiny
2015-03-27 17:16       ` ira.weiny
2015-03-27 17:16       ` ira.weiny
2015-03-27 17:29       ` Jason Gunthorpe
2015-03-27 17:29         ` Jason Gunthorpe
2015-03-27 17:29         ` Jason Gunthorpe
     [not found]         ` <20150327172912.GA28901-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-03-30 15:10           ` Michael Wang
2015-03-30 15:10             ` Michael Wang
2015-03-30 15:10             ` Michael Wang
     [not found]             ` <55196754.5010600-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
2015-03-30 22:35               ` Jason Gunthorpe
2015-03-30 22:35                 ` Jason Gunthorpe
2015-03-30 22:35                 ` Jason Gunthorpe
     [not found]                 ` <20150330223528.GB27728-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-03-31  7:39                   ` Michael Wang
2015-03-31  7:39                     ` Michael Wang
2015-03-31  7:39                     ` Michael Wang
     [not found]                     ` <551A4F24.6090405-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
2015-03-31 11:19                       ` Tom Talpey
2015-03-31 11:19                         ` Tom Talpey
2015-03-31 11:19                         ` Tom Talpey
2015-03-31 11:41                         ` Michael Wang
2015-03-31 11:41                           ` Michael Wang
2015-03-31 11:41                           ` Michael Wang
     [not found]                           ` <551A87D3.2070306-EIkl63zCoXaH+58JC4qpiA@public.gmane.org>
2015-03-31 13:56                             ` Tom Talpey
2015-03-31 13:56                               ` Tom Talpey
2015-03-31 13:56                               ` Tom Talpey
2015-03-31 13:58                               ` Michael Wang
2015-03-31 13:58                                 ` Michael Wang
2015-03-31 13:58                                 ` Michael Wang
2015-03-27 17:35       ` Yun Wang
2015-03-27 17:35         ` Yun Wang
2015-03-27 17:35         ` Yun Wang
2015-03-30 16:13   ` Doug Ledford
2015-03-30 16:13     ` Doug Ledford
2015-03-30 16:13     ` Doug Ledford
     [not found]     ` <1427731980.21101.199.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-03-30 16:21       ` Michael Wang
2015-03-30 16:21         ` Michael Wang
2015-03-30 16:21         ` Michael Wang
2015-03-31 23:20       ` Jason Gunthorpe
2015-03-31 23:20         ` Jason Gunthorpe
2015-03-31 23:20         ` Jason Gunthorpe
2015-03-27 15:48 ` [RFC PATCH 09/11] IB/Verbs: Use management helper has_ipoib() and, cap_ipoib() for ipoib-check Michael Wang
2015-03-27 15:48   ` Michael Wang
2015-03-27 15:48   ` Michael Wang
2015-03-27 16:06   ` Jason Gunthorpe
2015-03-27 16:06     ` Jason Gunthorpe
2015-03-27 16:06     ` Jason Gunthorpe
     [not found]     ` <20150327160616.GA28412-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2015-03-27 16:15       ` Michael Wang
2015-03-27 16:15         ` Michael Wang
2015-03-27 16:15         ` Michael Wang
2015-03-27 16:38         ` Jason Gunthorpe
2015-03-27 16:38           ` Jason Gunthorpe
2015-03-27 16:38           ` Jason Gunthorpe
2015-03-27 15:49 ` [RFC PATCH 10/11] IB/Verbs: Use management helper cap_ib() for ib-check Michael Wang
2015-03-27 15:49   ` Michael Wang
2015-03-27 15:49   ` Michael Wang
2015-03-27 15:49 ` [RFC PATCH 11/11] IB/Verbs: Use management helper cap_eth() for eth-check Michael Wang
2015-03-27 15:49   ` Michael Wang
2015-03-27 15:49   ` Michael Wang
2015-04-06 20:22 ` [RFC PATCH 00/11] IB/Verbs: IB Management Helpers ira.weiny
2015-04-06 20:22   ` ira.weiny
2015-04-06 20:22   ` ira.weiny
2015-04-07  7:31   ` Michael Wang
2015-04-07  7:31     ` Michael Wang
2015-04-07  7:31     ` Michael Wang
2015-04-07 12:48   ` Michael Wang
2015-04-07 12:48     ` Michael Wang
2015-04-07 12: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=20150330234717.GA28446@phlsvsds.ph.intel.com \
    --to=ira.weiny@intel.com \
    --cc=Tatyana.E.Nikolova@intel.com \
    --cc=bfields@fieldses.org \
    --cc=bvanassche@acm.org \
    --cc=colin.king@canonical.com \
    --cc=davem@davemloft.net \
    --cc=dledford@redhat.com \
    --cc=hal.rosenstock@gmail.com \
    --cc=jackm@dev.mellanox.co.il \
    --cc=jkosina@suse.cz \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=majd@mellanox.com \
    --cc=matanb@mellanox.com \
    --cc=monis@mellanox.com \
    --cc=netdev@vger.kernel.org \
    --cc=ogerlitz@mellanox.com \
    --cc=pj.waskiewicz@solidfire.com \
    --cc=roland@kernel.org \
    --cc=sean.hefty@intel.com \
    --cc=trond.myklebust@primarydata.com \
    --cc=yanb@mellanox.com \
    --cc=ydroneaud@opteya.com \
    --cc=yun.wang@profitbricks.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.