[ofa-general] ib_umad method mask problems on big-endian 64-bit archs
Roland Dreier
rdreier at cisco.com
Wed Aug 29 19:50:21 PDT 2007
> It looks that using uint32_t for addr in set_bit() function is sufficient
> fix. But for ppc64 this means that new OpenSM will break with old
> kernels, probably we will need to put some ugly #ifdef in
> osm_vendor_ibumad.c...
Yes, that's a pain. Another possibility is to declare that the
declaration of the registration request should have been
long method_mask[16 / sizeof (long)];
and just add a compat_ioctl method to the ib_umad module to handle the
broken case of 32-bit big endian userspace on a 64-bit kernel.
However that breaks 64-bit big endian userspace that followed the old
ib_user_mad.h file correctly so overall I'm leaning towards the patch
I already posted.
What do you think?
- R.
More information about the general
mailing list