Benjamin LaHaise <bcrl@xxxxxxxxx> writes: > On Wed, Mar 06, 2013 at 08:47:33PM +0000, David Howells wrote: >> In the UAPI header files, __BIG_ENDIAN and __LITTLE_ENDIAN must be compared >> against __BYTE_ORDER in preprocessor conditionals where these are exposed to >> userspace (that is they're not inside __KERNEL__ conditionals). >> >> However, in the main kernel the norm is to check for "defined(__XXX_ENDIAN)" >> rather than comparing against __BYTE_ORDER and this has incorrectly leaked >> into the userspace headers. >> >> The definition of PADDED() in linux/aio_abi.h is wrong in this way. Note that >> userspace will likely interpret this and thus the order of fields in struct >> iocb incorrectly as the little-endian variant on big-endian machines - >> depending on header inclusion order. >> >> [!!!] NOTE [!!!] This patch may adversely change the userspace API. It might >> be better to fix the ordering of aio_key and aio_reserved1 in struct iocb. > > It is unlikely that anyone has used the existing kernel headers and hit this > issue given that most existing users use the libaio.h include (which does not > get the endianness tests wrong). Given that the kernel has always used the > correct endian mappings, this change is correct. Agreed. Acked-by: Jeff Moyer <jmoyer@xxxxxxxxxx> -- 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