<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns="http://www.w3.org/TR/REC-html40" xmlns:st1 =
"urn:schemas-microsoft-com:office:smarttags" xmlns:w =
"urn:schemas-microsoft-com:office:word" xmlns:o =
"urn:schemas-microsoft-com:office:office"><HEAD><!--[if !mso]>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<STYLE>
st1\:*{behavior:url(#default#ieooui) }
</STYLE>
<![endif]-->
<STYLE>
<!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman";}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{color:purple;
text-decoration:underline;}
span.EmailStyle18
{mso-style-type:personal-reply;
font-family:Arial;
color:navy;}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
{page:Section1;}
-->
</STYLE>
<META content="MSHTML 6.00.2900.3268" name=GENERATOR></HEAD>
<BODY lang=EN-US vLink=purple link=blue>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=091310808-14042008>Hi,</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=091310808-14042008></SPAN></FONT> </DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=091310808-14042008>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=091310808-14042008>The
patch removes the #if 0 sanity check and add one check of p_qp_create
pointer.</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=091310808-14042008></SPAN></FONT> </DIV></SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=091310808-14042008>I
looked at IB spec and there isn't forbiddance of qp with sq depth of 0
</SPAN></FONT><FONT face=Arial color=#0000ff size=2><SPAN
class=091310808-14042008>(Although the low level driver will set it to
1).</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=091310808-14042008>Thanks
for demonstrate one case of such use.</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=091310808-14042008>The
sanity check is promoted from create_qp() (core\al_qp.c # 281) which
is called at the end of ib_create_qp.</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=091310808-14042008>Crash
the app or assert the pointer </SPAN></FONT><FONT face=Arial color=#0000ff
size=2><SPAN class=091310808-14042008>is one way but IBAL
performs </SPAN></FONT><FONT face=Arial color=#0000ff size=2><SPAN
class=091310808-14042008>sanity checks all over the code and adhere
this will be more consistent.</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=091310808-14042008></SPAN></FONT><FONT face=Arial color=#0000ff
size=2><SPAN class=091310808-14042008></SPAN></FONT> </DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=091310808-14042008>Reuven.</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN
class=091310808-14042008></SPAN></FONT> </DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=091310808-14042008>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000>Index: core/al/al_pd.c<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000>===================================================================<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000>--- core/al/al_pd.c<SPAN
style="mso-tab-count: 1"> </SPAN>(revision
1049)<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000>+++ core/al/al_pd.c<SPAN
style="mso-tab-count: 1"> </SPAN>(working
copy)<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000>@@ -333,24 +333,11 @@<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000><SPAN style="mso-spacerun: yes"> </SPAN><SPAN
style="mso-tab-count: 2">
</SPAN>AL_PRINT_EXIT( TRACE_LEVEL_ERROR, AL_DBG_ERROR,
("IB_INVALID_PD_HANDLE\n") );<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000><SPAN style="mso-spacerun: yes"> </SPAN><SPAN
style="mso-tab-count: 2">
</SPAN>return IB_INVALID_PD_HANDLE;<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000><SPAN style="mso-spacerun: yes"> </SPAN><SPAN
style="mso-tab-count: 1">
</SPAN>}<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000>-<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000>-#if 0<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000>-<SPAN style="mso-tab-count: 1"> </SPAN>/*
seems like no need in these checks */<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000>-<SPAN style="mso-tab-count: 1">
</SPAN>if( !p_qp_create->rq_depth || !p_qp_create->sq_depth
)<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000>+<SPAN style="mso-tab-count: 1">
</SPAN>if( !p_qp_create || !ph_qp )<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000><SPAN style="mso-spacerun: yes"> </SPAN><SPAN
style="mso-tab-count: 1">
</SPAN>{<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000>-<SPAN
style="mso-tab-count: 2">
</SPAN>AL_PRINT_EXIT( TRACE_LEVEL_ERROR, AL_DBG_ERROR, ("IB_INVALID_MAX_WRS
(%d:%d)\n",<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000>-<SPAN
style="mso-tab-count: 3">
</SPAN>p_qp_create->rq_depth, p_qp_create->sq_depth )
);<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000>-<SPAN
style="mso-tab-count: 2">
</SPAN>return IB_INVALID_MAX_WRS;<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000>+<SPAN
style="mso-tab-count: 2">
</SPAN>AL_PRINT_EXIT( TRACE_LEVEL_ERROR, AL_DBG_ERROR,
("IB_INVALID_PARAMETER\n") );<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000>+<SPAN
style="mso-tab-count: 2">
</SPAN>return IB_INVALID_PARAMETER;<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000><SPAN style="mso-spacerun: yes"> </SPAN><SPAN
style="mso-tab-count: 1">
</SPAN>}<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000>-<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000>-<SPAN style="mso-tab-count: 1">
</SPAN>if( !p_qp_create->rq_sge ||
!p_qp_create->sq_sge)<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000>-<SPAN style="mso-tab-count: 1">
</SPAN>{<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000>-<SPAN
style="mso-tab-count: 2">
</SPAN>AL_PRINT_EXIT( TRACE_LEVEL_ERROR, AL_DBG_ERROR, ("IB_INVALID_MAX_SGE
(%d:%d)\n", <o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000>-<SPAN
style="mso-tab-count: 3">
</SPAN>p_qp_create->rq_sge, p_qp_create->sq_sge )
);<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000>-<SPAN
style="mso-tab-count: 2">
</SPAN>return IB_INVALID_MAX_SGE;<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000>-<SPAN style="mso-tab-count: 1">
</SPAN>}<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000>-#endif<SPAN style="mso-tab-count: 1">
</SPAN><o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000>-<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000><SPAN style="mso-spacerun: yes"> </SPAN><SPAN
style="mso-tab-count: 1"> </SPAN>if
(h_pd->obj.p_ci_ca &&
h_pd->obj.p_ci_ca->p_pnp_attr)<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000><SPAN style="mso-spacerun: yes"> </SPAN><SPAN
style="mso-tab-count: 1">
</SPAN>{<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><FONT
color=#000000><SPAN style="mso-spacerun: yes"> </SPAN><SPAN
style="mso-tab-count: 2">
</SPAN>if ((p_qp_create->rq_depth >
h_pd->obj.p_ci_ca->p_pnp_attr->max_wrs) ||<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal
style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-bidi-language: AR-SA"><o:p><FONT
color=#000000> </FONT></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><o:p><FONT
color=#000000> </FONT></o:p></P></SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2></FONT> </DIV>
<DIV><BR></DIV>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> Sean Hefty [mailto:sean.hefty@intel.com]
<BR><B>Sent:</B> Thursday, April 10, 2008 9:20 PM<BR><B>To:</B> Reuven Amitai;
ofw@lists.openfabrics.org<BR><B>Subject:</B> RE: [ofw] [PATCH] core
[4/5]<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV class=Section1>
<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>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New?? Courier>Index:
core/al/al_pd.c<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New??
Courier>===================================================================<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New?? Courier>---
core/al/al_pd.c (revision 1047)<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New?? Courier>+++
core/al/al_pd.c (working copy)<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New?? Courier>@@ -333,24 +333,22
@@<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New??
Courier>
AL_PRINT_EXIT( TRACE_LEVEL_ERROR, AL_DBG_ERROR, ("IB_INVALID_PD_HANDLE\n")
);<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New??
Courier> return
IB_INVALID_PD_HANDLE;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New?? Courier>
}<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New??
Courier>-<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New?? Courier>-#if
0<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New?? Courier>- /*
seems like no need in these checks */<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New?? Courier>- if(
!p_qp_create->rq_depth || !p_qp_create->sq_depth
)<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New?? Courier>+ if(
!p_qp_create || !ph_qp )<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" color=navy size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " Courier
New?;color:navy?><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">These sort of checks
are pointless. There’s nothing that can be done at run time.
C<st1:PersonName w:st="on">ras</st1:PersonName>h the app so that they get
a backtrace and force the programmer to fix them.<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
style="FONT-SIZE: 10pt; FONT-FAMILY: " New?? Courier>
{<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New??
Courier>- AL_PRINT_EXIT(
TRACE_LEVEL_ERROR, AL_DBG_ERROR,
("IB_INVALID_<U1:STOCKTICKER>MAX</U1:STOCKTICKER>_<U1:STOCKTICKER>WRS</U1:STOCKTICKER>
(%d:%d)\n",<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New??
Courier>-
p_qp_create->rq_depth, p_qp_create->sq_depth )
);<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New??
Courier>- return
IB_INVALID_<U1:STOCKTICKER>MAX</U1:STOCKTICKER>_<U1:STOCKTICKER>WRS</U1:STOCKTICKER>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New??
Courier>+ AL_PRINT_EXIT(
TRACE_LEVEL_ERROR, AL_DBG_ERROR, ("IB_INVALID_PARAMETER\n")
);<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New??
Courier>+ return
IB_INVALID_PARAMETER;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New?? Courier>
}<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New??
Courier>-<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New?? Courier>- if(
!p_qp_create->rq_sge || !p_qp_create->sq_sge)<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New?? Courier>+ if(
!p_qp_create->rq_depth && !p_qp_create->sq_depth
)<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" color=navy size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " Courier
New?;color:navy?><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">Couldn’t a QP that’s
the target of RDMA reads/writes support depths of 0 on both? The RDMA
target information can be exchanged out of bounds or during connection
establishment. (I know that Intel MPI exchanges RKey information during
connection setup.)<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: " New?? Courier>
{<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New??
Courier>- AL_PRINT_EXIT(
TRACE_LEVEL_ERROR, AL_DBG_ERROR,
("IB_INVALID_<U1:STOCKTICKER>MAX</U1:STOCKTICKER>_SGE (%d:%d)\n",
<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New??
Courier>-
p_qp_create->rq_sge, p_qp_create->sq_sge ) );<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New??
Courier>- return
IB_INVALID_<U1:STOCKTICKER>MAX</U1:STOCKTICKER>_SGE;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New??
Courier>+ AL_PRINT_EXIT(
TRACE_LEVEL_ERROR, AL_DBG_ERROR, ("IB_INVALID_SETTING\n")
);<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New??
Courier>+ return
IB_INVALID_SETTING;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New?? Courier>
}<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New?? Courier>-#endif
<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New?? Courier>+ if(
!p_qp_create->rq_sge &&
!p_qp_create->sq_sge)<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New?? Courier>+
{<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">These checks are
related to checks against rq_depth and sq_depth,
respectively.<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: " New??
Courier>+ AL_PRINT_EXIT(
TRACE_LEVEL_ERROR, AL_DBG_ERROR, ("IB_INVALID_SETTING\n")
);<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New??
Courier>+ return
IB_INVALID_SETTING;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New??
Courier> <o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New?? Courier>+
}<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New?? Courier> if
(h_pd->obj.p_ci_ca &&
h_pd->obj.p_ci_ca->p_pnp_attr)<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New?? Courier>
{<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New??
Courier> if
((p_qp_create->rq_depth > h_pd->obj.p_ci_ca->p_pnp_attr->max_wrs)
||<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Courier New" size=2><SPAN
style="FONT-SIZE: 10pt; FONT-FAMILY: " New??
Courier><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face="Times New Roman" color=navy size=3><SPAN
style="FONT-SIZE: 12pt; COLOR: navy"><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">-
Sean<o:p></o:p></SPAN></FONT></P></DIV></DIV></DIV></BODY></HTML>