IB: Add rdma_cap_ib_switch helper and use where appropriate
Persuant to Liran's comments on node_type on linux-rdma mailing list: In an effort to reform the RDMA core and ULPs to minimize use of node_type in struct ib_device, an additional bit is added to struct ib_device for is_switch (IB switch). This is needed to be initialized by any IB switch device driver. This is a NEW requirement on such device drivers which are all "out of tree". In addition, an ib_switch helper was added to ib_verbs.h based on the is_switch device bit rather than node_type (although those should be consistent). The RDMA core (MAD, SMI, agent, sa_query, multicast, sysfs) as well as (IPoIB and SRP) ULPs are updated where appropriate to use this new helper. In some cases, the helper is now used under the covers of using rdma_[start end]_port rather than the open coding previously used. Reviewed-by: Sean Hefty <sean.hefty@intel.com> Reviewed-By: Jason Gunthorpe <jgunthorpe@obsidianresearch.com> Reviewed-by: Ira Weiny <ira.weiny@intel.com> Tested-by: Ira Weiny <ira.weiny@intel.com> Signed-off-by: Hal Rosenstock <hal@mellanox.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:

committed by
Doug Ledford

parent
bc0195aad0
commit
4139032b48
@@ -1684,7 +1684,7 @@ static void ipoib_add_one(struct ib_device *device)
|
||||
struct list_head *dev_list;
|
||||
struct net_device *dev;
|
||||
struct ipoib_dev_priv *priv;
|
||||
int s, e, p;
|
||||
int p;
|
||||
int count = 0;
|
||||
|
||||
dev_list = kmalloc(sizeof *dev_list, GFP_KERNEL);
|
||||
@@ -1693,15 +1693,7 @@ static void ipoib_add_one(struct ib_device *device)
|
||||
|
||||
INIT_LIST_HEAD(dev_list);
|
||||
|
||||
if (device->node_type == RDMA_NODE_IB_SWITCH) {
|
||||
s = 0;
|
||||
e = 0;
|
||||
} else {
|
||||
s = 1;
|
||||
e = device->phys_port_cnt;
|
||||
}
|
||||
|
||||
for (p = s; p <= e; ++p) {
|
||||
for (p = rdma_start_port(device); p <= rdma_end_port(device); ++p) {
|
||||
if (!rdma_protocol_ib(device, p))
|
||||
continue;
|
||||
dev = ipoib_add_port("ib%d", device, p);
|
||||
|
Reference in New Issue
Block a user