• David Howells's avatar
    UAPI: fix endianness conditionals in M32R's asm/stat.h · 415586c9
    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 struct stat64 in M32R's asm/stat.h is wrong in this way.
     Note that userspace will likely interpret the field order incorrectly as
    the big-endian variant on little-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 st_blocks and __pad4 in struct stat64.
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
    Cc: Hirokazu Takata <takata@linux-m32r.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    415586c9
stat.h 2.05 KB