Skip to content

Commit

Permalink
RDMA/cma: Optimize cma_bind_loopback() to check for empty list
Browse files Browse the repository at this point in the history
Optimize to test for an empty list first.  This ends up simplifying
the code too.

Signed-off-by: Krishna Kumar <krkumar2@in.ibm.com>
Acked-by: Sean Hefty <sean.hefty@intel.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
  • Loading branch information
Krishna Kumar authored and Roland Dreier committed Nov 29, 2006
1 parent 0215ffb commit e82153b
Showing 1 changed file with 7 additions and 8 deletions.
15 changes: 7 additions & 8 deletions drivers/infiniband/core/cma.c
Original file line number Diff line number Diff line change
Expand Up @@ -1481,19 +1481,18 @@ static int cma_bind_loopback(struct rdma_id_private *id_priv)
u8 p;

mutex_lock(&lock);
if (list_empty(&dev_list)) {
ret = -ENODEV;
goto out;
}
list_for_each_entry(cma_dev, &dev_list, list)
for (p = 1; p <= cma_dev->device->phys_port_cnt; ++p)
if (!ib_query_port (cma_dev->device, p, &port_attr) &&
if (!ib_query_port(cma_dev->device, p, &port_attr) &&
port_attr.state == IB_PORT_ACTIVE)
goto port_found;

if (!list_empty(&dev_list)) {
p = 1;
cma_dev = list_entry(dev_list.next, struct cma_device, list);
} else {
ret = -ENODEV;
goto out;
}
p = 1;
cma_dev = list_entry(dev_list.next, struct cma_device, list);

port_found:
ret = ib_get_cached_gid(cma_dev->device, p, 0, &gid);
Expand Down

0 comments on commit e82153b

Please sign in to comment.