port_mgr_port_add() allocates a port_pnp_ctx_t context, which is saved
by IBAL to be used later in port_mgr_port_remove().
But in hibernation flow port_mgr_port_remove() doesn't release this
context which causes IBBUS memory leak.
It was trapped by Verifier during WHQL Common Scenario Stress test.
 
The below patch fixes that.
 
 
Index: core/bus/kernel/bus_port_mgr.c
===================================================================
--- core/bus/kernel/bus_port_mgr.c (revision 2132)
+++ core/bus/kernel/bus_port_mgr.c (working copy)
@@ -1269,11 +1268,11 @@
  IoInvalidateDeviceRelations(
   p_ext->h_ca->p_hca_dev, BusRelations );
 
+hca_deref:
  /* Free PNP context memory */
  cl_free( p_ctx );
  p_pnp_rec->pnp_rec.context = NULL;
 
-hca_deref:
  deref_al_obj( &p_ext->h_ca->obj );
  
  // Setting h_ca to be NULL forces IPoIB to start only after
re-acquiring new CA object

_______________________________________________
ofw mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw

Reply via email to