RDMA/cma: Consider netdevice for RoCE ports
authorParav Pandit <parav@mellanox.com>
Mon, 16 Jul 2018 08:50:12 +0000 (11:50 +0300)
committerJason Gunthorpe <jgg@mellanox.com>
Thu, 26 Jul 2018 15:47:47 +0000 (09:47 -0600)
When netdevice is not found for a request, and if it for RoCE port,
currently it allows matching the listener as long as port number matches
by ignoring the netdevice.

Now that we always prefer to have netdevice associated with RoCE, when
netdevice is not found, don't consider RoCE ports.

In other words, a NULL netdevice with RoCE is not acceptable. Therefore,
remove this confusing RoCE port ignorance check.

Signed-off-by: Parav Pandit <parav@mellanox.com>
Reviewed-by: Daniel Jurgens <danielj@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/core/cma.c

index 693e025..2eb4022 100644 (file)
@@ -1470,10 +1470,9 @@ static bool cma_match_net_dev(const struct rdma_cm_id *id,
        const struct rdma_addr *addr = &id->route.addr;
 
        if (!net_dev)
-               /* This request is an AF_IB request or a RoCE request */
+               /* This request is an AF_IB request */
                return (!id->port_num || id->port_num == port_num) &&
-                      (addr->src_addr.ss_family == AF_IB ||
-                       rdma_protocol_roce(id->device, port_num));
+                      (addr->src_addr.ss_family == AF_IB);
 
        return !addr->dev_addr.bound_dev_if ||
               (net_eq(dev_net(net_dev), addr->dev_addr.net) &&