From 3b5adb1569709d3c81f2bf5fa1721395e667737c Mon Sep 17 00:00:00 2001 From: Erez Shitrit Date: Tue, 28 Aug 2012 10:33:05 +0300 Subject: [PATCH] ib/core: add prints to the cm module. control flows, on errors/unexpected events. V2: replaced printk(KERN_ERR with pr_err() Signed-off-by: Erez Shitrit Signed-off-by: Jack Morgenstein (Ported from Mellanox OFED 2.4) Signed-off-by: Mukesh Kacker --- drivers/infiniband/core/cm.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 0271608a51c4..965592ca2bf6 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -1547,6 +1547,7 @@ static int cm_req_handler(struct cm_work *work) listen_cm_id_priv = cm_match_req(work, cm_id_priv); if (!listen_cm_id_priv) { + pr_err("%s: no listen_cm_id_priv\n", __func__); ret = -EINVAL; kfree(cm_id_priv->timewait_info); goto destroy; @@ -1654,6 +1655,7 @@ int ib_send_cm_rep(struct ib_cm_id *cm_id, spin_lock_irqsave(&cm_id_priv->lock, flags); if (cm_id->state != IB_CM_REQ_RCVD && cm_id->state != IB_CM_MRA_REQ_SENT) { + pr_err("%s: cm_id->state: %d\n", __func__, cm_id->state); ret = -EINVAL; goto out; } @@ -1720,6 +1722,7 @@ int ib_send_cm_rtu(struct ib_cm_id *cm_id, spin_lock_irqsave(&cm_id_priv->lock, flags); if (cm_id->state != IB_CM_REP_RCVD && cm_id->state != IB_CM_MRA_REP_SENT) { + pr_err("%s: cm_id->state: %d\n", __func__, cm_id->state); ret = -EINVAL; goto error; } @@ -1824,6 +1827,7 @@ static int cm_rep_handler(struct cm_work *work) cm_id_priv = cm_acquire_id(rep_msg->remote_comm_id, 0); if (!cm_id_priv) { cm_dup_rep_handler(work); + pr_err("%s: no cm_id_priv\n", __func__); return -EINVAL; } @@ -1837,6 +1841,7 @@ static int cm_rep_handler(struct cm_work *work) default: spin_unlock_irq(&cm_id_priv->lock); ret = -EINVAL; + pr_err("%s: cm_id_priv->id.state: %d \n", __func__, cm_id_priv->id.state); goto error; } @@ -1850,6 +1855,7 @@ static int cm_rep_handler(struct cm_work *work) spin_unlock(&cm.lock); spin_unlock_irq(&cm_id_priv->lock); ret = -EINVAL; + pr_err("%s: Failed to insert remote id \n", __func__); goto error; } /* Check for a stale connection. */ @@ -1863,6 +1869,7 @@ static int cm_rep_handler(struct cm_work *work) IB_CM_REJ_STALE_CONN, CM_MSG_RESPONSE_REP, NULL, 0); ret = -EINVAL; + pr_err("%s: Stale connection.\n", __func__); goto error; } spin_unlock(&cm.lock); @@ -2003,6 +2010,7 @@ int ib_send_cm_dreq(struct ib_cm_id *cm_id, cm_id_priv = container_of(cm_id, struct cm_id_private, id); spin_lock_irqsave(&cm_id_priv->lock, flags); if (cm_id->state != IB_CM_ESTABLISHED) { + pr_err("%s: cm_id->state: %d \n", __func__, cm_id->state); ret = -EINVAL; goto out; } @@ -2072,6 +2080,8 @@ int ib_send_cm_drep(struct ib_cm_id *cm_id, if (cm_id->state != IB_CM_DREQ_RCVD) { spin_unlock_irqrestore(&cm_id_priv->lock, flags); kfree(data); + pr_err("%s: cm_id->state(%d) != IB_CM_DREQ_RCVD\n", + __func__, cm_id->state); return -EINVAL; } @@ -2137,6 +2147,7 @@ static int cm_dreq_handler(struct cm_work *work) atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES]. counter[CM_DREQ_COUNTER]); cm_issue_drep(work->port, work->mad_recv_wc); + pr_err("%s: no cm_id_priv\n", __func__); return -EINVAL; } @@ -2177,6 +2188,7 @@ static int cm_dreq_handler(struct cm_work *work) counter[CM_DREQ_COUNTER]); goto unlock; default: + pr_err("%s: cm_id_priv->id.state: %d\n", __func__, cm_id_priv->id.state); goto unlock; } cm_id_priv->id.state = IB_CM_DREQ_RCVD; @@ -2280,6 +2292,7 @@ int ib_send_cm_rej(struct ib_cm_id *cm_id, cm_enter_timewait(cm_id_priv); break; default: + pr_err("%s: cm_id->state: 0x%x\n", __func__, cm_id->state); ret = -EINVAL; goto out; } @@ -2390,6 +2403,8 @@ static int cm_rej_handler(struct cm_work *work) /* fall through */ default: spin_unlock_irq(&cm_id_priv->lock); + pr_err("%s: cm_id_priv->id.state: 0x%x\n", + __func__, cm_id_priv->id.state); ret = -EINVAL; goto out; } @@ -2452,6 +2467,7 @@ int ib_send_cm_mra(struct ib_cm_id *cm_id, break; } default: + pr_err("%s: cm_id_priv->id.state: 0x%x\n", __func__, cm_id_priv->id.state); ret = -EINVAL; goto error1; } @@ -2553,6 +2569,7 @@ static int cm_mra_handler(struct cm_work *work) counter[CM_MRA_COUNTER]); /* fall through */ default: + pr_err("%s: cm_id_priv->id.state: 0x%x\n", __func__, cm_id_priv->id.state); goto out; } @@ -3290,6 +3307,7 @@ static void cm_work_handler(struct work_struct *_work) ret = cm_timewait_handler(work); break; default: + pr_err("%s: work->cm_event.event: 0x%x\n", __func__, work->cm_event.event); ret = -EINVAL; break; } @@ -3320,6 +3338,7 @@ static int cm_establish(struct ib_cm_id *cm_id) ret = -EISCONN; break; default: + pr_err("%s: cm_id->state: 0x%x\n", __func__, cm_id->state); ret = -EINVAL; break; } @@ -3482,6 +3501,7 @@ static int cm_init_qp_init_attr(struct cm_id_private *cm_id_priv, ret = 0; break; default: + pr_err("%s: cm_id_priv->id.state: 0x%x\n", __func__, cm_id_priv->id.state); ret = -EINVAL; break; } @@ -3555,6 +3575,7 @@ static int cm_init_qp_rtr_attr(struct cm_id_private *cm_id_priv, ret = 0; break; default: + pr_err("%s: cm_id_priv->id.state: 0x%x\n", __func__, cm_id_priv->id.state); ret = -EINVAL; break; } @@ -3614,6 +3635,7 @@ static int cm_init_qp_rts_attr(struct cm_id_private *cm_id_priv, ret = 0; break; default: + pr_err("%s: cm_id_priv->id.state: 0x%x\n", __func__, cm_id_priv->id.state); ret = -EINVAL; break; } @@ -3640,6 +3662,7 @@ int ib_cm_init_qp_attr(struct ib_cm_id *cm_id, ret = cm_init_qp_rts_attr(cm_id_priv, qp_attr, qp_attr_mask); break; default: + pr_err("%s: qp_attr->qp_state: 0x%x\n", __func__, qp_attr->qp_state); ret = -EINVAL; break; } -- 2.50.1