<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.3243" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=Arial><FONT size=2>port_mgr_port_add<SPAN 
class=723094918-25042009>() allocates a port_pnp_ctx_t context, which is saved 
by IBAL to be used later in port_mgr_port_remove().</SPAN></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN class=723094918-25042009>But in 
hibernation flow port_mgr_port_remove() doesn't release this context which 
causes IBBUS memory leak.</SPAN></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN class=723094918-25042009>It was trapped 
by Verifier during WHQL Common Scenario Stress test.</SPAN></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN 
class=723094918-25042009></SPAN></FONT></FONT> </DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN class=723094918-25042009>The below 
patch fixes that.</SPAN></FONT></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Index: 
core/bus/kernel/bus_port_mgr.c<BR>===================================================================<BR>--- 
core/bus/kernel/bus_port_mgr.c (revision 2132)<BR>+++ 
core/bus/kernel/bus_port_mgr.c (working copy)<BR>@@ -1269,11 +1268,11 
@@<BR>  IoInvalidateDeviceRelations(<BR>   p_ext->h_ca->p_hca_dev, 
BusRelations );<BR> <BR>+hca_deref:<BR>  /* Free PNP context 
memory */<BR>  cl_free( p_ctx 
);<BR>  p_pnp_rec->pnp_rec.context = 
NULL;<BR> <BR>-hca_deref:<BR>  deref_al_obj( 
&p_ext->h_ca->obj );<BR>  <BR>  // Setting 
h_ca to be NULL forces IPoIB to start only after re-acquiring new CA 
object<BR></DIV></FONT></BODY></HTML>