<!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.5512" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=395534713-24012010><FONT face=Arial color=#0000ff size=2>OK 
with me</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> ofw-bounces@lists.openfabrics.org 
  [mailto:ofw-bounces@lists.openfabrics.org] <B>On Behalf Of </B>Tzachi 
  Dar<BR><B>Sent:</B> Sunday, January 24, 2010 3:42 PM<BR><B>To:</B> 
  ofw@lists.openfabrics.org<BR><B>Subject:</B> [ofw] patch: Release hca 
  interface when loading of ibal fails<BR></FONT><BR></DIV>
  <DIV></DIV>
  <DIV><FONT face=Arial size=2><SPAN class=620373913-24012010>While debugging 
  another failure I have found out that if ib_register_ca fails it is not 
  possibale to try again until the computer is rebooted.</SPAN></FONT></DIV>
  <DIV><FONT face=Arial size=2><SPAN 
  class=620373913-24012010></SPAN></FONT> </DIV>
  <DIV><FONT face=Arial size=2><SPAN class=620373913-24012010>This patch solves 
  this problem.</SPAN></FONT></DIV>
  <DIV><FONT face=Arial size=2></FONT> </DIV>
  <DIV><FONT face=Arial size=2>Index: 
  bus/kernel/bus_pnp.c<BR>===================================================================<BR>--- 
  bus/kernel/bus_pnp.c (revision 5503)<BR>+++ 
  bus/kernel/bus_pnp.c (working copy)<BR>@@ -428,6 +428,10 
  @@<BR>  {<BR>   BUS_TRACE_EXIT( BUS_DBG_ERROR, 
  ("ib_register_ca returned 
  %s.\n",<BR>    ib_get_err_str(ib_status)) 
  );<BR>+  p_ext->hca_ifc.InterfaceHeader.InterfaceDereference(<BR>+   p_ext->hca_ifc.InterfaceHeader.Context);<BR>+  p_ext->hca_ifc_taken 
  = FALSE;<BR>+  <BR>   return 
  STATUS_UNSUCCESSFUL;<BR>  }<BR>  BUS_TRACE_EXIT(BUS_DBG_PNP, 
  ("%s bound to CA guid %I64x\n",<BR>Index: 
  complib/kernel/cl_pnp_po.c<BR>===================================================================<BR>--- 
  complib/kernel/cl_pnp_po.c (revision 5503)<BR>+++ 
  complib/kernel/cl_pnp_po.c (working copy)<BR>@@ -429,8 +429,15 
  @@<BR>  CL_ENTER( CL_DBG_PNP, p_ext->dbg_lvl 
  );<BR> <BR>  status = p_ext->vfptr_pnp_po->pfn_start( 
  p_dev_obj, p_irp, p_action );<BR>- if( NT_SUCCESS( status ) 
  )<BR>+ if( NT_SUCCESS( status ) ) 
  <BR>+ {<BR>   cl_set_pnp_state( p_ext, Started 
  );<BR>+ } <BR>+ else<BR>+ {<BR>+  CL_TRACE( 
  CL_DBG_ERROR, p_ext->dbg_lvl, 
  <BR>+   ("p_ext->vfptr_pnp_po->pfn_start returned %08x. 
  \n", status) );<BR>+ }<BR> <BR>  CL_EXIT( CL_DBG_PNP, 
  p_ext->dbg_lvl );<BR>  return 
status;<BR></DIV></BLOCKQUOTE></FONT></BODY></HTML>