<!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>