From: Amir Vadai Date: Mon, 12 Apr 2010 12:42:32 +0000 (+0300) Subject: sdp: module parameter to disable SDP over ROCEE X-Git-Tag: v4.1.12-92~264^2~5^2~201 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=e68643e6ecf7d6b3ffdbe3d2433782444cb2e241;p=users%2Fjedix%2Flinux-maple.git sdp: module parameter to disable SDP over ROCEE Since ROCEE added, SDP always try to connect, even if link layer of type Ethernet. This make 'both' mode in libsdp useless. Added a module paramter to disable it by default Signed-off-by: Amir Vadai --- diff --git a/drivers/infiniband/ulp/sdp/sdp_cma.c b/drivers/infiniband/ulp/sdp/sdp_cma.c index 32ae6b6bc5177..f35b3c931e704 100644 --- a/drivers/infiniband/ulp/sdp/sdp_cma.c +++ b/drivers/infiniband/ulp/sdp/sdp_cma.c @@ -48,6 +48,9 @@ #define SDP_MAJV_MINV 0x22 +SDP_MODPARAM_SINT(sdp_link_layer_ib_only, 1, "Support only link layer of " + "type Infiniband"); + enum { SDP_HH_SIZE = 76, SDP_HAH_SIZE = 180, @@ -334,6 +337,19 @@ int sdp_cma_handler(struct rdma_cm_id *id, struct rdma_cm_event *event) switch (event->event) { case RDMA_CM_EVENT_ADDR_RESOLVED: sdp_dbg(sk, "RDMA_CM_EVENT_ADDR_RESOLVED\n"); + + if (sdp_link_layer_ib_only && + rdma_node_get_transport(id->device->node_type) == + RDMA_TRANSPORT_IB && + rdma_port_link_layer(id->device, id->port_num) != + IB_LINK_LAYER_INFINIBAND) { + sdp_dbg(sk, "Link layer is: %d. Only IB link layer " + "is allowed\n", + rdma_port_link_layer(id->device, id->port_num)); + rc = -ENETUNREACH; + break; + } + rc = rdma_resolve_route(id, SDP_ROUTE_TIMEOUT); break; case RDMA_CM_EVENT_ADDR_ERROR: