RDMA/cma: Consider netdevice for RoCE ports

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>
This commit is contained in:
Parav Pandit 2018-07-16 11:50:12 +03:00 committed by Jason Gunthorpe
parent cee104334c
commit d274e45ce1
1 changed files with 2 additions and 3 deletions

View 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; const struct rdma_addr *addr = &id->route.addr;
if (!net_dev) 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) && return (!id->port_num || id->port_num == port_num) &&
(addr->src_addr.ss_family == AF_IB || (addr->src_addr.ss_family == AF_IB);
rdma_protocol_roce(id->device, port_num));
return !addr->dev_addr.bound_dev_if || return !addr->dev_addr.bound_dev_if ||
(net_eq(dev_net(net_dev), addr->dev_addr.net) && (net_eq(dev_net(net_dev), addr->dev_addr.net) &&