<html><body>
<p>Hello Ralph,<br>
<br>
In ipoib, priv->local_lid was set here:<br>
{<br>
struct ib_port_attr attr;<br>
<br>
if (!ib_query_port(priv->ca, priv->port, &attr))<br>
priv->local_lid = attr.lid;<br>
}<br>
<br>
If you look at ipath_query_port(),<br>
<br>
static int ipath_query_port(struct ib_device *ibdev,<br>
u8 port, struct ib_port_attr *props)<br>
{<br>
struct ipath_ibdev *dev = to_idev(ibdev);<br>
enum ib_mtu mtu;<br>
u16 lid = dev->dd->ipath_lid;<br>
u64 ibcstat;<br>
<br>
memset(props, 0, sizeof(*props));<br>
>> props->lid = lid ? lid : __constant_be16_to_cpu(IB_LID_PERMISSIVE);<br>
<br>
attr.lid is set here. Do you have any clue it was set to 0? I don't see any code changes between RC3 and RC4 in IPoIB in this piece of code.<br>
<br>
I also found below code in ipath. Is there any issue here in ipath_query_port()? Since we do enable 4K MTU support.<br>
<br>
/*<br>
* Note: the chips support a maximum MTU of 4096, but the driver<br>
* hasn't implemented this feature yet, so set the maximum value<br>
* to 2048.<br>
*/<br>
props->max_mtu = IB_MTU_2048;<br>
switch (dev->dd->ipath_ibmtu) {<br>
case 4096:<br>
mtu = IB_MTU_4096;<br>
break;<br>
...<br>
<br>
Shirley Ma<br>
IBM Linux Technology Center<br>
15300 SW Koll Parkway<br>
Beaverton, OR 97006-6063<br>
Phone(Fax): (503) 578-7638<br>
<br>
</body></html>