<html><body>
<p>Good point about the endianness bug. That could be something.<br>
I got 0x600 for status (printed as %x). We have a Topspin switch which runs the SM<br>
<br>
Pradeep<br>
pradeep@us.ibm.com<br>
<br>
<tt>Roland Dreier <rolandd@cisco.com> wrote on 10/18/2005 11:11:46 AM:<br>
<br>
>     Pradeep> Now mad_hdr.status field is declared as __be16. So,<br>
>     Pradeep> should the check be<br>
> <br>
>     Pradeep> (mad_recv_wc->recv_buf.mad->mad_hdr.status & 0xff)<br>
> <br>
>     Pradeep> before we return EINVAL?<br>
> <br>
> I don't see why.  For one thing, that would be an endianness bug,<br>
> since as you say, the status field is in big-endian order, so the test<br>
> would be different depending on whether the host is big- or little-endian.<br>
> <br>
> Also, all 16 bits of the status field should be zero if the request<br>
> succeeds.  What value do you see in the status field in the failed<br>
> response?  What SM are you using?<br>
> <br>
>  - R.<br>
</tt></body></html>