<!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><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></FONT></BODY></HTML>