<!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>
<P><FONT face=Arial><FONT size=2><SPAN class=019510716-16032009>this patch 
</SPAN>add<SPAN class=019510716-16032009>s </SPAN>a 5s delay to wait for hca up 
for remote boot in SAN environment.</FONT></FONT></P>
<P><SPAN class=019510716-16032009><FONT face=Arial size=2>Signed-off-by: James 
Yang  </FONT></SPAN></P></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Index: 
core/bus/kernel/bus_pnp.c<BR>===================================================================<BR>--- 
core/bus/kernel/bus_pnp.c (revision 2032)<BR>+++ 
core/bus/kernel/bus_pnp.c (working copy)<BR>@@ -654,9 +654,10 
@@<BR>  IN     IRP* 
const    p_irp, 
<BR>   OUT    cl_irp_action_t* 
const p_action 
)<BR> {<BR>- NTSTATUS   status;<BR>+ NTSTATUS   status 
= STATUS_SUCCESS; /*default to 
success*/<BR>  bus_fdo_ext_t  *p_ext;<BR>  bus_filter_t  *p_bfi;<BR>+ int     waitLoop 
= 0;<BR> <BR>  BUS_ENTER( BUS_DBG_PNP );<BR> <BR>@@ -673,16 
+674,18 @@<BR>  p_bfi = 
p_ext->bus_filter;<BR>  CL_ASSERT( p_bfi->magic == BFI_MAGIC 
);<BR> <BR>- if ( p_bfi->ca_guid == 0ULL )<BR>+ while ( 
p_bfi->ca_guid == 0ULL )<BR>  {<BR>   /* HCA not yet 
bound to a BFI slot (no PNP ADD event seen), no bus<BR>    * 
relations yet.<BR>    */<BR>-  status = 
STATUS_SUCCESS;<BR>-  BUS_PRINT(BUS_DBG_PNP, ("%s ca_guid 
%I64x\n",p_bfi->whoami,<BR>+  BUS_PRINT(BUS_DBG_ERROR, ("%s ca_guid 
%I64x\n",p_bfi->whoami,<BR>         p_bfi->ca_guid));<BR>+  cl_thread_suspend( 
100 ); /* suspend for 100 ms 
*/<BR>+  waitLoop++;<BR>+  if(waitLoop>50) 
break;<BR>  }<BR>- else<BR>+ if ( p_bfi->ca_guid != 0ULL 
)<BR>  {<BR>   status = port_mgr_get_bus_relations( 
p_bfi->ca_guid, p_irp );<BR>   if( status == STATUS_SUCCESS || 
<BR>@@ -1271,6 +1274,7 @@<BR>  switch( 
p_io_stack->Parameters.Power.Type )<BR>  {<BR>  case 
SystemPowerState:<BR>+#if 0<BR>   /*<BR>    * 
Process on the way up the stack.  We cannot block since the 
<BR>    * power dispatch function can be called at elevated IRQL 
if the<BR>@@ -1287,7 +1291,7 @@<BR>   *p_action = 
IrpDoNothing;<BR>   status = 
STATUS_PENDING;<BR>   break;<BR>-<BR>+#endif<BR>  case 
DevicePowerState:<BR>  default:<BR>   /* Pass down and 
let the PDO driver handle it. */<BR></FONT></DIV></BODY></HTML>