[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