[ofw] [PATCH] mad: deregister MR earlier in destroy path
Sean Hefty
sean.hefty at intel.com
Mon May 11 16:34:51 PDT 2009
When restarting the stack, the MAD pool tries to deregister its memory
during the cleanup phase. This results in an error because of an
invalid h_mr handle. Fix the error by deregistering the memory during
the destroying callback.
Signed-off-by: Sean Hefty <sean.hefty at intel.com>
---
This moves the memory deregistration call from the cleanup thread to whatever
thread is calling destroy. I didn't see any issues with this during my testing.
Index: al_mad_pool.c
===================================================================
--- al_mad_pool.c (revision 2100)
+++ al_mad_pool.c (working copy)
@@ -460,6 +460,8 @@
/* Remove this pool_key from the AL instance. */
al_remove_key( p_pool_key );
+ if( p_pool_key->h_mr )
+ ib_dereg_mr( p_pool_key->h_mr );
p_pool_key->lkey = 0;
}
@@ -483,9 +485,6 @@
CL_ASSERT( !p_pool_key->mad_cnt );
- if( p_pool_key->h_mr )
- ib_dereg_mr( p_pool_key->h_mr );
-
/* Search for any outstanding MADs associated with the given pool key. */
if( p_pool_key->mad_cnt )
{
More information about the ofw
mailing list