On Tue, 2017-11-14 at 14:52 +0200, Leon Romanovsky wrote: > From: Parav Pandit <parav@xxxxxxxxxxxx> > > Current code checks for NULL ndev twice where 2nd check is always > invalid given the fact that during route resolving stage, device address > must be bound to netdevice interface. > > This patch simplifies such check. > > Signed-off-by: Parav Pandit <parav@xxxxxxxxxxxx> > Reviewed-by: Daniel Jurgens <danielj@xxxxxxxxxxxx> > Signed-off-by: Leon Romanovsky <leon@xxxxxxxxxx> > --- > drivers/infiniband/core/cma.c | 35 ++++++++++++++++------------------- > 1 file changed, 16 insertions(+), 19 deletions(-) > > diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c > index e63a51b68ed5..168f1230756b 100644 > --- a/drivers/infiniband/core/cma.c > +++ b/drivers/infiniband/core/cma.c > @@ -2527,8 +2527,10 @@ static int cma_resolve_iboe_route(struct rdma_id_private > *id_priv) > struct rdma_addr *addr = &route->addr; > struct cma_work *work; > int ret; > - struct net_device *ndev = NULL; > + struct net_device *ndev; > enum ib_gid_type gid_type = IB_GID_TYPE_ROCE; > + unsigned long supported_gids; > + > u8 default_roce_tos = id_priv->cma_dev->default_roce_tos[id_priv->id.port_num - > rdma_start_port(id_priv->cma_dev->device)]; > u8 tos = id_priv->tos_set ? id_priv->tos : default_roce_tos; > @@ -2549,30 +2551,25 @@ static int cma_resolve_iboe_route(struct rdma_id_private > *id_priv) > > route->num_paths = 1; > > - if (addr->dev_addr.bound_dev_if) { > - unsigned long supported_gids; > - > - ndev = dev_get_by_index(&init_net, addr->dev_addr.bound_dev_if); > - if (!ndev) { > - ret = -ENODEV; > - goto err2; > - } > - > - supported_gids = roce_gid_type_mask_support(id_priv->id.device, > - id_priv->id.port_num); > - gid_type = cma_route_gid_type(addr->dev_addr.network, > - supported_gids, > - id_priv->gid_type); > - route->path_rec->rec_type = > - sa_conv_gid_to_pathrec_type(gid_type); > - sa_path_set_ndev(route->path_rec, &init_net); > - sa_path_set_ifindex(route->path_rec, ndev->ifindex); > + if (!addr->dev_addr.bound_dev_if) { > + ret = -ENODEV; > + goto err2; > } > + > + ndev = dev_get_by_index(&init_net, addr->dev_addr.bound_dev_if); > if (!ndev) { > ret = -ENODEV; > goto err2; > } > > + supported_gids = roce_gid_type_mask_support(id_priv->id.device, > + id_priv->id.port_num); > + gid_type = cma_route_gid_type(addr->dev_addr.network, > + supported_gids, > + id_priv->gid_type); > + route->path_rec->rec_type = sa_conv_gid_to_pathrec_type(gid_type); > + sa_path_set_ndev(route->path_rec, &init_net); > + sa_path_set_ifindex(route->path_rec, ndev->ifindex); > sa_path_set_dmac(route->path_rec, addr->dev_addr.dst_dev_addr); > > rdma_ip2gid((struct sockaddr *)&id_priv->id.route.addr.src_addr, Reviewed-by: Knut Omang <knut.omang@xxxxxxxxxx> Knut -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html