On 19:50 Wed 29 Aug     , Roland Dreier wrote:
> 
>  > 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?

Under management tree only osm_vendor_ibumad.c actually uses method_mask,
so switching to long in struct ib_user_mad_reg_req will break nothing
here.

Do we have another another user_umad users (OFA or another known, where
switch could be painful)? If not, I will prefer this way instead of
keeping two OpenSMs for ppc64.

Sasha
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to