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: David Howells <dhowells@redhat.com> Cc: Hirokazu Takata <takata@linux-m32r.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
|---|---|---|
| .. | ||
| auxvec.h | ||
| bitsperlong.h | ||
| byteorder.h | ||
| errno.h | ||
| fcntl.h | ||
| ioctl.h | ||
| ioctls.h | ||
| ipcbuf.h | ||
| Kbuild | ||
| mman.h | ||
| msgbuf.h | ||
| param.h | ||
| poll.h | ||
| posix_types.h | ||
| ptrace.h | ||
| resource.h | ||
| sembuf.h | ||
| setup.h | ||
| shmbuf.h | ||
| sigcontext.h | ||
| siginfo.h | ||
| signal.h | ||
| socket.h | ||
| sockios.h | ||
| stat.h | ||
| statfs.h | ||
| swab.h | ||
| termbits.h | ||
| termios.h | ||
| types.h | ||
| unistd.h | ||