req.responder_resources = conn_param->responder_resources;
        req.initiator_depth = conn_param->initiator_depth;
        req.flow_control = conn_param->flow_control;
-       req.retry_count = conn_param->retry_count;
-       req.rnr_retry_count = conn_param->rnr_retry_count;
+       req.retry_count = min_t(u8, 7, conn_param->retry_count);
+       req.rnr_retry_count = min_t(u8, 7, conn_param->rnr_retry_count);
        req.remote_cm_response_timeout = CMA_CM_RESPONSE_TIMEOUT;
        req.local_cm_response_timeout = CMA_CM_RESPONSE_TIMEOUT;
        req.max_cm_retries = CMA_MAX_CM_RETRIES;
        rep.initiator_depth = conn_param->initiator_depth;
        rep.failover_accepted = 0;
        rep.flow_control = conn_param->flow_control;
-       rep.rnr_retry_count = conn_param->rnr_retry_count;
+       rep.rnr_retry_count = min_t(u8, 7, conn_param->rnr_retry_count);
        rep.srq = id_priv->srq ? 1 : 0;
 
        ret = ib_send_cm_rep(id_priv->cm_id.ib, &rep);