[ofa-general] Re: [PATCH 1 of 2] libmlx4: Fix race condition in create/destroy QP

Roland Dreier rdreier at cisco.com
Mon Nov 24 13:52:55 PST 2008


I think I see one bug at least:

 > @@ -580,9 +584,12 @@ int mlx4_destroy_qp(struct ibv_qp *ibqp)
 >  	struct mlx4_qp *qp = to_mqp(ibqp);
 >  	int ret;
 >  
 > +	pthread_mutex_lock(&to_mctx(ibqp->context)->qp_table_mutex);
 >  	ret = ibv_cmd_destroy_qp(ibqp);
 > -	if (ret)
 > +	if (ret) {
 > +		pthread_mutex_lock(&to_mctx(ibqp->context)->qp_table_mutex);

The second one should be unlock.

I'm too tired to check everything carefully enough to be sure it's right
though.  Can you double-check your lock balancing and error paths, and
resend fixed patches?

Thanks,
  Roland



More information about the general mailing list