Skip to content
  • David Howells's avatar
    UAPI: fix endianness conditionals in linux/aio_abi.h · 51b154ed
    David Howells authored
    
    
    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.
    
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
    Acked-by: default avatarBenjamin LaHaise <bcrl@kvack.org>
    Acked-by: default avatarJeff Moyer <jmoyer@redhat.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    51b154ed