|
|
@@ -72,6 +72,7 @@ MODULE_LICENSE("Dual BSD/GPL");
|
|
|
#define CMA_MAX_CM_RETRIES 15
|
|
|
#define CMA_CM_MRA_SETTING (IB_CM_MRA_FLAG_DELAY | 24)
|
|
|
#define CMA_IBOE_PACKET_LIFETIME 18
|
|
|
+#define CMA_PREFERRED_ROCE_GID_TYPE IB_GID_TYPE_ROCE_UDP_ENCAP
|
|
|
|
|
|
static const char * const cma_events[] = {
|
|
|
[RDMA_CM_EVENT_ADDR_RESOLVED] = "address resolved",
|
|
|
@@ -4280,8 +4281,12 @@ static void cma_add_one(struct ib_device *device)
|
|
|
for (i = rdma_start_port(device); i <= rdma_end_port(device); i++) {
|
|
|
supported_gids = roce_gid_type_mask_support(device, i);
|
|
|
WARN_ON(!supported_gids);
|
|
|
- cma_dev->default_gid_type[i - rdma_start_port(device)] =
|
|
|
- find_first_bit(&supported_gids, BITS_PER_LONG);
|
|
|
+ if (supported_gids & CMA_PREFERRED_ROCE_GID_TYPE)
|
|
|
+ cma_dev->default_gid_type[i - rdma_start_port(device)] =
|
|
|
+ CMA_PREFERRED_ROCE_GID_TYPE;
|
|
|
+ else
|
|
|
+ cma_dev->default_gid_type[i - rdma_start_port(device)] =
|
|
|
+ find_first_bit(&supported_gids, BITS_PER_LONG);
|
|
|
cma_dev->default_roce_tos[i - rdma_start_port(device)] = 0;
|
|
|
}
|
|
|
|