y2038: x86: Extend sysvipc data structures
[linux-2.6-block.git] / arch / x86 / include / uapi / asm / sembuf.h
index cabd7476bd6c3efa2e0603e9e421a96892dc9dcf..89de6cd9f0a778408600d51849caa3ee8971f93a 100644 (file)
@@ -8,15 +8,24 @@
  * between kernel and user space.
  *
  * Pad space is left for:
- * - 64-bit time_t to solve y2038 problem
  * - 2 miscellaneous 32-bit values
+ *
+ * x86_64 and x32 incorrectly added padding here, so the structures
+ * are still incompatible with the padding on x86.
  */
 struct semid64_ds {
        struct ipc64_perm sem_perm;     /* permissions .. see ipc.h */
+#ifdef __i386__
+       unsigned long   sem_otime;      /* last semop time */
+       unsigned long   sem_otime_high;
+       unsigned long   sem_ctime;      /* last change time */
+       unsigned long   sem_ctime_high;
+#else
        __kernel_time_t sem_otime;      /* last semop time */
        __kernel_ulong_t __unused1;
        __kernel_time_t sem_ctime;      /* last change time */
        __kernel_ulong_t __unused2;
+#endif
        __kernel_ulong_t sem_nsems;     /* no. of semaphores in array */
        __kernel_ulong_t __unused3;
        __kernel_ulong_t __unused4;