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
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to