From: Jack Wang Date: Mon, 2 Jan 2017 12:22:05 +0000 (+0100) Subject: RDMA/cma: use cached port state when bind loopback X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=102c5ce082f557405a0f71ad5a8920f9df50cd9e;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git RDMA/cma: use cached port state when bind loopback Signed-off-by: Jack Wang Reviewed-by: Michael Wang Acked-by: Sean Hefty Signed-off-by: Doug Ledford --- diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c index 40e2b726aa02..a14a18cfc8f3 100644 --- a/drivers/infiniband/core/cma.c +++ b/drivers/infiniband/core/cma.c @@ -2656,8 +2656,8 @@ static void cma_set_loopback(struct sockaddr *addr) static int cma_bind_loopback(struct rdma_id_private *id_priv) { struct cma_device *cma_dev, *cur_dev; - struct ib_port_attr port_attr; union ib_gid gid; + enum ib_port_state port_state; u16 pkey; int ret; u8 p; @@ -2673,8 +2673,8 @@ static int cma_bind_loopback(struct rdma_id_private *id_priv) cma_dev = cur_dev; for (p = 1; p <= cur_dev->device->phys_port_cnt; ++p) { - if (!ib_query_port(cur_dev->device, p, &port_attr) && - port_attr.state == IB_PORT_ACTIVE) { + if (!ib_get_cached_port_state(cur_dev->device, p, &port_state) && + port_state == IB_PORT_ACTIVE) { cma_dev = cur_dev; goto port_found; }