]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
RDMA/cma: Simplify netdev check
authorParav Pandit <parav@mellanox.com>
Tue, 14 Nov 2017 12:52:01 +0000 (14:52 +0200)
committerJason Gunthorpe <jgg@mellanox.com>
Mon, 18 Dec 2017 22:37:07 +0000 (15:37 -0700)
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@mellanox.com>
Reviewed-by: Daniel Jurgens <danielj@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/core/cma.c

index e63a51b68ed569e461b3a2756309253bc899f320..168f1230756b1496e572c78f0ec462645c3caf7c 100644 (file)
@@ -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,