<!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=146154417-13112008><FONT face=Arial color=#0000ff size=2>After 
some more thinking,  we have came to conclusion that we don't want this 
patches in this stage.</FONT></SPAN></DIV>
<DIV><SPAN class=146154417-13112008><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=146154417-13112008><FONT face=Arial color=#0000ff size=2>Sorry 
for the spam.</FONT></SPAN></DIV>
<DIV><SPAN class=146154417-13112008><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=146154417-13112008><FONT face=Arial color=#0000ff 
size=2>Thanks</FONT></SPAN></DIV>
<DIV><SPAN class=146154417-13112008><FONT face=Arial color=#0000ff 
size=2>Tzachi</FONT></SPAN></DIV><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> Tzachi Dar <BR><B>Sent:</B> Thursday, 
  November 13, 2008 4:51 PM<BR><B>To:</B> Tzachi Dar; 
  ofw@lists.openfabrics.org<BR><B>Subject:</B> RE: [ofw] patch: [core, 
  mlx4,mthca] Add debug prints.<BR></FONT><BR></DIV>
  <DIV></DIV>
  <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></BLOCKQUOTE></FONT></BODY></HTML>