[IPOIB] - clear the endpt lid_list on SM change event
[mirror/winof/.git] / ulp / ipoib / kernel / ipoib_port.c
index 75f881f..3eca133 100644 (file)
@@ -1711,7 +1711,7 @@ __recv_get_endpts(
 #else  /* IPOIB_INLINE_RECV */\r
                        *pp_src = ipoib_endpt_create( &p_desc->p_buf->ib.grh.src_gid,\r
 #endif /* IPOIB_INLINE_RECV */\r
-                               p_wc->recv.ud.remote_lid, p_wc->recv.ud.remote_qp );\r
+                               0, p_wc->recv.ud.remote_qp );\r
                        if( !*pp_src )\r
                        {\r
                                IPOIB_PRINT_EXIT( TRACE_LEVEL_ERROR, IPOIB_DBG_ERROR,\r
@@ -3994,11 +3994,7 @@ __endpt_mgr_reset_all(
                                &p_endpt->mac_item );\r
                        cl_fmap_remove_item( &p_port->endpt_mgr.gid_endpts,\r
                                &p_endpt->gid_item );\r
-                       if( p_endpt->dlid )\r
-                       {\r
-                               cl_qmap_remove_item( &p_port->endpt_mgr.lid_endpts,\r
-                                       &p_endpt->lid_item );\r
-                       }\r
+\r
                        cl_qlist_insert_tail(\r
                                &mc_list, &p_endpt->mac_item.pool_item.list_item );\r
                }\r
@@ -4008,6 +4004,14 @@ __endpt_mgr_reset_all(
                        p_port->p_adapter->p_ifc->destroy_av( p_endpt->h_av );\r
                        p_endpt->h_av = NULL;\r
                }\r
+               \r
+               if( p_endpt->dlid )\r
+               {\r
+                       cl_qmap_remove_item( &p_port->endpt_mgr.lid_endpts,\r
+                               &p_endpt->lid_item );\r
+                       p_endpt->dlid = 0;\r
+               }\r
+               \r
        }\r
        cl_obj_unlock( &p_port->obj );\r
 \r