ret = ib_post_send_mad(cm_id_priv->av.port->mad_agent, &msg->send_wr, &bad_send_wr); 
ret = ib_post_send_mad(msg, NULL); 
static void cm_dup_req_handler(struct cm_work *work,			       struct cm_id_private *cm_id_priv){	struct ib_mad_send_buf *msg = NULL;	struct ib_send_wr *bad_send_wr;	unsigned long flags;	int ret;	/* Quick state check to discard duplicate REQs. */	if (cm_id_priv->id.state == IB_CM_REQ_RCVD)		return;	ret = cm_alloc_response_msg(work->port, work->mad_recv_wc, &msg);	if (ret)		return;	spin_lock_irqsave(&cm_id_priv->lock, flags);	switch (cm_id_priv->id.state) {	case IB_CM_MRA_REQ_SENT:		cm_format_mra((struct cm_mra_msg *) msg->mad, cm_id_priv,			      CM_MSG_RESPONSE_REQ, cm_id_priv->service_timeout,			      cm_id_priv->private_data,			      cm_id_priv->private_data_len);		break;	case IB_CM_TIMEWAIT:		cm_format_rej((struct cm_rej_msg *) msg->mad, cm_id_priv,			      IB_CM_REJ_STALE_CONN, NULL, 0, NULL, 0);		break;	default:		goto unlock;	}	spin_unlock_irqrestore(&cm_id_priv->lock, flags);	ret = ib_post_send_mad(cm_id_priv->av.port->mad_agent, &msg->send_wr,			       &bad_send_wr);	if (ret)		goto free;	return;unlock:	spin_unlock_irqrestore(&cm_id_priv->lock, flags);free:	cm_free_msg(msg);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/34816ad98efe4d47ffd858a0345321f9d85d9420/cm.c/buggy/drivers/infiniband/core/cm.c