> 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

Reply via email to