[ofa-general] crash in ipoib

Michael S. Tsirkin mst at dev.mellanox.co.il
Thu Jun 14 13:15:38 PDT 2007


> Quoting Roland Dreier <rdreier at cisco.com>:
> Subject: Re: [ofa-general] crash in ipoib
> 
>  > +	ret = ipoib_cm_send_rep(dev, cm_id, p->qp, &event->param.req_rcvd, psn);
>  > +	if (ret) {
>  > +		ipoib_warn(priv, "failed to send REP: %d\n", ret);
>  > +		if (ib_modify_qp(p->qp, &ipoib_cm_err_attr, IB_QP_STATE))
>  > +			ipoib_warn(priv, "unable to move qp to error state\n");
>  > +	}
> 
> So if sending a rep fails, this leaves p on the passive_ids list with
> state IPOIB_CM_RX_LIVE.  Does it ever get cleaned up?

Yes, in the usual way: upon the last wqe reached event.

> The old code used to destroy the qp and free p if sending a REP failed.

This was really a wrong thing to do - destroying QP connected to srq must be
done with the draining procedure, in case the remote violates the protocol
and sends us packets for this QPN.

-- 
MST



More information about the general mailing list