RDMA/cma: resolve to first active ib port
authorJack Wang <jinpu.wang@profitbricks.com>
Mon, 2 Jan 2017 12:20:44 +0000 (13:20 +0100)
committerDoug Ledford <dledford@redhat.com>
Fri, 13 Jan 2017 04:00:04 +0000 (23:00 -0500)
commit93b1f29de71f3bd3b88ec8a2c2874c3847cd38bc
treeb121114f9a8ba1e4bff4ff42e5ba3990c83fd0a4
parent9e2c3f1c7f3edc6bdd83dab601418ac6c3b6df73
RDMA/cma: resolve to first active ib port

When we try to resolve a dest addr, if we don't give src addr,
cma core will try to resolve to our source ib device automatically.
The current logic only checks if a given port has the same
subnet_prefix as our dest, which is not enough if we use default
well known subnet_prefix on our active port, as it will be the same
as the subnet_prefix on inactive ports and we might match against
an inactive port by accident.  To resolve this, we should also check
if port is active before we resolve it as a suitable src address for
a given dest.

Signed-off-by: Jack Wang <jinpu.wang@profitbricks.com>
Reviewed-by: Michael Wang <yun.wang@profitbricks.com>
Acked-by: Sean Hefty <sean.hefty@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/core/cma.c