<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns="http://www.w3.org/TR/REC-html40" xmlns:v = 
"urn:schemas-microsoft-com:vml" xmlns:o = 
"urn:schemas-microsoft-com:office:office" xmlns:w = 
"urn:schemas-microsoft-com:office:word" xmlns:ns1 = 
"http://schemas.microsoft.com/office/2004/12/omml"><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.6000.16587" name=GENERATOR><!--[if !mso]>
<STYLE>v\:* {
        BEHAVIOR: url(#default#VML)
}
o\:* {
        BEHAVIOR: url(#default#VML)
}
w\:* {
        BEHAVIOR: url(#default#VML)
}
.shape {
        BEHAVIOR: url(#default#VML)
}
</STYLE>
<![endif]-->
<STYLE>@font-face {
        font-family: Tahoma;
}
@font-face {
        font-family: Verdana;
}
@font-face {
        font-family: Webdings;
}
@font-face {
        font-family: Calibri;
}
@page Section1 {size: 8.5in 11.0in; margin: 1.0in 1.25in 1.0in 1.25in; }
A:link {
        mso-style-priority: 99
}
SPAN.MSOHYPERLINK {
        mso-style-priority: 99
}
A:visited {
        mso-style-priority: 99
}
SPAN.MSOHYPERLINKFOLLOWED {
        mso-style-priority: 99
}
P {
        mso-style-priority: 99
}
P.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"
}
LI.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"
}
DIV.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"
}
A:link {
        COLOR: blue; TEXT-DECORATION: underline
}
SPAN.MsoHyperlink {
        COLOR: blue; TEXT-DECORATION: underline
}
A:visited {
        COLOR: purple; TEXT-DECORATION: underline
}
SPAN.MsoHyperlinkFollowed {
        COLOR: purple; TEXT-DECORATION: underline
}
P {
        FONT-SIZE: 12pt; MARGIN-LEFT: 0in; MARGIN-RIGHT: 0in; FONT-FAMILY: "Times New Roman"; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto
}
SPAN.EmailStyle18 {
        COLOR: windowtext; FONT-FAMILY: Arial; mso-style-type: personal
}
SPAN.EmailStyle19 {
        COLOR: navy; FONT-FAMILY: Arial; mso-style-type: personal
}
SPAN.EmailStyle20 {
        COLOR: #1f497d; FONT-FAMILY: Calibri; mso-style-type: personal
}
SPAN.EmailStyle21 {
        COLOR: navy; FONT-FAMILY: Arial; mso-style-type: personal
}
SPAN.EmailStyle22 {
        COLOR: navy; FONT-FAMILY: Arial; mso-style-type: personal
}
SPAN.EmailStyle23 {
        COLOR: navy; FONT-FAMILY: Arial; mso-style-type: personal-reply
}
DIV.Section1 {
        page: Section1
}
</STYLE>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]--></HEAD>
<BODY lang=EN-US vLink=purple link=blue>
<DIV><SPAN class=950325307-23062008><FONT face=Arial color=#0000ff 
size=2>Checked in (with minor changes) at revision 1295.</FONT></SPAN></DIV>
<DIV><SPAN class=950325307-23062008><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=950325307-23062008><FONT face=Arial color=#0000ff 
size=2>Thanks</FONT></SPAN></DIV>
<DIV><SPAN class=950325307-23062008><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> ofw-bounces@lists.openfabrics.org 
  [mailto:ofw-bounces@lists.openfabrics.org] <B>On Behalf Of </B>James 
  Yang<BR><B>Sent:</B> Friday, June 20, 2008 1:38 AM<BR><B>To:</B> Tzachi Dar; 
  Sean Hefty; Fab Tillier; ofw@lists.openfabrics.org<BR><B>Subject:</B> RE: 
  [ofw] RE: Assert in checked ibbus driver?<BR></FONT><BR></DIV>
  <DIV></DIV>
  <DIV class=Section1>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">It seems it’s a false 
  alarm because p_list is not reset when an item is removed. One more line is 
  needed “</SPAN></FONT><FONT face="Courier New" color=red size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'">p_list_item->p_list 
  = NULL;”<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">in function 
  </SPAN></FONT><FONT face="Courier New" size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">__cl_primitive_remove().<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><o:p> </o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">Can this line be added to 
  the svn?<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><o:p> </o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">Thanks,<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">James</SPAN></FONT><FONT 
  face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">CL_INLINE <FONT 
  color=blue><SPAN style="COLOR: blue">void</SPAN></FONT> 
  CL_API<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">__cl_primitive_remove(<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
  IN    cl_list_item_t* <FONT color=blue><SPAN 
  style="COLOR: blue">const</SPAN></FONT>   p_list_item 
  )<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">{<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
  <FONT color=green><SPAN style="COLOR: green">/* CL_ASSERT that a non-null 
  pointer is provided. */<o:p></o:p></SPAN></FONT></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
  CL_ASSERT( p_list_item );<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
  CL_ASSERT( p_list_item->p_next );<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
  CL_ASSERT( p_list_item->p_prev );<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><o:p> </o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
  <FONT color=green><SPAN style="COLOR: green">/* set the back pointer 
  */<o:p></o:p></SPAN></FONT></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
  p_list_item->p_next->p_prev= 
  p_list_item->p_prev;<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
  <FONT color=green><SPAN style="COLOR: green">/* set the next pointer 
  */<o:p></o:p></SPAN></FONT></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
  p_list_item->p_prev->p_next= 
  p_list_item->p_next;<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><o:p> </o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
  <FONT color=green><SPAN style="COLOR: green">/* if we're debugging, spruce up 
  the pointers to help find bugs */<o:p></o:p></SPAN></FONT></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" color=blue size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">#if</SPAN></FONT><FONT 
  face="Courier New" size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"> <FONT color=blue><SPAN 
  style="COLOR: blue">defined</SPAN></FONT>( _DEBUG_ 
  )<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" color=gray size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">      
  if( p_list_item != p_list_item->p_next )<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" color=gray size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">      
  {<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" color=gray size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">            
  p_list_item->p_next = NULL;<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" color=gray size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">            
  p_list_item->p_prev = NULL;<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" color=gray size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">            
  </SPAN></FONT><FONT face="Courier New" color=red size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'">p_list_item->p_list 
  = NULL;<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" color=gray size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: gray; FONT-FAMILY: 'Courier New'">      
  }<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" color=blue size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">#endif</SPAN></FONT><FONT 
  face="Courier New" size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
  <FONT color=green><SPAN style="COLOR: green">/* defined( _DEBUG_ ) 
  */<o:p></o:p></SPAN></FONT></SPAN></FONT></P>
  <P class=MsoNormal><FONT face="Courier New" size=2><SPAN 
  style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">}<o:p></o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
  <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
  <DIV>
  <DIV class=MsoNormal style="TEXT-ALIGN: center" align=center><FONT 
  face="Times New Roman" size=3><SPAN style="FONT-SIZE: 12pt">
  <HR tabIndex=-1 align=center width="100%" SIZE=2>
  </SPAN></FONT></DIV>
  <P class=MsoNormal><B><FONT face=Tahoma size=2><SPAN 
  style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">From:</SPAN></FONT></B><FONT 
  face=Tahoma size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"> Tzachi 
  Dar [mailto:tzachid@mellanox.co.il] <BR><B><SPAN 
  style="FONT-WEIGHT: bold">Sent:</SPAN></B> Thursday, June 19, 2008 12:07 
  PM<BR><B><SPAN style="FONT-WEIGHT: bold">To:</SPAN></B> Sean Hefty; James 
  Yang; Fab Tillier; ofw@lists.openfabrics.org<BR><B><SPAN 
  style="FONT-WEIGHT: bold">Subject:</SPAN></B> RE: [ofw] RE: Assert in checked 
  ibbus driver?</SPAN></FONT><o:p></o:p></P></DIV>
  <P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN 
  style="FONT-SIZE: 12pt"><o:p> </o:p></SPAN></FONT></P>
  <DIV>
  <P class=MsoNormal><FONT face=Arial color=blue size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Arial">From a fast reading 
  of the file CL_qlist.h it seems that all "remove functions" clear the 
  </SPAN></FONT><FONT face="Courier New" color=blue size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">p_list_item->p_list  
  field. So I guess that most chances that this is a real bug. Can you try and 
  add a printing to each time you add or remove an object from the 
  gp_mem_tracker list?</SPAN></FONT><o:p></o:p></P></DIV>
  <DIV>
  <P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN 
  style="FONT-SIZE: 12pt"> <o:p></o:p></SPAN></FONT></P></DIV>
  <DIV>
  <P class=MsoNormal><FONT face="Courier New" color=blue size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">Thanks</SPAN></FONT><o:p></o:p></P></DIV>
  <DIV>
  <P class=MsoNormal><FONT face="Courier New" color=blue size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">Tzachi</SPAN></FONT><o:p></o:p></P></DIV>
  <BLOCKQUOTE 
  style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 4pt; PADDING-BOTTOM: 0in; MARGIN: 5pt 0in 5pt 3.75pt; BORDER-LEFT: blue 1.5pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: medium none">
    <DIV 
    style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: blue 1.5pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: medium none">
    <P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN 
    style="FONT-SIZE: 12pt"> <o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">I can see item’s 
    p_list pointer being cleared when it’s removed from the list. My guess is 
    p_list is left over there when items are allocated from free memory. I’m not 
    familiar with the code enough to find all these items and clear them during 
    initialization. It’s odd to see p_list value was there but not p_prev and 
    p_next.<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">If I ignore the 
    assertion, it will be OK. However the assert will come once again, 
    especially during startup and shutdown.<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Thanks,<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">James<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
    <DIV>
    <DIV class=MsoNormal style="TEXT-ALIGN: center" align=center><FONT 
    face="Times New Roman" size=3><SPAN style="FONT-SIZE: 12pt">
    <HR tabIndex=-1 align=center width="100%" SIZE=2>
    </SPAN></FONT></DIV>
    <P class=MsoNormal><B><FONT face=Tahoma size=2><SPAN 
    style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">From:</SPAN></FONT></B><FONT 
    face=Tahoma size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"> Fab 
    Tillier [mailto:ftillier@windows.microsoft.com] <BR><B><SPAN 
    style="FONT-WEIGHT: bold">Sent:</SPAN></B> Thursday, June 19, 2008 9:11 
    AM<BR><B><SPAN style="FONT-WEIGHT: bold">To:</SPAN></B> James Yang; 
    ofw@lists.openfabrics.org<BR><B><SPAN 
    style="FONT-WEIGHT: bold">Subject:</SPAN></B> RE: Assert in checked ibbus 
    driver?</SPAN></FONT><o:p></o:p></P></DIV>
    <P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN 
    style="FONT-SIZE: 12pt"><o:p> </o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Calibri color=#1f497d size=2><SPAN 
    style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: Calibri">Hi 
    James,<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Calibri color=#1f497d size=2><SPAN 
    style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: Calibri"><o:p> </o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Calibri color=#1f497d size=2><SPAN 
    style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: Calibri">If you clear 
    the p_list pointer does the assert go away?<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Calibri color=#1f497d size=2><SPAN 
    style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: Calibri"><o:p> </o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Calibri color=#1f497d size=2><SPAN 
    style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: Calibri">-Fab<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Calibri color=#1f497d size=2><SPAN 
    style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: Calibri"><o:p> </o:p></SPAN></FONT></P>
    <DIV 
    style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: blue 1.5pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: medium none">
    <DIV>
    <DIV 
    style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; PADDING-TOP: 3pt; BORDER-BOTTOM: medium none">
    <P class=MsoNormal><B><FONT face=Tahoma size=2><SPAN 
    style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">From:</SPAN></FONT></B><FONT 
    face=Tahoma size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"> 
    ofw-bounces@lists.openfabrics.org [mailto:ofw-bounces@lists.openfabrics.org] 
    <B><SPAN style="FONT-WEIGHT: bold">On Behalf Of </SPAN></B>James 
    Yang<BR><B><SPAN style="FONT-WEIGHT: bold">Sent:</SPAN></B> Wednesday, June 
    18, 2008 6:05 PM<BR><B><SPAN style="FONT-WEIGHT: bold">To:</SPAN></B> 
    ofw@lists.openfabrics.org<BR><B><SPAN 
    style="FONT-WEIGHT: bold">Subject:</SPAN></B> [ofw] Assert in checked ibbus 
    driver?<o:p></o:p></SPAN></FONT></P></DIV></DIV>
    <P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN 
    style="FONT-SIZE: 12pt"><o:p> </o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Can someone shed 
    some light on the following assert I saw in checked build 
    driver?<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">It happened in the 
    function </SPAN></FONT><FONT face="Courier New" size=2><SPAN Courier 
    New??><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">cl_qlist_insert_head()</SPAN></SPAN></FONT><FONT 
    face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"> when a new item is 
    added to the list. And the assertion happens because it thinks the item is 
    already in the list. However when checking the list item, I don’t see it is 
    linked because its previous and next pointers are both NULL. The item is 
    also is not in the list by manually checking the 
    list.<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Is this because the 
    item is not initialized properly as it’s said in the comments, or it’s a 
    true bug? <o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Thanks,<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">James<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">----------------------<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">CL_INLINE <FONT 
    color=blue><SPAN style="COLOR: blue">void</SPAN></FONT> 
    CL_API<o:p></o:p></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">cl_qlist_insert_head(<o:p></o:p></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
    IN    cl_qlist_t* <FONT color=blue><SPAN 
    style="COLOR: blue">const</SPAN></FONT>       
    p_list,<o:p></o:p></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
    IN    cl_list_item_t* <FONT color=blue><SPAN 
    style="COLOR: blue">const</SPAN></FONT>   p_list_item 
    )<o:p></o:p></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">{<o:p></o:p></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
    <FONT color=green><SPAN style="COLOR: green">/* CL_ASSERT that a non-null 
    pointer is provided. */<o:p></o:p></SPAN></FONT></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
    CL_ASSERT( p_list );<o:p></o:p></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
    <FONT color=green><SPAN style="COLOR: green">/* CL_ASSERT that a non-null 
    pointer is provided. */<o:p></o:p></SPAN></FONT></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
    CL_ASSERT( p_list_item );<o:p></o:p></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
    <FONT color=green><SPAN style="COLOR: green">/* CL_ASSERT that the list was 
    initialized. */<o:p></o:p></SPAN></FONT></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
    CL_ASSERT( p_list->state == CL_INITIALIZED 
    );<o:p></o:p></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><o:p> </o:p></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
    <FONT color=green><SPAN 
    style="COLOR: green">/*<o:p></o:p></SPAN></FONT></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face="Courier New" color=green size=2><SPAN Courier 
    New?; color:green?><SPAN 
    style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'">      
     * The list item must not already be part of the list.  Note that 
    this<o:p></o:p></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face="Courier New" color=green size=2><SPAN Courier 
    New?; color:green?><SPAN 
    style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'">      
     * assertion may fail if an uninitialized list item happens to have 
    its<o:p></o:p></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face="Courier New" color=green size=2><SPAN Courier 
    New?; color:green?><SPAN 
    style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'">      
     * list pointer equal to the specified list.  The chances of 
    this<o:p></o:p></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face="Courier New" color=green size=2><SPAN Courier 
    New?; color:green?><SPAN 
    style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'">      
     * happening are acceptable in light of the value of this 
    check.<o:p></o:p></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face="Courier New" color=green size=2><SPAN Courier 
    New?; color:green?><SPAN 
    style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'">      
     */<o:p></o:p></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
    <FONT color=red><SPAN style="COLOR: red">CL_ASSERT( p_list_item->p_list 
    != p_list );<o:p></o:p></SPAN></FONT></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><o:p> </o:p></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face="Courier New" color=blue size=2><SPAN Courier 
    New?; color:blue?><SPAN 
    style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">#if</SPAN></SPAN></FONT><FONT 
    face="Courier New" size=2><SPAN Courier New??><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"> <FONT color=blue><SPAN 
    style="COLOR: blue">defined</SPAN></FONT>( _DEBUG_ 
    )<o:p></o:p></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
    p_list_item->p_list = p_list;<o:p></o:p></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face="Courier New" color=blue size=2><SPAN Courier 
    New?; color:blue?><SPAN 
    style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'">#endif<o:p></o:p></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face="Courier New" color=blue size=2><SPAN Courier 
    New?; color:blue?><SPAN 
    style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"><o:p> </o:p></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
    <FONT color=green><SPAN style="COLOR: green">/* Insert before the head. 
    */<o:p></o:p></SPAN></FONT></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
    __cl_primitive_insert( cl_qlist_head( p_list ), p_list_item 
    );<o:p></o:p></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"><o:p> </o:p></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">      
    p_list->count++;<o:p></o:p></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face="Courier New" size=2><SPAN Courier New??><SPAN 
    style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">}<o:p></o:p></SPAN></FONT></P></SPAN>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">1: kd> 
    k<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">ChildEBP 
    RetAddr  <o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">f795e9fc 80873922 
    nt!DbgBreakPoint<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">f795ece4 f71588c4 
    nt!RtlAssert+0xba<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">f795ed0c f715a5df 
    ibbus!cl_qlist_insert_head+0xb4 [k:\windows-openib\inc\complib\cl_qlist.h @ 
    782]<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">f795ed24 f71b08da 
    ibbus!__cl_free_trk+0x6f [k:\windows-openib\\core\complib\cl_memory.c @ 
    342]<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">f795ed38 f7218e8d 
    ibbus!__pnp_reg_free+0xfa [k:\windows-openib\\core\al\kernel\al_pnp.c @ 
    386]<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">f795ed70 f715c0e4 
    ibbus!async_destroy_cb+0x72d [k:\windows-openib\\core\al\al_common.c @ 
    685]<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">f795ed8c f7162534 
    ibbus!__cl_async_proc_worker+0x94 
    [k:\windows-openib\core\complib\cl_async_proc.c @ 
    153]<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">f795eda0 f71645ec 
    ibbus!__cl_thread_pool_routine+0x54 
    [k:\windows-openib\core\complib\cl_threadpool.c @ 
    67]<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">f795edac 80949b7c 
    ibbus!__thread_callback+0x2c 
    [k:\windows-openib\core\complib\kernel\cl_thread.c @ 
    49]<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">f795eddc 8088e062 
    nt!PspSystemThreadStartup+0x2e<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">00000000 00000000 
    nt!KiThreadStartup+0x16<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">1: kd> dt 
    0x863416a0 _cl_qlist <o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">   +0x000 
    end              
    : _cl_list_item<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">   +0x00c 
    count            : 
    0x29<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">   +0x010 
    state            : 2 
    ( CL_INITIALIZED )<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">1: kd> dt 
    0x85485268 _cl_list_item <o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">   +0x000 
    p_next           : (null) 
    <o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">   +0x004 
    p_prev           : (null) 
    <o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">   +0x008 
    p_list           : 
    0x863416a0 _cl_qlist<o:p></o:p></SPAN></FONT></P>
    <P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
    style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P></DIV></DIV></BLOCKQUOTE>
  <DIV>
  <P><FONT face="Times New Roman" color=#1f497d size=3><SPAN 
  style="FONT-SIZE: 12pt; COLOR: #1f497d"> </SPAN></FONT><FONT 
  face=Webdings color=green size=5><SPAN 
  style="FONT-SIZE: 18pt; COLOR: green; FONT-FAMILY: Webdings">P</SPAN></FONT><FONT 
  face="Courier New" color=green size=5><SPAN 
  style="FONT-SIZE: 18pt; COLOR: green; FONT-FAMILY: 'Courier New'"> </SPAN></FONT><FONT 
  face=Arial color=blue size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Arial"> </SPAN></FONT><FONT 
  face=Arial color=green size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: Arial">Please consider the 
  environment before printing this e-mail or its 
  attachment(s)</SPAN></FONT><FONT face=Arial color=blue size=2><SPAN 
  style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Arial"> </SPAN></FONT><FONT 
  color=navy><SPAN style="COLOR: navy"><o:p></o:p></SPAN></FONT></P></DIV>
  <DIV>
  <P class=MsoNormal><FONT face=Verdana color=#999999 size=1><SPAN 
  style="FONT-SIZE: 8.5pt; COLOR: #999999; FONT-FAMILY: Verdana"><BR>Disclaimer 
  added by <B><SPAN style="FONT-WEIGHT: bold">CodeTwo Exchange 
  Rules</SPAN></B><BR><A 
  href="http://www.codetwo.com">www.codetwo.com</A><o:p></o:p></SPAN></FONT></P></DIV>
  <P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN 
  style="FONT-SIZE: 12pt"><o:p> </o:p></SPAN></FONT></P><!--418FEECD7B41410cA6AF47547865A7D9--></DIV></BLOCKQUOTE></BODY></HTML>