[PATCH 7/8] Use __kernel_ulong_t in shmid64_ds/shminfo64/shm_info

2013-12-27 Thread H.J. Lu
Both x32 and x86-64 use the same struct shmid64_ds/shminfo64/shm_info for
system calls.  But x32 long is 32-bit. This patch replaces unsigned long
with __kernel_ulong_t in struct shmid64_ds/shminfo64/shm_info.

Signed-off-by: H.J. Lu 
---
 include/uapi/asm-generic/shmbuf.h | 24 
 include/uapi/linux/shm.h  | 10 +-
 2 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/include/uapi/asm-generic/shmbuf.h 
b/include/uapi/asm-generic/shmbuf.h
index 5768fa6..7e9fb2f 100644
--- a/include/uapi/asm-generic/shmbuf.h
+++ b/include/uapi/asm-generic/shmbuf.h
@@ -39,21 +39,21 @@ struct shmid64_ds {
 #endif
__kernel_pid_t  shm_cpid;   /* pid of creator */
__kernel_pid_t  shm_lpid;   /* pid of last operator */
-   unsigned long   shm_nattch; /* no. of current attaches */
-   unsigned long   __unused4;
-   unsigned long   __unused5;
+   __kernel_ulong_tshm_nattch; /* no. of current attaches */
+   __kernel_ulong_t__unused4;
+   __kernel_ulong_t__unused5;
 };
 
 struct shminfo64 {
-   unsigned long   shmmax;
-   unsigned long   shmmin;
-   unsigned long   shmmni;
-   unsigned long   shmseg;
-   unsigned long   shmall;
-   unsigned long   __unused1;
-   unsigned long   __unused2;
-   unsigned long   __unused3;
-   unsigned long   __unused4;
+   __kernel_ulong_tshmmax;
+   __kernel_ulong_tshmmin;
+   __kernel_ulong_tshmmni;
+   __kernel_ulong_tshmseg;
+   __kernel_ulong_tshmall;
+   __kernel_ulong_t__unused1;
+   __kernel_ulong_t__unused2;
+   __kernel_ulong_t__unused3;
+   __kernel_ulong_t__unused4;
 };
 
 #endif /* __ASM_GENERIC_SHMBUF_H */
diff --git a/include/uapi/linux/shm.h b/include/uapi/linux/shm.h
index ec36fa1..78b6941 100644
--- a/include/uapi/linux/shm.h
+++ b/include/uapi/linux/shm.h
@@ -68,11 +68,11 @@ struct  shminfo {
 
 struct shm_info {
int used_ids;
-   unsigned long shm_tot;  /* total allocated shm */
-   unsigned long shm_rss;  /* total resident shm */
-   unsigned long shm_swp;  /* total swapped shm */
-   unsigned long swap_attempts;
-   unsigned long swap_successes;
+   __kernel_ulong_t shm_tot;   /* total allocated shm */
+   __kernel_ulong_t shm_rss;   /* total resident shm */
+   __kernel_ulong_t shm_swp;   /* total swapped shm */
+   __kernel_ulong_t swap_attempts;
+   __kernel_ulong_t swap_successes;
 };
 
 
-- 
1.8.4.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 7/8] Use __kernel_ulong_t in shmid64_ds/shminfo64/shm_info

2013-12-27 Thread H.J. Lu
Both x32 and x86-64 use the same struct shmid64_ds/shminfo64/shm_info for
system calls.  But x32 long is 32-bit. This patch replaces unsigned long
with __kernel_ulong_t in struct shmid64_ds/shminfo64/shm_info if
__BITS_PER_LONG == 64.

Signed-off-by: H.J. Lu 
---
 include/uapi/asm-generic/shmbuf.h | 36 +++-
 include/uapi/linux/shm.h  | 14 +++---
 2 files changed, 38 insertions(+), 12 deletions(-)

diff --git a/include/uapi/asm-generic/shmbuf.h 
b/include/uapi/asm-generic/shmbuf.h
index 5768fa6..c5d9d34 100644
--- a/include/uapi/asm-generic/shmbuf.h
+++ b/include/uapi/asm-generic/shmbuf.h
@@ -39,21 +39,39 @@ struct shmid64_ds {
 #endif
__kernel_pid_t  shm_cpid;   /* pid of creator */
__kernel_pid_t  shm_lpid;   /* pid of last operator */
+#if __BITS_PER_LONG != 64
unsigned long   shm_nattch; /* no. of current attaches */
unsigned long   __unused4;
unsigned long   __unused5;
+#else
+   __kernel_ulong_tshm_nattch; /* no. of current attaches */
+   __kernel_ulong_t__unused4;
+   __kernel_ulong_t__unused5;
+#endif
 };
 
 struct shminfo64 {
-   unsigned long   shmmax;
-   unsigned long   shmmin;
-   unsigned long   shmmni;
-   unsigned long   shmseg;
-   unsigned long   shmall;
-   unsigned long   __unused1;
-   unsigned long   __unused2;
-   unsigned long   __unused3;
-   unsigned long   __unused4;
+#if __BITS_PER_LONG != 64
+   unsigned long   shmmax;
+   unsigned long   shmmin;
+   unsigned long   shmmni;
+   unsigned long   shmseg;
+   unsigned long   shmall;
+   unsigned long   __unused1;
+   unsigned long   __unused2;
+   unsigned long   __unused3;
+   unsigned long   __unused4;
+#else
+   __kernel_ulong_tshmmax;
+   __kernel_ulong_tshmmin;
+   __kernel_ulong_tshmmni;
+   __kernel_ulong_tshmseg;
+   __kernel_ulong_tshmall;
+   __kernel_ulong_t__unused1;
+   __kernel_ulong_t__unused2;
+   __kernel_ulong_t__unused3;
+   __kernel_ulong_t__unused4;
+#endif
 };
 
 #endif /* __ASM_GENERIC_SHMBUF_H */
diff --git a/include/uapi/linux/shm.h b/include/uapi/linux/shm.h
index ec36fa1..970d255 100644
--- a/include/uapi/linux/shm.h
+++ b/include/uapi/linux/shm.h
@@ -68,11 +68,19 @@ struct  shminfo {
 
 struct shm_info {
int used_ids;
-   unsigned long shm_tot;  /* total allocated shm */
-   unsigned long shm_rss;  /* total resident shm */
-   unsigned long shm_swp;  /* total swapped shm */
+#if __BITS_PER_LONG == 64
+   __kernel_ulong_t shm_tot;   /* total allocated shm */
+   __kernel_ulong_t shm_rss;   /* total resident shm */
+   __kernel_ulong_t shm_swp;   /* total swapped shm */
+   __kernel_ulong_t swap_attempts;
+   __kernel_ulong_t swap_successes;
+#else
+   unsigned long shm_tot;  /* total allocated shm */
+   unsigned long shm_rss;  /* total resident shm */
+   unsigned long shm_swp;  /* total swapped shm */
unsigned long swap_attempts;
unsigned long swap_successes;
+#endif
 };
 
 
-- 
1.8.4.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/