<!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.6000.16587" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=492494814-13112008><FONT face=Arial color=#0000ff size=2>It 
seems that applying this patch, should only be done after the following patch is 
applied: </FONT></SPAN></DIV>
<DIV><SPAN class=492494814-13112008><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=492494814-13112008><FONT size=2>
<P>[PnP] added debug print messages</P></FONT></SPAN></DIV><FONT size=2>Index: 
Q:/projinf4/trunk/core/complib/kernel/cl_pnp_po.c<BR>===================================================================<BR>--- 
Q:/projinf4/trunk/core/complib/kernel/cl_pnp_po.c (revision 3391)<BR>+++ 
Q:/projinf4/trunk/core/complib/kernel/cl_pnp_po.c (revision 3392)<BR>@@ 
-208,6 +208,7 @@<BR> <BR>  CL_ASSERT( KeGetCurrentIrql() < 
DISPATCH_LEVEL );<BR>  <BR>+ CL_TRACE( CL_DBG_PNP, 
p_ext->dbg_lvl, ("IoAcquireRemoveLock: [\n"));<BR>  status = 
IoAcquireRemoveLock( &p_ext->remove_lock, p_irp );<BR>  if( 
!NT_SUCCESS( status ) )<BR>  {<BR>@@ -217,6 +218,7 
@@<BR>   IoCompleteRequest( p_irp, IO_NO_INCREMENT 
);<BR>   return status;<BR>  }<BR>+ CL_TRACE( 
CL_DBG_PNP, p_ext->dbg_lvl, ("IoAcquireRemoveLock: 
]\n"));<BR> <BR>  p_io_stack = IoGetCurrentIrpStackLocation( 
p_irp );<BR>  ASSERT( p_io_stack->MajorFunction == IRP_MJ_PNP 
);<BR>@@ -493,9 +495,18 @@<BR>  if( p_ext->last_pnp_state == 
Started )<BR>  {<BR>   /* Acquire the lock so we can 
release and wait. */<BR>+  CL_TRACE( CL_DBG_PNP, p_ext->dbg_lvl, 
("IoAcquireRemoveLock: [\n"));<BR>   IoAcquireRemoveLock( 
&p_ext->stop_lock, p_irp );<BR>+  if( !NT_SUCCESS( status ) 
)<BR>+  {<BR>+   CL_TRACE( CL_DBG_ERROR, 
p_ext->dbg_lvl, <BR>+    ("IoAcquireRemoveLock returned 
%08x. Continue anyway ...\n", status) 
);<BR>+  }<BR>+  CL_TRACE( CL_DBG_PNP, p_ext->dbg_lvl, 
("IoAcquireRemoveLock: ]\n"));<BR>   /* Wait for all IO 
operations to complete. */<BR>+  CL_TRACE( CL_DBG_PNP, 
p_ext->dbg_lvl, ("IoReleaseRemoveLockAndWait: 
[\n"));<BR>   IoReleaseRemoveLockAndWait( 
&p_ext->stop_lock, p_irp );<BR>+  CL_TRACE( CL_DBG_PNP, 
p_ext->dbg_lvl, ("IoReleaseRemoveLockAndWait: 
]\n"));<BR>  }<BR> <BR>  status = 
p_ext->vfptr_pnp_po->pfn_query_stop( p_dev_obj, p_irp, p_action );<BR>@@ 
-570,7 +581,14 @@<BR>   /* <BR>    * Acquire the 
stop lock to allow releasing and waiting when stopping.<BR>    
*/<BR>+  CL_TRACE( CL_DBG_PNP, p_ext->dbg_lvl, 
("IoAcquireRemoveLock: [\n"));<BR>   IoAcquireRemoveLock( 
&p_ext->stop_lock, NULL );<BR>+  if( !NT_SUCCESS( status ) 
)<BR>+  {<BR>+   CL_TRACE( CL_DBG_ERROR, 
p_ext->dbg_lvl, <BR>+    ("IoAcquireRemoveLock returned 
%08x. Continue anyway ...\n", status) 
);<BR>+  }<BR>+  CL_TRACE( CL_DBG_PNP, p_ext->dbg_lvl, 
("IoAcquireRemoveLock: ]\n"));<BR>  }<BR> <BR>  /* 
Return to the previous PnP state. */<BR>@@ -679,7 +697,9 
@@<BR>  CL_ENTER( CL_DBG_PNP, p_ext->dbg_lvl 
);<BR> <BR>  /* Wait for all I/O operations to complete. 
*/<BR>+ CL_TRACE( CL_DBG_PNP, p_ext->dbg_lvl, 
("IoReleaseRemoveLockAndWait: [\n"));<BR>  IoReleaseRemoveLockAndWait( 
&p_ext->remove_lock, p_irp );<BR>+ CL_TRACE( CL_DBG_PNP, 
p_ext->dbg_lvl, ("IoReleaseRemoveLockAndWait: 
]\n"));<BR> <BR>  /* Release resources if it was not done yet. 
*/<BR>  if( p_ext->last_pnp_state != SurpriseRemoved 
&&<BR>@@ -1257,6 +1277,7 @@<BR> <BR>  CL_ENTER( 
CL_DBG_PNP, p_ext->dbg_lvl );<BR> <BR>+ CL_TRACE( CL_DBG_PNP, 
p_ext->dbg_lvl, ("IoAcquireRemoveLock: [\n"));<BR>  status = 
IoAcquireRemoveLock( &p_ext->remove_lock, p_irp );<BR>  if( 
!NT_SUCCESS( status ) )<BR>  {<BR>@@ -1268,6 +1289,7 
@@<BR>   IoCompleteRequest( p_irp, IO_NO_INCREMENT 
);<BR>   return status;<BR>  }<BR>+ CL_TRACE( 
CL_DBG_PNP, p_ext->dbg_lvl, ("IoAcquireRemoveLock: 
]\n"));<BR> <BR>  p_io_stack = IoGetCurrentIrpStackLocation( 
p_irp );<BR>  ASSERT( p_io_stack->MajorFunction == IRP_MJ_POWER 
);<BR>Index: 
Q:/projinf4/trunk/core/bus/kernel/bus_port_mgr.c<BR>===================================================================<BR>--- 
Q:/projinf4/trunk/core/bus/kernel/bus_port_mgr.c (revision 3391)<BR>+++ 
Q:/projinf4/trunk/core/bus/kernel/bus_port_mgr.c (revision 3392)<BR>@@ 
-1392,7 +1392,9 @@<BR>  }<BR> <BR>  /* Wait for all I/O 
operations to complete. */<BR>+ BUS_TRACE( BUS_DBG_PNP, 
("IoReleaseRemoveLockAndWait: [\n"));<BR>  IoReleaseRemoveLockAndWait( 
&p_ext->pdo.cl_ext.remove_lock, p_irp );<BR>+ BUS_TRACE( 
BUS_DBG_PNP, ("IoReleaseRemoveLockAndWait: ]\n"));<BR> <BR>  /* 
Release resources if it was not done yet. */<BR>  if( 
p_ext->pdo.cl_ext.last_pnp_state != SurpriseRemoved )<BR>Index: 
Q:/projinf4/trunk/core/bus/kernel/bus_driver.c<BR>===================================================================<BR>--- 
Q:/projinf4/trunk/core/bus/kernel/bus_driver.c (revision 3391)<BR>+++ 
Q:/projinf4/trunk/core/bus/kernel/bus_driver.c (revision 3392)<BR>@@ -588,6 
+588,7 @@<BR>  p_io_stack = IoGetCurrentIrpStackLocation( p_irp 
);<BR> <BR>  /* Acquire the stop lock. */<BR>+ BUS_TRACE( 
BUS_DBG_DRV, ("IoAcquireRemoveLock: [\n"));<BR>  status = 
IoAcquireRemoveLock( &p_ext->cl_ext.stop_lock, p_irp 
);<BR>  if( !NT_SUCCESS( status ) )<BR>  {<BR>@@ -597,6 
+598,7 @@<BR>   BUS_EXIT( BUS_DBG_DRV 
);<BR>   return status;<BR>  }<BR>+ BUS_TRACE( 
BUS_DBG_DRV, ("IoAcquireRemoveLock: ]\n"));<BR> <BR>  /* Acquire 
the remove lock. */<BR>  status = IoAcquireRemoveLock( 
&p_ext->cl_ext.remove_lock, p_irp );<BR>Index: 
Q:/projinf4/trunk/core/bus/kernel/bus_iou_mgr.c<BR>===================================================================<BR>--- 
Q:/projinf4/trunk/core/bus/kernel/bus_iou_mgr.c (revision 3391)<BR>+++ 
Q:/projinf4/trunk/core/bus/kernel/bus_iou_mgr.c (revision 3392)<BR>@@ 
-1037,7 +1037,9 @@<BR>  }<BR> <BR>  /* Wait for all I/O 
operations to complete. */<BR>+ BUS_TRACE( BUS_DBG_PNP, 
("IoReleaseRemoveLockAndWait: [\n"));<BR>  IoReleaseRemoveLockAndWait( 
&p_ext->pdo.cl_ext.remove_lock, p_irp );<BR>+ BUS_TRACE( 
BUS_DBG_PNP, ("IoReleaseRemoveLockAndWait: ]\n"));<BR> <BR>  /* 
Release resources if it was not done yet. */<BR>  if( 
p_ext->pdo.cl_ext.last_pnp_state != SurpriseRemoved )<BR>@@ -1673,7 +1675,9 
@@<BR> <BR>  if ((p_io_stack->Parameters.Power.Type == 
SystemPowerState) 
&&<BR>   (p_io_stack->Parameters.Power.State.SystemState 
==PowerSystemHibernate 
||<BR>-  p_io_stack->Parameters.Power.State.SystemState 
==PowerSystemSleeping1 
))<BR>+  p_io_stack->Parameters.Power.State.SystemState 
==PowerSystemSleeping1 || 
<BR>+  p_io_stack->Parameters.Power.State.SystemState 
==PowerSystemSleeping2 || 
<BR>+  p_io_stack->Parameters.Power.State.SystemState 
==PowerSystemSleeping3 ))<BR>  {<BR>   BUS_TRACE( 
BUS_DBG_POWER, ("Setting b_hibernating flag for PDO %p \n", 
p_dev_obj));<BR>   p_ext->b_hibernating = TRUE;<BR>Index: 
Q:/projinf4/trunk/core/iou/kernel/iou_ioc_mgr.c<BR>===================================================================<BR>--- 
Q:/projinf4/trunk/core/iou/kernel/iou_ioc_mgr.c (revision 3391)<BR>+++ 
Q:/projinf4/trunk/core/iou/kernel/iou_ioc_mgr.c (revision 3392)<BR>@@ 
-684,7 +684,9 @@<BR>  }<BR> <BR>  /* Wait for all I/O 
operations to complete. */<BR>+ IOU_PRINT( TRACE_LEVEL_INFORMATION, 
IOU_DBG_PNP, ("IoReleaseRemoveLockAndWait: 
[\n"));<BR>  IoReleaseRemoveLockAndWait( 
&p_ext->pdo.cl_ext.remove_lock, p_irp );<BR>+ IOU_PRINT( 
TRACE_LEVEL_INFORMATION, IOU_DBG_PNP, ("IoReleaseRemoveLockAndWait: 
]\n"));<BR> <BR>  /* Release resources if it was not done yet. 
*/<BR>  if( p_ext->pdo.cl_ext.last_pnp_state != SurpriseRemoved 
)<BR></FONT><BR>
<BLOCKQUOTE dir=ltr 
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; MARGIN-RIGHT: 0px">
  <DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
  <HR tabIndex=-1>
  <FONT face=Tahoma size=2><B>From:</B> ofw-bounces@lists.openfabrics.org 
  [mailto:ofw-bounces@lists.openfabrics.org] <B>On Behalf Of </B>Tzachi 
  Dar<BR><B>Sent:</B> Thursday, November 13, 2008 4:25 PM<BR><B>To:</B> 
  ofw@lists.openfabrics.org<BR><B>Subject:</B> [ofw] patch: [core, mlx4,mthca] 
  Add debug prints.<BR></FONT><BR></DIV>
  <DIV></DIV>
  <DIV><FONT face=Arial size=2><SPAN class=554102214-13112008>This patch add 
  prints that are needed in order to debug a problem in the pnp 
  tests.</SPAN></FONT></DIV>
  <DIV><FONT face=Arial size=2><SPAN 
  class=554102214-13112008></SPAN></FONT> </DIV>
  <DIV><FONT face=Arial size=2><SPAN class=554102214-13112008>If we have a 
  release today, this patch will only go into the trunk.</SPAN></FONT></DIV>
  <DIV><FONT face=Arial size=2><SPAN 
  class=554102214-13112008></SPAN></FONT> </DIV>
  <DIV><FONT face=Arial size=2><SPAN class=554102214-13112008>sign off by: 
  Leonid</SPAN></FONT></DIV>
  <DIV><FONT face=Arial size=2></FONT> </DIV>
  <DIV><SPAN class=554102214-13112008><FONT face=Arial 
  size=2>Thanks</FONT></SPAN></DIV>
  <DIV><SPAN class=554102214-13112008><FONT face=Arial 
  size=2>Tzachi</FONT></SPAN></DIV>
  <DIV><FONT face=Arial size=2></FONT> </DIV>
  <DIV><FONT face=Arial size=2>Index: 
  Q:/projinf4/trunk/core/complib/kernel/cl_pnp_po.c<BR>===================================================================<BR>--- 
  Q:/projinf4/trunk/core/complib/kernel/cl_pnp_po.c (revision 3459)<BR>+++ 
  Q:/projinf4/trunk/core/complib/kernel/cl_pnp_po.c (revision 3460)<BR>@@ 
  -214,6 +214,9 @@<BR>  {<BR>   CL_TRACE_EXIT( 
  CL_DBG_ERROR, p_ext->dbg_lvl, 
  <BR>    ("IoAcquireRemoveLock returned %08x.\n", status) 
  );<BR>+  p_io_stack = IoGetCurrentIrpStackLocation( p_irp 
  );<BR>+  CL_TRACE( CL_DBG_PNP, p_ext->dbg_lvl, 
  <BR>+   ("Minor function %x for %s\n", 
  p_io_stack->MinorFunction, p_ext->vfptr_pnp_po->identity) 
  );<BR>   p_irp->IoStatus.Status = 
  status;<BR>   IoCompleteRequest( p_irp, IO_NO_INCREMENT 
  );<BR>   return status;<BR>@@ -245,7 +248,7 
  @@<BR> <BR>  case 
  IRP_MN_CANCEL_STOP_DEVICE:<BR>   CL_TRACE( CL_DBG_PNP, 
  p_ext->dbg_lvl, <BR>-   ("IRP_MN_START_DEVICE for %s\n", 
  p_ext->vfptr_pnp_po->identity) 
  );<BR>+   ("IRP_MN_CANCEL_STOP_DEVICE for %s\n", 
  p_ext->vfptr_pnp_po->identity) );<BR>   status = 
  __cancel_stop( p_dev_obj, p_irp, &action 
  );<BR>   break;<BR> <BR>@@ -396,6 +399,8 
  @@<BR>  {<BR>  case 
  IrpPassDown:<BR>   p_irp->IoStatus.Status = 
  status;<BR>+  CL_TRACE( CL_DBG_PNP, p_ext->dbg_lvl, 
  ("IrpPassDown: passing down to PDO %p, ext %p, status 
  %#x\n",<BR>+   p_ext->p_next_do, p_ext, 
  p_irp->IoStatus.Status) 
  );<BR>   IoCopyCurrentIrpStackLocationToNext( p_irp 
  );<BR>   status = IoCallDriver( p_ext->p_next_do, p_irp 
  );<BR>   break;<BR>@@ -404,23 +409,30 
  @@<BR>   p_irp->IoStatus.Status = 
  status;<BR> <BR>  case IrpIgnore:<BR>+  CL_TRACE( 
  CL_DBG_PNP, p_ext->dbg_lvl, ("IrpSkip/IrpIgnore: passing down to PDO %p, 
  ext %p, status %#x\n",<BR>+   p_ext->p_next_do, p_ext, 
  p_irp->IoStatus.Status) 
  );<BR>   IoSkipCurrentIrpStackLocation( p_irp 
  );<BR>   status = IoCallDriver( p_ext->p_next_do, p_irp 
  );<BR>   break;<BR> <BR>  case 
  IrpComplete:<BR>   p_irp->IoStatus.Status = 
  status;<BR>+  CL_TRACE( CL_DBG_PNP, p_ext->dbg_lvl, 
  ("IrpComplete: complete IRP with status 
  %#x\n",<BR>+   p_irp->IoStatus.Status) 
  );<BR>   IoCompleteRequest( p_irp, IO_NO_INCREMENT 
  );<BR>   break;<BR> <BR>  case 
  IrpDoNothing:<BR>+  CL_TRACE( CL_DBG_PNP, p_ext->dbg_lvl, 
  ("IrpDoNothing: do nothing\n") 
  );<BR>   break;<BR>  }<BR> <BR>- if( action 
  != IrpDoNothing )<BR>+ if( action != IrpDoNothing ) 
  {<BR>+  CL_TRACE( CL_DBG_PNP, p_ext->dbg_lvl, 
  ("IoReleaseRemoveLock: \n"));<BR>   IoReleaseRemoveLock( 
  &p_ext->remove_lock, p_irp );<BR>+ }<BR> <BR>- CL_EXIT( 
  CL_DBG_PNP, p_ext->dbg_lvl );<BR>+ CL_TRACE_EXIT( CL_DBG_PNP, 
  p_ext->dbg_lvl, ("returned with status %#x\n", status) 
  );<BR>  return status;<BR> }<BR> <BR>@@ -446,8 +458,10 
  @@<BR>   * If we get the start request when we're already started, 
  don't <BR>   * re-initialize the stop lock.<BR>   
  */<BR>- if( p_ext->last_pnp_state != Started )<BR>+ if( 
  p_ext->last_pnp_state != Started ) {<BR>+  CL_TRACE( CL_DBG_PNP, 
  p_ext->dbg_lvl, ("IoInitializeRemoveLock: stop_lock %p[\n", 
  &p_ext->stop_lock));<BR>   IoInitializeRemoveLock( 
  &p_ext->stop_lock, 'dtci', 0, 1000 
  );<BR>+ }<BR> <BR>  CL_EXIT( CL_DBG_PNP, p_ext->dbg_lvl 
  );<BR>  return status;<BR>@@ -495,18 +509,18 @@<BR>  if( 
  p_ext->last_pnp_state == Started )<BR>  {<BR>   /* 
  Acquire the lock so we can release and wait. */<BR>-  CL_TRACE( 
  CL_DBG_PNP, p_ext->dbg_lvl, ("IoAcquireRemoveLock: 
  [\n"));<BR>+  CL_TRACE( CL_DBG_PNP, p_ext->dbg_lvl, 
  ("IoAcquireRemoveLock: stop_lock 
  %p[\n",&p_ext->stop_lock));<BR>   status = 
  IoAcquireRemoveLock( &p_ext->stop_lock, p_irp 
  );<BR>   if( !NT_SUCCESS( status ) 
  )<BR>   {<BR>    CL_TRACE( CL_DBG_ERROR, 
  p_ext->dbg_lvl, <BR>     ("IoAcquireRemoveLock 
  returned %08x. Continue anyway ...\n", status) 
  );<BR>   }<BR>-  CL_TRACE( CL_DBG_PNP, 
  p_ext->dbg_lvl, ("IoAcquireRemoveLock: ]\n"));<BR>+  CL_TRACE( 
  CL_DBG_PNP, p_ext->dbg_lvl, ("IoAcquireRemoveLock: stop_lock 
  ]\n"));<BR>   /* Wait for all IO operations to complete. 
  */<BR>-  CL_TRACE( CL_DBG_PNP, p_ext->dbg_lvl, 
  ("IoReleaseRemoveLockAndWait: [\n"));<BR>+  CL_TRACE( CL_DBG_PNP, 
  p_ext->dbg_lvl, ("IoReleaseRemoveLockAndWait: stop_lock 
  %p[\n",&p_ext->stop_lock));<BR>   IoReleaseRemoveLockAndWait( 
  &p_ext->stop_lock, p_irp );<BR>-  CL_TRACE( CL_DBG_PNP, 
  p_ext->dbg_lvl, ("IoReleaseRemoveLockAndWait: 
  ]\n"));<BR>+  CL_TRACE( CL_DBG_PNP, p_ext->dbg_lvl, 
  ("IoReleaseRemoveLockAndWait: 
  stop_lock]\n"));<BR>  }<BR> <BR>  status = 
  p_ext->vfptr_pnp_po->pfn_query_stop( p_dev_obj, p_irp, p_action );<BR>@@ 
  -575,21 +589,22 @@<BR>  {<BR>   NTSTATUS 
  status1;<BR>   /*<BR>-   * Re-initialize the remove 
  lock before rolling back the PnP<BR>+   * Re-initialize the stop 
  lock before rolling back the PnP<BR>    * state so that there's 
  no contention while it's uninitialized.<BR>    
  */<BR>+  CL_TRACE( CL_DBG_PNP, p_ext->dbg_lvl, 
  ("IoInitializeRemoveLock: stop_lock %p[\n", 
  &p_ext->stop_lock));<BR>   IoInitializeRemoveLock( 
  &p_ext->stop_lock, 'dtci', 0, 1000 );<BR>   /* 
  <BR>    * Acquire the stop lock to allow releasing and waiting 
  when stopping.<BR>    */<BR>-  CL_TRACE( CL_DBG_PNP, 
  p_ext->dbg_lvl, ("IoAcquireRemoveLock: [\n"));<BR>+  CL_TRACE( 
  CL_DBG_PNP, p_ext->dbg_lvl, ("IoAcquireRemoveLock: stop_lock %p[\n", 
  &p_ext->stop_lock));<BR>   status1 = 
  IoAcquireRemoveLock( &p_ext->stop_lock, NULL 
  );<BR>   if( !NT_SUCCESS( status1 ) 
  )<BR>   {<BR>    CL_TRACE( CL_DBG_ERROR, 
  p_ext->dbg_lvl, <BR>     ("IoAcquireRemoveLock 
  returned %08x. Continue anyway ...\n", status) 
  );<BR>   }<BR>-  CL_TRACE( CL_DBG_PNP, 
  p_ext->dbg_lvl, ("IoAcquireRemoveLock: ]\n"));<BR>+  CL_TRACE( 
  CL_DBG_PNP, p_ext->dbg_lvl, ("IoAcquireRemoveLock: stop_lock 
  ]\n"));<BR>  }<BR> <BR>  /* Return to the previous 
  PnP state. */<BR>@@ -1367,8 +1382,10 
  @@<BR>   break;<BR>  }<BR> <BR>- if( action 
  != IrpDoNothing )<BR>+ if( action != IrpDoNothing ) 
  {<BR>+  CL_TRACE( CL_DBG_PNP, p_ext->dbg_lvl, 
  ("IoReleaseRemoveLock: \n"));<BR>   IoReleaseRemoveLock( 
  &p_ext->remove_lock, p_irp 
  );<BR>+ }<BR> <BR>  CL_EXIT( CL_DBG_PNP, p_ext->dbg_lvl 
  );<BR>  return status;<BR>Index: 
  Q:/projinf4/trunk/core/bus/kernel/bus_driver.c<BR>===================================================================<BR>--- 
  Q:/projinf4/trunk/core/bus/kernel/bus_driver.c (revision 3459)<BR>+++ 
  Q:/projinf4/trunk/core/bus/kernel/bus_driver.c (revision 3460)<BR>@@ 
  -588,7 +588,7 @@<BR>  p_io_stack = IoGetCurrentIrpStackLocation( 
  p_irp );<BR> <BR>  /* Acquire the stop lock. 
  */<BR>- BUS_TRACE( BUS_DBG_DRV, ("IoAcquireRemoveLock: 
  [\n"));<BR>+ BUS_TRACE( BUS_DBG_DRV, ("IoAcquireRemoveLock: stop_lock %p 
  [\n", &p_ext->cl_ext.stop_lock));<BR>  status = 
  IoAcquireRemoveLock( &p_ext->cl_ext.stop_lock, p_irp 
  );<BR>  if( !NT_SUCCESS( status ) )<BR>  {<BR>@@ -598,12 
  +598,13 @@<BR>   BUS_EXIT( BUS_DBG_DRV 
  );<BR>   return status;<BR>  }<BR>- BUS_TRACE( 
  BUS_DBG_DRV, ("IoAcquireRemoveLock: ]\n"));<BR>+ BUS_TRACE( BUS_DBG_DRV, 
  ("IoAcquireRemoveLock: stop_lock]\n"));<BR> <BR>  /* Acquire 
  the remove lock. */<BR>  status = IoAcquireRemoveLock( 
  &p_ext->cl_ext.remove_lock, p_irp );<BR>  if( !NT_SUCCESS( 
  status ) )<BR>  {<BR>+  BUS_TRACE( BUS_DBG_DRV, 
  ("IoReleaseRemoveLock: stop_lock %p[\n", 
  &p_ext->cl_ext.stop_lock));<BR>   IoReleaseRemoveLock( 
  &p_ext->cl_ext.stop_lock, p_irp 
  );<BR>   p_irp->IoStatus.Status = 
  status;<BR>   p_irp->IoStatus.Information = 0;<BR>@@ -622,7 
  +623,9 @@<BR>  }<BR> <BR>  /* Release the remove and 
  stop locks. */<BR>+ BUS_TRACE( BUS_DBG_DRV, ("IoReleaseRemoveLock:  
  [\n"));<BR>  IoReleaseRemoveLock( &p_ext->cl_ext.remove_lock, 
  p_irp );<BR>+ BUS_TRACE( BUS_DBG_DRV, ("IoReleaseRemoveLock: stop_lock 
  %p[\n", &p_ext->cl_ext.stop_lock));<BR>  IoReleaseRemoveLock( 
  &p_ext->cl_ext.stop_lock, p_irp );<BR> <BR>  BUS_EXIT( 
  BUS_DBG_DRV );<BR>Index: 
  Q:/projinf4/trunk/core/bus/kernel/bus_pnp.c<BR>===================================================================<BR>--- 
  Q:/projinf4/trunk/core/bus/kernel/bus_pnp.c (revision 3459)<BR>+++ 
  Q:/projinf4/trunk/core/bus/kernel/bus_pnp.c (revision 3460)<BR>@@ -973,7 
  +973,7 @@<BR>   switch( 
  p_io_stack->Parameters.Power.State.SystemState 
  )<BR>   {<BR>    case 
  PowerSystemHibernate:<BR>-   case PowerSystemSleeping1: 
   // STANDBY support<BR>+   case 
  PowerSystemSleeping1: // STANDBY support<BR>    case 
  PowerSystemWorking:<BR>    case 
  PowerSystemShutdown:<BR>      break;<BR>@@ -1033,6 
  +1033,7 @@<BR>  /* Continue Power IRP processing. 
  */<BR>  PoStartNextPowerIrp( p_irp 
  );<BR>  IoCompleteRequest( p_irp, IO_NO_INCREMENT 
  );<BR>+ BUS_TRACE( BUS_DBG_PNP, ("IoReleaseRemoveLock:  
  [\n"));<BR>  IoReleaseRemoveLock( &p_ext->remove_lock, p_irp 
  );<BR>  BUS_EXIT( BUS_DBG_PNP );<BR> }<BR>@@ -1060,6 +1061,7 
  @@<BR>  if( !NT_SUCCESS( p_irp->IoStatus.Status ) 
  )<BR>  {<BR>   PoStartNextPowerIrp( p_irp 
  );<BR>+  BUS_TRACE( BUS_DBG_PNP, 
  ("IoReleaseRemoveLock: [\n"));<BR>   IoReleaseRemoveLock( 
  &p_ext->cl_ext.remove_lock, p_irp 
  );<BR>   BUS_TRACE_EXIT( BUS_DBG_ERROR, 
  <BR>    ("IRP_MN_SET_POWER for system failed by lower 
  driver with %08x.\n",<BR>@@ -1083,6 +1085,7 @@<BR>   /* 
  Propagate the failure. */<BR>   p_irp->IoStatus.Status = 
  status;<BR>   IoCompleteRequest( p_irp, IO_NO_INCREMENT 
  );<BR>+  BUS_TRACE( BUS_DBG_PNP, 
  ("IoReleaseRemoveLock: [\n"));<BR>   IoReleaseRemoveLock( 
  &p_ext->cl_ext.remove_lock, p_irp );<BR>   BUS_TRACE( 
  BUS_DBG_ERROR,<BR>    ("PoRequestPowerIrp returned 
  %08x.\n", status) );<BR>Index: 
  Q:/projinf4/trunk/core/bus/kernel/bus_iou_mgr.c<BR>===================================================================<BR>--- 
  Q:/projinf4/trunk/core/bus/kernel/bus_iou_mgr.c (revision 3459)<BR>+++ 
  Q:/projinf4/trunk/core/bus/kernel/bus_iou_mgr.c (revision 3460)<BR>@@ 
  -1641,6 +1641,7 @@<BR>  p_irp->IoStatus.Status = 
  STATUS_SUCCESS;<BR>  PoStartNextPowerIrp( p_irp 
  );<BR>  IoCompleteRequest( p_irp, IO_NO_INCREMENT 
  );<BR>+ BUS_TRACE( BUS_DBG_POWER, ("IoReleaseRemoveLock:  
  [\n"));<BR>  IoReleaseRemoveLock( &p_ext->cl_ext.remove_lock, 
  p_irp );<BR> <BR>  BUS_EXIT( BUS_DBG_POWER );<BR>Index: 
  Q:/projinf4/trunk/core/iou/kernel/iou_pnp.c<BR>===================================================================<BR>--- 
  Q:/projinf4/trunk/core/iou/kernel/iou_pnp.c (revision 3459)<BR>+++ 
  Q:/projinf4/trunk/core/iou/kernel/iou_pnp.c (revision 3460)<BR>@@ -480,6 
  +480,7 @@<BR>  /* Continue Power IRP processing. 
  */<BR>  PoStartNextPowerIrp( p_irp 
  );<BR>  IoCompleteRequest( p_irp, IO_NO_INCREMENT 
  );<BR>+ IOU_PRINT( TRACE_LEVEL_ERROR, IOU_DBG_PNP, ("IoReleaseRemoveLock: 
  \n"));<BR>  IoReleaseRemoveLock( &p_ext->remove_lock, p_irp 
  );<BR>  IOU_EXIT( IOU_DBG_PNP );<BR> }<BR>@@ -507,6 +508,7 
  @@<BR>  if( !NT_SUCCESS( p_irp->IoStatus.Status ) 
  )<BR>  {<BR>   PoStartNextPowerIrp( p_irp 
  );<BR>+  IOU_PRINT( TRACE_LEVEL_ERROR, IOU_DBG_PNP, 
  ("IoReleaseRemoveLock: \n"));<BR>   IoReleaseRemoveLock( 
  &p_ext->cl_ext.remove_lock, p_irp 
  );<BR>   IOU_PRINT_EXIT( TRACE_LEVEL_ERROR, 
  IOU_DBG_ERROR,<BR>    ("IRP_MN_SET_POWER for system failed 
  by lower driver with %08x.\n",<BR>@@ -530,6 +532,7 @@<BR>   /* 
  Propagate the failure. */<BR>   p_irp->IoStatus.Status = 
  status;<BR>   IoCompleteRequest( p_irp, IO_NO_INCREMENT 
  );<BR>+  IOU_PRINT( TRACE_LEVEL_ERROR, IOU_DBG_PNP, 
  ("IoReleaseRemoveLock: \n"));<BR>   IoReleaseRemoveLock( 
  &p_ext->cl_ext.remove_lock, p_irp );<BR>   IOU_PRINT( 
  TRACE_LEVEL_ERROR, 
  IOU_DBG_ERROR,<BR>    ("PoRequestPowerIrp returned 
  %08x.\n", status) );<BR>Index: 
  Q:/projinf4/trunk/hw/mlx4/kernel/bus/drv/drv.c<BR>===================================================================<BR>--- 
  Q:/projinf4/trunk/hw/mlx4/kernel/bus/drv/drv.c (revision 3459)<BR>+++ 
  Q:/projinf4/trunk/hw/mlx4/kernel/bus/drv/drv.c (revision 3460)<BR>@@ 
  -1161,11 +1161,13 @@<BR>  err = core_init();<BR>  if (err) 
  {<BR>   status = 
  errno_to_ntstatus(err);<BR>+  MLX4_PRINT(TRACE_LEVEL_VERBOSE, 
  MLX4_DBG_DRV, ("core_init failed with status 0x%x (err %d)\n", status, 
  -err));<BR>   goto end;<BR>  }<BR>  err = 
  mlx4_ib_init();<BR>  if (err) {<BR>   status = 
  errno_to_ntstatus(err);<BR>+  MLX4_PRINT(TRACE_LEVEL_VERBOSE, 
  MLX4_DBG_DRV, ("mlx4_ib_init failed with status 0x%x (err %d)\n", status, 
  -err));<BR>   goto end;<BR>  }<BR> <BR>Index: 
  Q:/projinf4/trunk/hw/mlx4/kernel/hca/drv.c<BR>===================================================================<BR>--- 
  Q:/projinf4/trunk/hw/mlx4/kernel/hca/drv.c (revision 3459)<BR>+++ 
  Q:/projinf4/trunk/hw/mlx4/kernel/hca/drv.c (revision 3460)<BR>@@ -1180,7 
  +1180,7 @@<BR>  }<BR> <BR>  /* Inititalize the 
  complib extension. */<BR>- cl_init_pnp_po_ext( p_dev_obj, pNextDevObj, 
  pPdo, 0,<BR>+ cl_init_pnp_po_ext( p_dev_obj, pNextDevObj, pPdo, 
  CL_DBG_ERROR | CL_DBG_PNP,<BR>   &vfptrHcaPnp, NULL 
  );<BR> <BR>  p_fdo->state = HCA_ADDED;<BR>@@ -2275,6 +2275,7 
  @@<BR>  /* Continue Power IRP processing. 
  */<BR>  PoStartNextPowerIrp( p_irp 
  );<BR>  IoCompleteRequest( p_irp, IO_NO_INCREMENT 
  );<BR>+ HCA_PRINT( TRACE_LEVEL_ERROR, HCA_DBG_PNP, ("IoReleaseRemoveLock: 
  \n"));<BR>  IoReleaseRemoveLock( &p_fdo->remove_lock, p_irp 
  );<BR>  HCA_EXIT( HCA_DBG_PO );<BR> }<BR>@@ -2336,6 +2337,7 
  @@<BR>  goto 
  exit;<BR> <BR> release: <BR>+ HCA_PRINT( 
  TRACE_LEVEL_ERROR, HCA_DBG_PO, ("IoReleaseRemoveLock: 
  \n"));<BR>  IoReleaseRemoveLock( &p_fdo->cl_ext.remove_lock, 
  p_irp );<BR> exit:<BR>  HCA_EXIT( HCA_DBG_PO );<BR>@@ -2415,6 
  +2417,7 @@<BR> exit:<BR>  PoStartNextPowerIrp( p_irp 
  );<BR>  IoCompleteRequest( p_irp, IO_NO_INCREMENT 
  );<BR>+ HCA_PRINT( TRACE_LEVEL_ERROR, HCA_DBG_PO, ("IoReleaseRemoveLock: 
  \n"));<BR>  IoReleaseRemoveLock( &p_fdo->cl_ext.remove_lock, 
  p_irp );<BR>  HCA_EXIT( HCA_DBG_PO );<BR> }<BR>@@ -2467,6 
  +2470,7 @@<BR>  goto 
  exit;<BR> <BR> release: <BR>+ HCA_PRINT( 
  TRACE_LEVEL_ERROR, HCA_DBG_PO, ("IoReleaseRemoveLock: 
  \n"));<BR>  IoReleaseRemoveLock( &p_fdo->cl_ext.remove_lock, 
  p_irp );<BR> exit: <BR>  HCA_EXIT( HCA_DBG_PO );<BR>@@ 
  -2484,6 +2488,7 @@<BR>  HCA_ENTER( HCA_DBG_PO 
  );<BR> <BR>  PoStartNextPowerIrp( p_irp );<BR>+ HCA_PRINT( 
  TRACE_LEVEL_ERROR, HCA_DBG_PO, ("IoReleaseRemoveLock: 
  \n"));<BR>  IoReleaseRemoveLock( &p_fdo->cl_ext.remove_lock, 
  p_irp );<BR> <BR>  HCA_EXIT( HCA_DBG_PO );<BR>Index: 
  Q:/projinf4/trunk/hw/mthca/kernel/hca_pnp.c<BR>===================================================================<BR>--- 
  Q:/projinf4/trunk/hw/mthca/kernel/hca_pnp.c (revision 3459)<BR>+++ 
  Q:/projinf4/trunk/hw/mthca/kernel/hca_pnp.c (revision 3460)<BR>@@ -250,7 
  +250,7 @@<BR>  }<BR> <BR>  /* Inititalize the complib 
  extension. */<BR>- cl_init_pnp_po_ext( p_dev_obj, pNextDevObj, pPdo, 
  0,<BR>+ cl_init_pnp_po_ext( p_dev_obj, pNextDevObj, pPdo, CL_DBG_ERROR | 
  CL_DBG_PNP,<BR>   &vfptrHcaPnp, NULL 
  );<BR> <BR>  p_ext->state = HCA_ADDED;<BR>@@ -1494,6 +1494,7 
  @@<BR>  /* Continue Power IRP processing. 
  */<BR>  PoStartNextPowerIrp( p_irp 
  );<BR>  IoCompleteRequest( p_irp, IO_NO_INCREMENT 
  );<BR>+ HCA_PRINT( TRACE_LEVEL_ERROR, HCA_DBG_PO, ("IoReleaseRemoveLock: 
  \n"));<BR>  IoReleaseRemoveLock( &p_ext->remove_lock, p_irp 
  );<BR>  HCA_EXIT( HCA_DBG_PO );<BR> }<BR>@@ -1555,6 +1556,7 
  @@<BR>  goto 
  exit;<BR> <BR> release: <BR>+ HCA_PRINT( 
  TRACE_LEVEL_ERROR, HCA_DBG_PO, ("IoReleaseRemoveLock: 
  \n"));<BR>  IoReleaseRemoveLock( &p_ext->cl_ext.remove_lock, 
  p_irp );<BR> exit:<BR>  HCA_EXIT( HCA_DBG_PO );<BR>@@ -1621,6 
  +1623,7 @@<BR> exit:<BR>  PoStartNextPowerIrp( p_irp 
  );<BR>  IoCompleteRequest( p_irp, IO_NO_INCREMENT 
  );<BR>+ HCA_PRINT( TRACE_LEVEL_ERROR, HCA_DBG_PO, ("IoReleaseRemoveLock: 
  \n"));<BR>  IoReleaseRemoveLock( &p_ext->cl_ext.remove_lock, 
  p_irp );<BR>  HCA_EXIT( HCA_DBG_PO );<BR> }<BR>@@ -1673,6 
  +1676,7 @@<BR>  goto 
  exit;<BR> <BR> release: <BR>+ HCA_PRINT( 
  TRACE_LEVEL_ERROR, HCA_DBG_PO, ("IoReleaseRemoveLock: 
  \n"));<BR>  IoReleaseRemoveLock( &p_ext->cl_ext.remove_lock, 
  p_irp );<BR> exit: <BR>  HCA_EXIT( HCA_DBG_PO );<BR>@@ 
  -1690,6 +1694,7 @@<BR>  HCA_ENTER( HCA_DBG_PO 
  );<BR> <BR>  PoStartNextPowerIrp( p_irp );<BR>+ HCA_PRINT( 
  TRACE_LEVEL_ERROR, HCA_DBG_PO, ("IoReleaseRemoveLock: 
  \n"));<BR>  IoReleaseRemoveLock( &p_ext->cl_ext.remove_lock, 
  p_irp );<BR> <BR>  HCA_EXIT( HCA_DBG_PO 
);<BR></DIV></BLOCKQUOTE></FONT></BODY></HTML>