<!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.3132" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=105593516-18072007><FONT face="Palatino Linotype"
color=#0000ff><STRONG>Thanks Hal. </STRONG></FONT></SPAN><SPAN
class=105593516-18072007><STRONG><FONT face="Palatino Linotype"
color=#0000ff>Good catch. Should have seen this.</FONT></STRONG></SPAN></DIV>
<DIV><SPAN class=105593516-18072007><STRONG><FONT face="Palatino Linotype"
color=#0000ff>Sorry</FONT></STRONG></SPAN></DIV>
<DIV><STRONG><FONT face="Palatino Linotype"
color=#0000ff></FONT></STRONG> </DIV>
<DIV><SPAN class=105593516-18072007><FONT face="Palatino Linotype"
color=#0000ff><STRONG>Eitan</STRONG></FONT></SPAN></DIV><BR>
<BLOCKQUOTE
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> Hal Rosenstock
[mailto:hal.rosenstock@gmail.com] <BR><B>Sent:</B> Wednesday, July 18, 2007
7:36 PM<BR><B>To:</B> Eitan Zahavi<BR><B>Cc:</B> OPENIB; sashak@voltaire.com;
Yevgeny Kliteynik<BR><B>Subject:</B> Re: [PATCH] opensm: Bug in coding of VL
Arbitration tables<BR></FONT><BR></DIV>
<DIV></DIV>Hi Eitan,<BR><BR>
<DIV><SPAN class=gmail_quote>On 7/18/07, <B class=gmail_sendername>Eitan
Zahavi</B> <<A
href="mailto:eitan@mellanox.co.il">eitan@mellanox.co.il</A>> wrote:</SPAN>
<BLOCKQUOTE class=gmail_quote
style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">Hi
Sasha<BR><BR>Discovered a bug in coding of the VL Arbitration table
"index".<BR>According to spec should be:<BR>1 for low part of low table<BR>2
for high part of low table<BR>3 for low part of high table<BR>4 for high
part of high table<BR><BR>the patch below fixes
it:<BR><BR>Eitan<BR><BR>Signed-off-by: Eitan Zahavi <<A
href="mailto:eitan@mellanox.co.il">eitan@mellanox.co.il</A>><BR><BR>diff
--git a/opensm/opensm/osm_qos.c b/opensm/opensm/osm_qos.c <BR>index
bbb1608..413e200 100644<BR>--- a/opensm/opensm/osm_qos.c<BR>+++
b/opensm/opensm/osm_qos.c<BR>@@ -116,14 +116,14 @@ static ib_api_status_t
vlarb_update(osm_req_t *
p_req,<BR> p_pi->vl_arb_low_cap
:
IB_NUM_VL_ARB_ELEMENTS_IN_BLOCK;<BR> if
((status = vlarb_update_table_block(p_req, p,
port_num,<BR>
&qcfg->vlarb_low[0],<BR>- len,
0)) !=
IB_SUCCESS)<BR>+ len,
1)) !=
IB_SUCCESS)<BR> return
status;<BR> }<BR> if
(p_pi->vl_arb_low_cap > IB_NUM_VL_ARB_ELEMENTS_IN_BLOCK)
{<BR> len
= p_pi->vl_arb_low_cap %
IB_NUM_VL_ARB_ELEMENTS_IN_BLOCK;<BR> if
((status = vlarb_update_table_block(p_req, p,
port_num,<BR>
&qcfg->vlarb_low[1],<BR>- len,
1)) !=
IB_SUCCESS)<BR>+ len,
2)) !=
IB_SUCCESS)<BR> return
status;<BR> }<BR> if
(p_pi->vl_arb_high_cap > 0) {<BR>@@ -131,14 +131,14 @@ static
ib_api_status_t vlarb_update(osm_req_t *
p_req,<BR> p_pi->vl_arb_high_cap
:
IB_NUM_VL_ARB_ELEMENTS_IN_BLOCK;<BR> if
((status = vlarb_update_table_block(p_req, p,
port_num,<BR>
&qcfg->vlarb_high[0],<BR>- len,
2)) !=
IB_SUCCESS)<BR>+ len,
3)) !=
IB_SUCCESS)<BR> return
status;<BR> }<BR> if
(p_pi->vl_arb_high_cap > IB_NUM_VL_ARB_ELEMENTS_IN_BLOCK)
{<BR> len
= p_pi->vl_arb_high_cap %
IB_NUM_VL_ARB_ELEMENTS_IN_BLOCK;<BR> if
((status = vlarb_update_table_block(p_req, p,
port_num,<BR>
&qcfg->vlarb_high[1],<BR>- len,
3)) !=
IB_SUCCESS)<BR>+ len,
4)) !=
IB_SUCCESS)<BR> return
status;<BR> }</BLOCKQUOTE>
<DIV><BR><BR>
<BLOCKQUOTE class=gmail_quote
style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">Are
you sure ? It looks to me like this is already handled in
vlarb_update_table_block as follows:
<BR></BLOCKQUOTE><BR> if
(!memcmp(&p->vl_arb[block_num],
&block,<BR>
block_length *
sizeof(block.vl_entry[0])))<BR>
return
IB_SUCCESS;<BR><BR>but<BR><BR>
attr_mod = ((block_num + 1) << 16) |
port_num;<BR><BR> return
osm_req_set(p_req,
osm_physp_get_dr_path_ptr(p),<BR>
(uint8_t *) & block,
sizeof(block),<BR>
IB_MAD_ATTR_VL_ARBITRATION,<BR>
cl_hton32(attr_mod), CL_DISP_MSGID_NONE, &context);<BR><BR>--
Hal </DIV><BR></DIV><BR></BLOCKQUOTE></BODY></HTML>