On 02/22/2012 04:22 AM, Arnd Bergmann wrote: > On Monday 20 February 2012, H. Peter Anvin wrote: >> We are using __u64 as x86-32 compatible since we are sharing most of the >> really complex path (like ioctl) with i386 much more so than x86-64. So >> it is defined in userspace as: >> >> typedef unsigned long long __u64 __attribute__((aligned(4))); >> >> __aligned_u64 obviously is naturally aligned, which matches uint64_t is >> userspace. > > Has someone audited the interfaces to check if there are data structures that > use a plain signed or unsigned "long long" instead of __s64/__u64 in places > where i386 differs from the other compat implementations? > > I found DRM_IOCTL_UPDATE_DRAW, but there could be more like this one. > Has someone audited every single ioctl in the kernel? Definitely not, which is why x32 is marked EXPERIMENTAL. I think it is still time for this work to switch to happening in the upstream, however. -hpa -- H. Peter Anvin, Intel Open Source Technology Center I work for Intel. I don't speak on their behalf. -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html