[IBAL] IBAL currently blows away all CEPs from its 'destroying' callback. This patch...
authorleonidk <leonidk@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Wed, 2 Jul 2008 17:53:15 +0000 (17:53 +0000)
committerleonidk <leonidk@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Wed, 2 Jul 2008 17:53:15 +0000 (17:53 +0000)
Signed-off-by: Fab Tillier <ftillier@microsoft.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@1328 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

core/al/al.c
core/al/al.h
core/al/kernel/al_mgr.c

index f1e648f..db8c0e2 100644 (file)
@@ -116,13 +116,18 @@ destroying_al(
        }\r
 \r
        cl_spinlock_release( &p_obj->lock );\r
+}\r
+\r
 \r
+void\r
+cleanup_al(\r
+       IN                              al_obj_t                                        *p_obj )\r
+{\r
        /* Cleanup any left-over connections. */\r
-       al_cep_cleanup_al( h_al );\r
+       al_cep_cleanup_al( PARENT_STRUCT( p_obj, ib_al_t, obj ) );\r
 }\r
 \r
 \r
-\r
 static void\r
 __free_mads(\r
        IN                              const   ib_al_handle_t          h_al )\r
index 07e402d..58da621 100644 (file)
@@ -108,6 +108,11 @@ destroying_al(
        IN                              al_obj_t                                        *p_obj );\r
 \r
 \r
+void\r
+cleanup_al(\r
+       IN                              al_obj_t                                        *p_obj );\r
+\r
+\r
 void\r
 free_al(\r
        IN                              al_obj_t                                        *p_obj );\r
index 1c7ab56..885ead6 100644 (file)
@@ -414,7 +414,7 @@ ib_open_al(
 \r
        /* Initialize the base object. */\r
        status = init_al_obj( &h_al->obj, NULL, FALSE,\r
-               destroying_al, NULL, free_al );\r
+               destroying_al, cleanup_al, free_al );\r
        if( status != IB_SUCCESS )\r
        {\r
                free_al( &h_al->obj );\r