OSDN Git Service

RDMA/core: Refactor get link layer wrapper
authorLeon Romanovsky <leonro@mellanox.com>
Thu, 17 Aug 2017 12:50:39 +0000 (15:50 +0300)
committerDoug Ledford <dledford@redhat.com>
Thu, 24 Aug 2017 20:27:10 +0000 (16:27 -0400)
The return values from rdma_node_get_transport() are strict
and IB_LINK_LAYER_UNSPECIFIED is unreachable in this flow.

Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/core/verbs.c

index 4c1485e..b29d0ff 100644 (file)
@@ -194,19 +194,15 @@ EXPORT_SYMBOL(rdma_node_get_transport);
 
 enum rdma_link_layer rdma_port_get_link_layer(struct ib_device *device, u8 port_num)
 {
+       enum rdma_transport_type lt;
        if (device->get_link_layer)
                return device->get_link_layer(device, port_num);
 
-       switch (rdma_node_get_transport(device->node_type)) {
-       case RDMA_TRANSPORT_IB:
+       lt = rdma_node_get_transport(device->node_type);
+       if (lt == RDMA_TRANSPORT_IB)
                return IB_LINK_LAYER_INFINIBAND;
-       case RDMA_TRANSPORT_IWARP:
-       case RDMA_TRANSPORT_USNIC:
-       case RDMA_TRANSPORT_USNIC_UDP:
-               return IB_LINK_LAYER_ETHERNET;
-       default:
-               return IB_LINK_LAYER_UNSPECIFIED;
-       }
+
+       return IB_LINK_LAYER_ETHERNET;
 }
 EXPORT_SYMBOL(rdma_port_get_link_layer);