@@ -2394,13 +2394,13 @@ static int cm_rep_handler(struct cm_work *work)
2394
2394
case IB_CM_MRA_REQ_RCVD :
2395
2395
break ;
2396
2396
default :
2397
- spin_unlock_irq (& cm_id_priv -> lock );
2398
2397
ret = - EINVAL ;
2399
2398
pr_debug (
2400
2399
"%s: cm_id_priv->id.state: %d, local_comm_id %d, remote_comm_id %d\n" ,
2401
2400
__func__ , cm_id_priv -> id .state ,
2402
2401
IBA_GET (CM_REP_LOCAL_COMM_ID , rep_msg ),
2403
2402
IBA_GET (CM_REP_REMOTE_COMM_ID , rep_msg ));
2403
+ spin_unlock_irq (& cm_id_priv -> lock );
2404
2404
goto error ;
2405
2405
}
2406
2406
@@ -2666,10 +2666,10 @@ int ib_send_cm_drep(struct ib_cm_id *cm_id,
2666
2666
cm_id_priv = container_of (cm_id , struct cm_id_private , id );
2667
2667
spin_lock_irqsave (& cm_id_priv -> lock , flags );
2668
2668
if (cm_id -> state != IB_CM_DREQ_RCVD ) {
2669
- spin_unlock_irqrestore (& cm_id_priv -> lock , flags );
2670
- kfree (data );
2671
2669
pr_debug ("%s: local_id %d, cm_idcm_id->state(%d) != IB_CM_DREQ_RCVD\n" ,
2672
2670
__func__ , be32_to_cpu (cm_id -> local_id ), cm_id -> state );
2671
+ spin_unlock_irqrestore (& cm_id_priv -> lock , flags );
2672
+ kfree (data );
2673
2673
return - EINVAL ;
2674
2674
}
2675
2675
@@ -3005,10 +3005,10 @@ static int cm_rej_handler(struct cm_work *work)
3005
3005
}
3006
3006
/* fall through */
3007
3007
default :
3008
- spin_unlock_irq (& cm_id_priv -> lock );
3009
3008
pr_debug ("%s: local_id %d, cm_id_priv->id.state: %d\n" ,
3010
3009
__func__ , be32_to_cpu (cm_id_priv -> id .local_id ),
3011
3010
cm_id_priv -> id .state );
3011
+ spin_unlock_irq (& cm_id_priv -> lock );
3012
3012
ret = - EINVAL ;
3013
3013
goto out ;
3014
3014
}
0 commit comments