[ofw] BSOD at winmad
Hefty, Sean
sean.hefty at intel.com
Mon Nov 29 07:53:06 PST 2010
> 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
More information about the ofw
mailing list