Both x32 and x86-64 use the same stat system call interface.  But x32
long is 32-bit.  This patch changes x86 uapi <asm/stat.h> to use
 __kernel_long_t/__kernel_ulong_t in x86-64 stat.

-- 
H.J.
From ae73439297cc4a2cf4b4f580d5e83fabcfa2a316 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <[email protected]>
Date: Mon, 16 Dec 2013 16:09:51 -0800
Subject: [PATCH 1/2] Use __kernel_long_t/__kernel_ulong_t in x86-64 stat.h

Both x32 and x86-64 use the same stat system call interface.  But x32
long is 32-bit.  This patch changes x86 uapi <asm/stat.h> to use
 __kernel_long_t/__kernel_ulong_t in x86-64 stat.

H.J.
--
Signed-off-by: H.J. Lu <[email protected]>
---
 arch/x86/include/uapi/asm/stat.h | 42 +++++++++++++++++++++-------------------
 1 file changed, 22 insertions(+), 20 deletions(-)

diff --git a/arch/x86/include/uapi/asm/stat.h b/arch/x86/include/uapi/asm/stat.h
index 7b3ddc3..bc03eb5 100644
--- a/arch/x86/include/uapi/asm/stat.h
+++ b/arch/x86/include/uapi/asm/stat.h
@@ -1,6 +1,8 @@
 #ifndef _ASM_X86_STAT_H
 #define _ASM_X86_STAT_H
 
+#include <asm/posix_types.h>
+
 #define STAT_HAVE_NSEC 1
 
 #ifdef __i386__
@@ -78,26 +80,26 @@ struct stat64 {
 #else /* __i386__ */
 
 struct stat {
-       unsigned long   st_dev;
-       unsigned long   st_ino;
-       unsigned long   st_nlink;
-
-       unsigned int    st_mode;
-       unsigned int    st_uid;
-       unsigned int    st_gid;
-       unsigned int    __pad0;
-       unsigned long   st_rdev;
-       long            st_size;
-       long            st_blksize;
-       long            st_blocks;      /* Number 512-byte blocks allocated. */
-
-       unsigned long   st_atime;
-       unsigned long   st_atime_nsec;
-       unsigned long   st_mtime;
-       unsigned long   st_mtime_nsec;
-       unsigned long   st_ctime;
-       unsigned long   st_ctime_nsec;
-       long            __unused[3];
+       __kernel_ulong_t        st_dev;
+       __kernel_ulong_t        st_ino;
+       __kernel_ulong_t        st_nlink;
+
+       unsigned int            st_mode;
+       unsigned int            st_uid;
+       unsigned int            st_gid;
+       unsigned int            __pad0;
+       __kernel_ulong_t        st_rdev;
+       __kernel_long_t         st_size;
+       __kernel_long_t         st_blksize;
+       __kernel_long_t         st_blocks;      /* Number 512-byte blocks 
allocated. */
+
+       __kernel_ulong_t        st_atime;
+       __kernel_ulong_t        st_atime_nsec;
+       __kernel_ulong_t        st_mtime;
+       __kernel_ulong_t        st_mtime_nsec;
+       __kernel_ulong_t        st_ctime;
+       __kernel_ulong_t        st_ctime_nsec;
+       __kernel_long_t         __unused[3];
 };
 
 /* We don't need to memset the whole thing just to initialize the padding */
-- 
1.8.3.1

Reply via email to