> 1. WmRegRemoveHandler sets pRegistration->pDevice = NULL;
This is not done until all HCA resources have been destroyed:
pRegistration->pDevice->IbInterface.destroy_qp(pRegistration->hQp,
NULL);
pRegistration->pDevice->IbInterface.dealloc_pd(pRegistration->hPd,
NULL);
pRegistration->pDevice->IbInterface.close_ca(pRegistration->hCa, NULL);
pRegistration->pDevice->IbInterface.close_al(pRegistration->hIbal);
WmIbDevicePut(pRegistration->pDevice);
pRegistration->pDevice = NULL;
> 2. WmReceiveHandler() uses pReg->pDevice
> 4. How can we ensure that this callback was removed before we cleared the
> pDevice pointer?
> I.e., I am looking for something like call to dereg_mad_svc
The purpose behind using ib_sync_destroy is to ensure that WmReceiveHandler
cannot be called after we've destroyed the QP, closed the CA, and closed AL.
I believe that destroy_qp acts as 'dereg_mad_svc'.
- Sean
_______________________________________________
ofw mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw