Skip to content

Commit 45611fe

Browse files
vladumrleon
authored andcommitted
IB/cm: Remove dead code and adjust naming
Drop ib_send_cm_mra parameters which are always constant. Remove branch which is never taken. Adjust name to ib_prepare_cm_mra, which better reflects its functionality - no MRA is actually sent. Adjust name of related tracepoints. Push setting of the constant service timeout to cm.c and drop IB_CM_MRA_FLAG_DELAY. Signed-off-by: Vlad Dumitrescu <vdumitrescu@nvidia.com> Reviewed-by: Sean Hefty <shefty@nvidia.com> Link: https://patch.msgid.link/cdd2a237acf2b495c19ce02e4b1c42c41c6751c2.1747827207.git.leon@kernel.org Signed-off-by: Leon Romanovsky <leon@kernel.org>
1 parent 259e9bd commit 45611fe

File tree

5 files changed

+19
-70
lines changed

5 files changed

+19
-70
lines changed

drivers/infiniband/core/cm.c

Lines changed: 10 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ MODULE_LICENSE("Dual BSD/GPL");
3636

3737
#define CM_DESTROY_ID_WAIT_TIMEOUT 10000 /* msecs */
3838
#define CM_DIRECT_RETRY_CTX ((void *) 1UL)
39+
#define CM_MRA_SETTING 24 /* 4.096us * 2^24 = ~68.7 seconds */
3940

4041
static const char * const ibcm_rej_reason_strs[] = {
4142
[IB_CM_REJ_NO_QP] = "no QP",
@@ -241,7 +242,6 @@ struct cm_id_private {
241242
u8 initiator_depth;
242243
u8 retry_count;
243244
u8 rnr_retry_count;
244-
u8 service_timeout;
245245
u8 target_ack_delay;
246246

247247
struct list_head work_list;
@@ -1872,7 +1872,7 @@ static void cm_process_work(struct cm_id_private *cm_id_priv,
18721872

18731873
static void cm_format_mra(struct cm_mra_msg *mra_msg,
18741874
struct cm_id_private *cm_id_priv,
1875-
enum cm_msg_response msg_mraed, u8 service_timeout,
1875+
enum cm_msg_response msg_mraed,
18761876
const void *private_data, u8 private_data_len)
18771877
{
18781878
cm_format_mad_hdr(&mra_msg->hdr, CM_MRA_ATTR_ID, cm_id_priv->tid);
@@ -1881,7 +1881,7 @@ static void cm_format_mra(struct cm_mra_msg *mra_msg,
18811881
be32_to_cpu(cm_id_priv->id.local_id));
18821882
IBA_SET(CM_MRA_REMOTE_COMM_ID, mra_msg,
18831883
be32_to_cpu(cm_id_priv->id.remote_id));
1884-
IBA_SET(CM_MRA_SERVICE_TIMEOUT, mra_msg, service_timeout);
1884+
IBA_SET(CM_MRA_SERVICE_TIMEOUT, mra_msg, CM_MRA_SETTING);
18851885

18861886
if (private_data && private_data_len)
18871887
IBA_SET_MEM(CM_MRA_PRIVATE_DATA, mra_msg, private_data,
@@ -1960,7 +1960,7 @@ static void cm_dup_req_handler(struct cm_work *work,
19601960
switch (cm_id_priv->id.state) {
19611961
case IB_CM_MRA_REQ_SENT:
19621962
cm_format_mra((struct cm_mra_msg *) msg->mad, cm_id_priv,
1963-
CM_MSG_RESPONSE_REQ, cm_id_priv->service_timeout,
1963+
CM_MSG_RESPONSE_REQ,
19641964
cm_id_priv->private_data,
19651965
cm_id_priv->private_data_len);
19661966
break;
@@ -2454,7 +2454,7 @@ static void cm_dup_rep_handler(struct cm_work *work)
24542454
cm_id_priv->private_data_len);
24552455
else if (cm_id_priv->id.state == IB_CM_MRA_REP_SENT)
24562456
cm_format_mra((struct cm_mra_msg *) msg->mad, cm_id_priv,
2457-
CM_MSG_RESPONSE_REP, cm_id_priv->service_timeout,
2457+
CM_MSG_RESPONSE_REP,
24582458
cm_id_priv->private_data,
24592459
cm_id_priv->private_data_len);
24602460
else
@@ -3094,26 +3094,13 @@ static int cm_rej_handler(struct cm_work *work)
30943094
return -EINVAL;
30953095
}
30963096

3097-
int ib_send_cm_mra(struct ib_cm_id *cm_id,
3098-
u8 service_timeout,
3099-
const void *private_data,
3100-
u8 private_data_len)
3097+
int ib_prepare_cm_mra(struct ib_cm_id *cm_id)
31013098
{
31023099
struct cm_id_private *cm_id_priv;
3103-
struct ib_mad_send_buf *msg;
31043100
enum ib_cm_state cm_state;
31053101
enum ib_cm_lap_state lap_state;
3106-
enum cm_msg_response msg_response;
3107-
void *data;
31083102
unsigned long flags;
3109-
int ret;
3110-
3111-
if (private_data && private_data_len > IB_CM_MRA_PRIVATE_DATA_SIZE)
3112-
return -EINVAL;
3113-
3114-
data = cm_copy_private_data(private_data, private_data_len);
3115-
if (IS_ERR(data))
3116-
return PTR_ERR(data);
3103+
int ret = 0;
31173104

31183105
cm_id_priv = container_of(cm_id, struct cm_id_private, id);
31193106

@@ -3122,58 +3109,33 @@ int ib_send_cm_mra(struct ib_cm_id *cm_id,
31223109
case IB_CM_REQ_RCVD:
31233110
cm_state = IB_CM_MRA_REQ_SENT;
31243111
lap_state = cm_id->lap_state;
3125-
msg_response = CM_MSG_RESPONSE_REQ;
31263112
break;
31273113
case IB_CM_REP_RCVD:
31283114
cm_state = IB_CM_MRA_REP_SENT;
31293115
lap_state = cm_id->lap_state;
3130-
msg_response = CM_MSG_RESPONSE_REP;
31313116
break;
31323117
case IB_CM_ESTABLISHED:
31333118
if (cm_id->lap_state == IB_CM_LAP_RCVD) {
31343119
cm_state = cm_id->state;
31353120
lap_state = IB_CM_MRA_LAP_SENT;
3136-
msg_response = CM_MSG_RESPONSE_OTHER;
31373121
break;
31383122
}
31393123
fallthrough;
31403124
default:
3141-
trace_icm_send_mra_unknown_err(&cm_id_priv->id);
3125+
trace_icm_prepare_mra_unknown_err(&cm_id_priv->id);
31423126
ret = -EINVAL;
31433127
goto error_unlock;
31443128
}
31453129

3146-
if (!(service_timeout & IB_CM_MRA_FLAG_DELAY)) {
3147-
msg = cm_alloc_msg(cm_id_priv);
3148-
if (IS_ERR(msg)) {
3149-
ret = PTR_ERR(msg);
3150-
goto error_unlock;
3151-
}
3152-
3153-
cm_format_mra((struct cm_mra_msg *) msg->mad, cm_id_priv,
3154-
msg_response, service_timeout,
3155-
private_data, private_data_len);
3156-
trace_icm_send_mra(cm_id);
3157-
ret = ib_post_send_mad(msg, NULL);
3158-
if (ret)
3159-
goto error_free_msg;
3160-
}
3161-
31623130
cm_id->state = cm_state;
31633131
cm_id->lap_state = lap_state;
3164-
cm_id_priv->service_timeout = service_timeout;
3165-
cm_set_private_data(cm_id_priv, data, private_data_len);
3166-
spin_unlock_irqrestore(&cm_id_priv->lock, flags);
3167-
return 0;
3132+
cm_set_private_data(cm_id_priv, NULL, 0);
31683133

3169-
error_free_msg:
3170-
cm_free_msg(msg);
31713134
error_unlock:
31723135
spin_unlock_irqrestore(&cm_id_priv->lock, flags);
3173-
kfree(data);
31743136
return ret;
31753137
}
3176-
EXPORT_SYMBOL(ib_send_cm_mra);
3138+
EXPORT_SYMBOL(ib_prepare_cm_mra);
31773139

31783140
static struct cm_id_private *cm_acquire_mraed_id(struct cm_mra_msg *mra_msg)
31793141
{
@@ -3377,7 +3339,6 @@ static int cm_lap_handler(struct cm_work *work)
33773339

33783340
cm_format_mra((struct cm_mra_msg *) msg->mad, cm_id_priv,
33793341
CM_MSG_RESPONSE_OTHER,
3380-
cm_id_priv->service_timeout,
33813342
cm_id_priv->private_data,
33823343
cm_id_priv->private_data_len);
33833344
spin_unlock_irq(&cm_id_priv->lock);

drivers/infiniband/core/cm_trace.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ DEFINE_CM_ERR_EVENT(send_drep);
229229
DEFINE_CM_ERR_EVENT(dreq_unknown);
230230
DEFINE_CM_ERR_EVENT(send_unknown_rej);
231231
DEFINE_CM_ERR_EVENT(rej_unknown);
232-
DEFINE_CM_ERR_EVENT(send_mra_unknown);
232+
DEFINE_CM_ERR_EVENT(prepare_mra_unknown);
233233
DEFINE_CM_ERR_EVENT(mra_unknown);
234234
DEFINE_CM_ERR_EVENT(qp_init);
235235
DEFINE_CM_ERR_EVENT(qp_rtr);

drivers/infiniband/core/cma.c

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ MODULE_LICENSE("Dual BSD/GPL");
4646

4747
#define CMA_CM_RESPONSE_TIMEOUT 20
4848
#define CMA_MAX_CM_RETRIES 15
49-
#define CMA_CM_MRA_SETTING (IB_CM_MRA_FLAG_DELAY | 24)
5049
#define CMA_IBOE_PACKET_LIFETIME 16
5150
#define CMA_PREFERRED_ROCE_GID_TYPE IB_GID_TYPE_ROCE_UDP_ENCAP
5251

@@ -2198,8 +2197,8 @@ static int cma_ib_handler(struct ib_cm_id *cm_id,
21982197
case IB_CM_REP_RECEIVED:
21992198
if (state == RDMA_CM_CONNECT &&
22002199
(id_priv->id.qp_type != IB_QPT_UD)) {
2201-
trace_cm_send_mra(id_priv);
2202-
ib_send_cm_mra(cm_id, CMA_CM_MRA_SETTING, NULL, 0);
2200+
trace_cm_prepare_mra(id_priv);
2201+
ib_prepare_cm_mra(cm_id);
22032202
}
22042203
if (id_priv->id.qp) {
22052204
event.status = cma_rep_recv(id_priv);
@@ -2460,8 +2459,8 @@ static int cma_ib_req_handler(struct ib_cm_id *cm_id,
24602459

24612460
if (READ_ONCE(conn_id->state) == RDMA_CM_CONNECT &&
24622461
conn_id->id.qp_type != IB_QPT_UD) {
2463-
trace_cm_send_mra(cm_id->context);
2464-
ib_send_cm_mra(cm_id, CMA_CM_MRA_SETTING, NULL, 0);
2462+
trace_cm_prepare_mra(cm_id->context);
2463+
ib_prepare_cm_mra(cm_id);
24652464
}
24662465
mutex_unlock(&conn_id->handler_mutex);
24672466

drivers/infiniband/core/cma_trace.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ DECLARE_EVENT_CLASS(cma_fsm_class,
5555

5656
DEFINE_CMA_FSM_EVENT(send_rtu);
5757
DEFINE_CMA_FSM_EVENT(send_rej);
58-
DEFINE_CMA_FSM_EVENT(send_mra);
58+
DEFINE_CMA_FSM_EVENT(prepare_mra);
5959
DEFINE_CMA_FSM_EVENT(send_sidr_req);
6060
DEFINE_CMA_FSM_EVENT(send_sidr_rep);
6161
DEFINE_CMA_FSM_EVENT(disconnect);

include/rdma/ib_cm.h

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -480,23 +480,12 @@ int ib_send_cm_rej(struct ib_cm_id *cm_id,
480480
const void *private_data,
481481
u8 private_data_len);
482482

483-
#define IB_CM_MRA_FLAG_DELAY 0x80 /* Send MRA only after a duplicate msg */
484-
485483
/**
486-
* ib_send_cm_mra - Sends a message receipt acknowledgement to a connection
487-
* message.
484+
* ib_prepare_cm_mra - Prepares to send a message receipt acknowledgment to a
485+
connection message in case duplicates are received.
488486
* @cm_id: Connection identifier associated with the connection message.
489-
* @service_timeout: The lower 5-bits specify the maximum time required for
490-
* the sender to reply to the connection message. The upper 3-bits
491-
* specify additional control flags.
492-
* @private_data: Optional user-defined private data sent with the
493-
* message receipt acknowledgement.
494-
* @private_data_len: Size of the private data buffer, in bytes.
495487
*/
496-
int ib_send_cm_mra(struct ib_cm_id *cm_id,
497-
u8 service_timeout,
498-
const void *private_data,
499-
u8 private_data_len);
488+
int ib_prepare_cm_mra(struct ib_cm_id *cm_id);
500489

501490
/**
502491
* ib_cm_init_qp_attr - Initializes the QP attributes for use in transitioning

0 commit comments

Comments
 (0)