Reserve the legacy transport type for the 'transport' member
of 'struct rdma_dev_addr' until we make sure this is no
longer needed.

Cc: Jason Gunthorpe <jguntho...@obsidianresearch.com>
Cc: Doug Ledford <dledf...@redhat.com>
Cc: Ira Weiny <ira.we...@intel.com>
Cc: Sean Hefty <sean.he...@intel.com>
Signed-off-by: Michael Wang <yun.w...@profitbricks.com>
---
 drivers/infiniband/core/cma.c | 25 +++++++++++++++++++++++--
 1 file changed, 23 insertions(+), 2 deletions(-)

diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index c23f483..e26b42e 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -244,14 +244,35 @@ static inline void cma_set_ip_ver(struct cma_hdr *hdr, u8 
ip_ver)
        hdr->ip_version = (ip_ver << 4) | (hdr->ip_version & 0xF);
 }
 
+static inline void cma_set_legacy_transport(struct rdma_cm_id *id)
+{
+       switch (id->device->node_type) {
+       case RDMA_NODE_IB_CA:
+       case RDMA_NODE_IB_SWITCH:
+       case RDMA_NODE_IB_ROUTER:
+               id->route.addr.dev_addr.transport = RDMA_TRANSPORT_IB;
+               break;
+       case RDMA_NODE_RNIC:
+               id->route.addr.dev_addr.transport = RDMA_TRANSPORT_IWARP;
+               break;
+       case RDMA_NODE_USNIC:
+               id->route.addr.dev_addr.transport = RDMA_TRANSPORT_USNIC;
+               break;
+       case RDMA_NODE_USNIC_UDP:
+               id->route.addr.dev_addr.transport = RDMA_TRANSPORT_USNIC_UDP;
+               break;
+       default:
+               BUG();
+       }
+}
+
 static void cma_attach_to_dev(struct rdma_id_private *id_priv,
                              struct cma_device *cma_dev)
 {
        atomic_inc(&cma_dev->refcount);
        id_priv->cma_dev = cma_dev;
        id_priv->id.device = cma_dev->device;
-       id_priv->id.route.addr.dev_addr.transport =
-               rdma_node_get_transport(cma_dev->device->node_type);
+       cma_set_legacy_transport(&id_priv->id);
        list_add_tail(&id_priv->list, &cma_dev->id_list);
 }
 
-- 
2.1.0
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to