[Qemu-devel] [PATCH] target/xtensa: linux-user: fix sysv IPC structures

Max Filippov posted 1 patch 6 years ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20180401192421.29712-1-jcmvbkbc@gmail.com
Test checkpatch passed
Test docker-build@min-glib failed
Test docker-mingw@fedora failed
Test docker-quick@centos6 failed
Test s390x passed
There is a newer version of this series
linux-user/xtensa/target_structs.h | 44 ++++++++++++++++++++++++++++++++------
1 file changed, 38 insertions(+), 6 deletions(-)
[Qemu-devel] [PATCH] target/xtensa: linux-user: fix sysv IPC structures
Posted by Max Filippov 6 years ago
- make target_ipc_perm fields match kernel definitions for xtensa;
- add target_semid64_ds with proper order of times and reserved fields
  for little/big endian specific for xtensa;
- fix order of times and reserved fields of target_shmid_ds for
  little/big endian;
- fix types of shm_cpid, shm_lpid and shm_nattch fields of
  target_shmid_ds to match kernel definitions for xtensa.

These changes fix guest ipcs output and fix glibc testsuite tests
sysvipc/test-sysvsem and sysvipc/test-sysvshm.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
---
 linux-user/xtensa/target_structs.h | 44 ++++++++++++++++++++++++++++++++------
 1 file changed, 38 insertions(+), 6 deletions(-)

diff --git a/linux-user/xtensa/target_structs.h b/linux-user/xtensa/target_structs.h
index 020e20e242fc..a3c854b53731 100644
--- a/linux-user/xtensa/target_structs.h
+++ b/linux-user/xtensa/target_structs.h
@@ -8,21 +8,53 @@ struct target_ipc_perm {
     abi_uint cuid;                      /* Creator's user ID.  */
     abi_uint cgid;                      /* Creator's group ID.  */
     abi_uint mode;                      /* Read/write permission.  */
-    abi_ushort __seq;                   /* Sequence number.  */
+    abi_ulong __seq;                    /* Sequence number.  */
+    abi_ulong __unused1;
+    abi_ulong __unused2;
 };
 
+struct target_semid64_ds {
+  struct target_ipc_perm sem_perm;
+#ifdef TARGET_WORDS_BIGENDIAN
+  abi_ulong __unused1;
+  abi_ulong sem_otime;
+  abi_ulong __unused2;
+  abi_ulong sem_ctime;
+#else
+  abi_ulong sem_otime;
+  abi_ulong __unused1;
+  abi_ulong sem_ctime;
+  abi_ulong __unused2;
+#endif
+  abi_ulong sem_nsems;
+  abi_ulong __unused3;
+  abi_ulong __unused4;
+};
+#define TARGET_SEMID64_DS
+
 struct target_shmid_ds {
     struct target_ipc_perm shm_perm;    /* operation permission struct */
-    abi_int shm_segsz;                  /* size of segment in bytes */
+    abi_long shm_segsz;                 /* size of segment in bytes */
+#ifdef TARGET_WORDS_BIGENDIAN
+    abi_ulong __unused1;
     abi_long shm_atime;                 /* time of last shmat() */
+    abi_ulong __unused2;
     abi_long shm_dtime;                 /* time of last shmdt() */
+    abi_ulong __unused3;
     abi_long shm_ctime;                 /* time of last change by shmctl() */
-    abi_ushort shm_cpid;                /* pid of creator */
-    abi_ushort shm_lpid;                /* pid of last shmop */
-    abi_ushort shm_nattch;              /* number of current attaches */
-    abi_ushort shm_unused;              /* compatibility */
+#else
+    abi_long shm_atime;                 /* time of last shmat() */
+    abi_ulong __unused1;
+    abi_long shm_dtime;                 /* time of last shmdt() */
     abi_ulong __unused2;
+    abi_long shm_ctime;                 /* time of last change by shmctl() */
     abi_ulong __unused3;
+#endif
+    abi_uint shm_cpid;                  /* pid of creator */
+    abi_uint shm_lpid;                  /* pid of last shmop */
+    abi_ulong shm_nattch;               /* number of current attaches */
+    abi_ulong __unused4;
+    abi_ulong __unused5;
 };
 
 #endif
-- 
2.11.0


Re: [Qemu-devel] [PATCH] target/xtensa: linux-user: fix sysv IPC structures
Posted by no-reply@patchew.org 6 years ago
Hi,

This series failed docker-mingw@fedora build test. Please find the testing commands and
their output below. If you have Docker installed, you can probably reproduce it
locally.

Type: series
Message-id: 20180401192421.29712-1-jcmvbkbc@gmail.com
Subject: [Qemu-devel] [PATCH] target/xtensa: linux-user: fix sysv IPC structures

=== TEST SCRIPT BEGIN ===
#!/bin/bash
set -e
git submodule update --init dtc
# Let docker tests dump environment info
export SHOW_ENV=1
export J=8
time make docker-test-mingw@fedora
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
Switched to a new branch 'test'
85fb64537d target/xtensa: linux-user: fix sysv IPC structures

=== OUTPUT BEGIN ===
Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc'
Cloning into '/var/tmp/patchew-tester-tmp-a_d40g47/src/dtc'...
Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42'
  BUILD   fedora
make[1]: Entering directory '/var/tmp/patchew-tester-tmp-a_d40g47/src'
  GEN     /var/tmp/patchew-tester-tmp-a_d40g47/src/docker-src.2018-04-01-15.31.08.11246/qemu.tar
Cloning into '/var/tmp/patchew-tester-tmp-a_d40g47/src/docker-src.2018-04-01-15.31.08.11246/qemu.tar.vroot'...
done.
Checking out files:   3% (211/6066)   
Checking out files:   4% (243/6066)   
Checking out files:   5% (304/6066)   
Checking out files:   6% (364/6066)   
Checking out files:   7% (425/6066)   
Checking out files:   8% (486/6066)   
Checking out files:   9% (546/6066)   
Checking out files:  10% (607/6066)   
Checking out files:  11% (668/6066)   
Checking out files:  12% (728/6066)   
Checking out files:  13% (789/6066)   
Checking out files:  14% (850/6066)   
Checking out files:  15% (910/6066)   
Checking out files:  16% (971/6066)   
Checking out files:  17% (1032/6066)   
Checking out files:  18% (1092/6066)   
Checking out files:  19% (1153/6066)   
Checking out files:  20% (1214/6066)   
Checking out files:  20% (1221/6066)   
Checking out files:  21% (1274/6066)   
Checking out files:  22% (1335/6066)   
Checking out files:  23% (1396/6066)   
Checking out files:  24% (1456/6066)   
Checking out files:  25% (1517/6066)   
Checking out files:  26% (1578/6066)   
Checking out files:  27% (1638/6066)   
Checking out files:  28% (1699/6066)   
Checking out files:  29% (1760/6066)   
Checking out files:  30% (1820/6066)   
Checking out files:  31% (1881/6066)   
Checking out files:  32% (1942/6066)   
Checking out files:  33% (2002/6066)   
Checking out files:  34% (2063/6066)   
Checking out files:  35% (2124/6066)   
Checking out files:  35% (2176/6066)   
Checking out files:  36% (2184/6066)   
Checking out files:  37% (2245/6066)   
Checking out files:  38% (2306/6066)   
Checking out files:  39% (2366/6066)   
Checking out files:  40% (2427/6066)   
Checking out files:  41% (2488/6066)   
Checking out files:  42% (2548/6066)   
Checking out files:  42% (2600/6066)   
Checking out files:  43% (2609/6066)   
Checking out files:  44% (2670/6066)   
Checking out files:  45% (2730/6066)   
Checking out files:  45% (2739/6066)   
Checking out files:  46% (2791/6066)   
Checking out files:  47% (2852/6066)   
Checking out files:  47% (2861/6066)   
Checking out files:  48% (2912/6066)   
Checking out files:  49% (2973/6066)   
Checking out files:  50% (3033/6066)   
Checking out files:  51% (3094/6066)   
Checking out files:  52% (3155/6066)   
Checking out files:  53% (3215/6066)   
Checking out files:  54% (3276/6066)   
Checking out files:  54% (3277/6066)   
Checking out files:  55% (3337/6066)   
Checking out files:  55% (3378/6066)   
Checking out files:  56% (3397/6066)   
Checking out files:  57% (3458/6066)   
Checking out files:  58% (3519/6066)   
Checking out files:  59% (3579/6066)   
Checking out files:  60% (3640/6066)   
Checking out files:  61% (3701/6066)   
Checking out files:  62% (3761/6066)   
Checking out files:  63% (3822/6066)   
Checking out files:  64% (3883/6066)   
Checking out files:  65% (3943/6066)   
Checking out files:  66% (4004/6066)   
Checking out files:  67% (4065/6066)   
Checking out files:  68% (4125/6066)   
Checking out files:  69% (4186/6066)   
Checking out files:  70% (4247/6066)   
Checking out files:  71% (4307/6066)   
Checking out files:  72% (4368/6066)   
Checking out files:  72% (4417/6066)   
Checking out files:  73% (4429/6066)   
Checking out files:  74% (4489/6066)   
Checking out files:  75% (4550/6066)   
Checking out files:  75% (4601/6066)   
Checking out files:  75% (4602/6066)   
Checking out files:  76% (4611/6066)   
Checking out files:  77% (4671/6066)   
Checking out files:  78% (4732/6066)   
Checking out files:  79% (4793/6066)   
Checking out files:  80% (4853/6066)   
Checking out files:  81% (4914/6066)   
Checking out files:  82% (4975/6066)   
Checking out files:  83% (5035/6066)   
Checking out files:  84% (5096/6066)   
Checking out files:  85% (5157/6066)   
Checking out files:  86% (5217/6066)   
Checking out files:  87% (5278/6066)   
Checking out files:  88% (5339/6066)   
Checking out files:  89% (5399/6066)   
Checking out files:  90% (5460/6066)   
Checking out files:  91% (5521/6066)   
Checking out files:  92% (5581/6066)   
Checking out files:  93% (5642/6066)   
Checking out files:  94% (5703/6066)   
Checking out files:  95% (5763/6066)   
Checking out files:  95% (5810/6066)   
Checking out files:  96% (5824/6066)   
Checking out files:  97% (5885/6066)   
Checking out files:  98% (5945/6066)   
Checking out files:  99% (6006/6066)   
Checking out files:  99% (6059/6066)   
Checking out files: 100% (6066/6066)   
Checking out files: 100% (6066/6066), done.
Your branch is up-to-date with 'origin/test'.
Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc'
Cloning into '/var/tmp/patchew-tester-tmp-a_d40g47/src/docker-src.2018-04-01-15.31.08.11246/qemu.tar.vroot/dtc'...
Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42'
Submodule 'ui/keycodemapdb' (git://git.qemu.org/keycodemapdb.git) registered for path 'ui/keycodemapdb'
Cloning into '/var/tmp/patchew-tester-tmp-a_d40g47/src/docker-src.2018-04-01-15.31.08.11246/qemu.tar.vroot/ui/keycodemapdb'...
Submodule path 'ui/keycodemapdb': checked out '6b3d716e2b6472eb7189d3220552280ef3d832ce'
tar: /var/tmp/patchew-tester-tmp-a_d40g47/src/docker-src.2018-04-01-15.31.08.11246/qemu.tar: Wrote only 2048 of 10240 bytes
tar: Error is not recoverable: exiting now
failed to create tar file
  COPY    RUNNER
    RUN test-mingw in qemu:fedora 
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now
/var/tmp/qemu/run: line 32: prep_fail: command not found
Packages installed:
PyYAML-3.12-5.fc27.x86_64
SDL-devel-1.2.15-29.fc27.x86_64
bc-1.07.1-3.fc27.x86_64
bison-3.0.4-8.fc27.x86_64
bzip2-1.0.6-24.fc27.x86_64
ccache-3.3.6-1.fc27.x86_64
clang-5.0.1-3.fc27.x86_64
findutils-4.6.0-16.fc27.x86_64
flex-2.6.1-5.fc27.x86_64
gcc-7.3.1-5.fc27.x86_64
gcc-c++-7.3.1-5.fc27.x86_64
gettext-0.19.8.1-12.fc27.x86_64
git-2.14.3-3.fc27.x86_64
glib2-devel-2.54.3-2.fc27.x86_64
hostname-3.18-4.fc27.x86_64
libaio-devel-0.3.110-9.fc27.x86_64
libasan-7.3.1-5.fc27.x86_64
libfdt-devel-1.4.6-1.fc27.x86_64
libubsan-7.3.1-5.fc27.x86_64
llvm-5.0.1-3.fc27.x86_64
make-4.2.1-4.fc27.x86_64
mingw32-SDL-1.2.15-9.fc27.noarch
mingw32-bzip2-1.0.6-9.fc27.noarch
mingw32-curl-7.54.1-2.fc27.noarch
mingw32-glib2-2.54.1-1.fc27.noarch
mingw32-gmp-6.1.2-2.fc27.noarch
mingw32-gnutls-3.5.13-2.fc27.noarch
mingw32-gtk2-2.24.31-4.fc27.noarch
mingw32-gtk3-3.22.16-1.fc27.noarch
mingw32-libjpeg-turbo-1.5.1-3.fc27.noarch
mingw32-libpng-1.6.29-2.fc27.noarch
mingw32-libssh2-1.8.0-3.fc27.noarch
mingw32-libtasn1-4.13-1.fc27.noarch
mingw32-nettle-3.3-3.fc27.noarch
mingw32-pixman-0.34.0-3.fc27.noarch
mingw32-pkg-config-0.28-9.fc27.x86_64
mingw64-SDL-1.2.15-9.fc27.noarch
mingw64-bzip2-1.0.6-9.fc27.noarch
mingw64-curl-7.54.1-2.fc27.noarch
mingw64-glib2-2.54.1-1.fc27.noarch
mingw64-gmp-6.1.2-2.fc27.noarch
mingw64-gnutls-3.5.13-2.fc27.noarch
mingw64-gtk2-2.24.31-4.fc27.noarch
mingw64-gtk3-3.22.16-1.fc27.noarch
mingw64-libjpeg-turbo-1.5.1-3.fc27.noarch
mingw64-libpng-1.6.29-2.fc27.noarch
mingw64-libssh2-1.8.0-3.fc27.noarch
mingw64-libtasn1-4.13-1.fc27.noarch
mingw64-nettle-3.3-3.fc27.noarch
mingw64-pixman-0.34.0-3.fc27.noarch
mingw64-pkg-config-0.28-9.fc27.x86_64
nettle-devel-3.4-1.fc27.x86_64
perl-5.26.1-403.fc27.x86_64
pixman-devel-0.34.0-4.fc27.x86_64
python3-3.6.2-13.fc27.x86_64
sparse-0.5.1-2.fc27.x86_64
tar-1.29-7.fc27.x86_64
which-2.21-4.fc27.x86_64
zlib-devel-1.2.11-4.fc27.x86_64

Environment variables:
TARGET_LIST=
PACKAGES=ccache gettext git tar PyYAML sparse flex bison python3 bzip2 hostname     glib2-devel pixman-devel zlib-devel SDL-devel libfdt-devel     gcc gcc-c++ llvm clang make perl which bc findutils libaio-devel     nettle-devel libasan libubsan     mingw32-pixman mingw32-glib2 mingw32-gmp mingw32-SDL mingw32-pkg-config     mingw32-gtk2 mingw32-gtk3 mingw32-gnutls mingw32-nettle mingw32-libtasn1     mingw32-libjpeg-turbo mingw32-libpng mingw32-curl mingw32-libssh2     mingw32-bzip2     mingw64-pixman mingw64-glib2 mingw64-gmp mingw64-SDL mingw64-pkg-config     mingw64-gtk2 mingw64-gtk3 mingw64-gnutls mingw64-nettle mingw64-libtasn1     mingw64-libjpeg-turbo mingw64-libpng mingw64-curl mingw64-libssh2     mingw64-bzip2
J=8
V=
HOSTNAME=2aa5de90af55
DEBUG=
SHOW_ENV=1
PWD=/
HOME=/root
CCACHE_DIR=/var/tmp/ccache
DISTTAG=f27container
QEMU_CONFIGURE_OPTS=--python=/usr/bin/python3
FGC=f27
TEST_DIR=/tmp/qemu-test
SHLVL=1
FEATURES=mingw clang pyyaml asan dtc
PATH=/usr/lib/ccache:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAKEFLAGS= -j8
EXTRA_CONFIGURE_OPTS=
_=/usr/bin/env

Configure options:
--enable-werror --target-list=x86_64-softmmu,aarch64-softmmu --prefix=/tmp/qemu-test/install --python=/usr/bin/python3 --cross-prefix=x86_64-w64-mingw32- --enable-trace-backends=simple --enable-gnutls --enable-nettle --enable-curl --enable-vnc --enable-bzip2 --enable-guest-agent --with-sdlabi=1.2 --with-gtkabi=2.0

ERROR: DTC (libfdt) version >= 1.4.2 not present.
       Please install the DTC (libfdt) devel package

Traceback (most recent call last):
  File "./tests/docker/docker.py", line 407, in <module>
    sys.exit(main())
  File "./tests/docker/docker.py", line 404, in main
    return args.cmdobj.run(args, argv)
  File "./tests/docker/docker.py", line 261, in run
    return Docker().run(argv, args.keep, quiet=args.quiet)
  File "./tests/docker/docker.py", line 229, in run
    quiet=quiet)
  File "./tests/docker/docker.py", line 147, in _do_check
    return subprocess.check_call(self._command + cmd, **kwargs)
  File "/usr/lib64/python2.7/subprocess.py", line 186, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['docker', 'run', '--label', 'com.qemu.instance.uuid=62a7b27235e311e8a32852540069c830', '-u', '0', '--security-opt', 'seccomp=unconfined', '--rm', '--net=none', '-e', 'TARGET_LIST=', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=8', '-e', 'DEBUG=', '-e', 'SHOW_ENV=1', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/root/.cache/qemu-docker-ccache:/var/tmp/ccache:z', '-v', '/var/tmp/patchew-tester-tmp-a_d40g47/src/docker-src.2018-04-01-15.31.08.11246:/var/tmp/qemu:z,ro', 'qemu:fedora', '/var/tmp/qemu/run', 'test-mingw']' returned non-zero exit status 1
make[1]: *** [tests/docker/Makefile.include:129: docker-run] Error 1
make[1]: Leaving directory '/var/tmp/patchew-tester-tmp-a_d40g47/src'
make: *** [tests/docker/Makefile.include:163: docker-run-test-mingw@fedora] Error 2

real	2m23.241s
user	0m10.084s
sys	0m9.722s
=== OUTPUT END ===

Test command exited with code: 2


---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
Re: [Qemu-devel] [PATCH] target/xtensa: linux-user: fix sysv IPC structures
Posted by Laurent Vivier 6 years ago
Le 01/04/2018 à 21:24, Max Filippov a écrit :
> - make target_ipc_perm fields match kernel definitions for xtensa;
> - add target_semid64_ds with proper order of times and reserved fields
>   for little/big endian specific for xtensa;
> - fix order of times and reserved fields of target_shmid_ds for
>   little/big endian;
> - fix types of shm_cpid, shm_lpid and shm_nattch fields of
>   target_shmid_ds to match kernel definitions for xtensa.
> 
> These changes fix guest ipcs output and fix glibc testsuite tests
> sysvipc/test-sysvsem and sysvipc/test-sysvshm.
> 
> Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
> ---
>  linux-user/xtensa/target_structs.h | 44 ++++++++++++++++++++++++++++++++------
>  1 file changed, 38 insertions(+), 6 deletions(-)
> 
> diff --git a/linux-user/xtensa/target_structs.h b/linux-user/xtensa/target_structs.h
> index 020e20e242fc..a3c854b53731 100644
> --- a/linux-user/xtensa/target_structs.h
> +++ b/linux-user/xtensa/target_structs.h
> @@ -8,21 +8,53 @@ struct target_ipc_perm {
>      abi_uint cuid;                      /* Creator's user ID.  */
>      abi_uint cgid;                      /* Creator's group ID.  */
>      abi_uint mode;                      /* Read/write permission.  */
> -    abi_ushort __seq;                   /* Sequence number.  */
> +    abi_ulong __seq;                    /* Sequence number.  */
> +    abi_ulong __unused1;
> +    abi_ulong __unused2;
>  };

ok, looks like ipc64_perm in arch/xtensa/include/uapi/asm/ipcbuf.h

> +struct target_semid64_ds {
> +  struct target_ipc_perm sem_perm;
> +#ifdef TARGET_WORDS_BIGENDIAN
> +  abi_ulong __unused1;
> +  abi_ulong sem_otime;
> +  abi_ulong __unused2;
> +  abi_ulong sem_ctime;
> +#else
> +  abi_ulong sem_otime;
> +  abi_ulong __unused1;
> +  abi_ulong sem_ctime;
> +  abi_ulong __unused2;
> +#endif
> +  abi_ulong sem_nsems;
> +  abi_ulong __unused3;
> +  abi_ulong __unused4;
> +};
> +#define TARGET_SEMID64_DS
> +

ok, looks like semid64_ds in arch/xtensa/include/uapi/asm/sembuf.h

>  struct target_shmid_ds {
>      struct target_ipc_perm shm_perm;    /* operation permission struct */
> -    abi_int shm_segsz;                  /* size of segment in bytes */
> +    abi_long shm_segsz;                 /* size of segment in bytes */
> +#ifdef TARGET_WORDS_BIGENDIAN
> +    abi_ulong __unused1;
>      abi_long shm_atime;                 /* time of last shmat() */
> +    abi_ulong __unused2;
>      abi_long shm_dtime;                 /* time of last shmdt() */
> +    abi_ulong __unused3;
>      abi_long shm_ctime;                 /* time of last change by shmctl() */
> -    abi_ushort shm_cpid;                /* pid of creator */
> -    abi_ushort shm_lpid;                /* pid of last shmop */
> -    abi_ushort shm_nattch;              /* number of current attaches */
> -    abi_ushort shm_unused;              /* compatibility */
> +#else
> +    abi_long shm_atime;                 /* time of last shmat() */
> +    abi_ulong __unused1;
> +    abi_long shm_dtime;                 /* time of last shmdt() */
>      abi_ulong __unused2;
> +    abi_long shm_ctime;                 /* time of last change by shmctl() */
>      abi_ulong __unused3;
> +#endif
> +    abi_uint shm_cpid;                  /* pid of creator */
> +    abi_uint shm_lpid;                  /* pid of last shmop */
> +    abi_ulong shm_nattch;               /* number of current attaches */
> +    abi_ulong __unused4;
> +    abi_ulong __unused5;
>  };

This is weird: shmid64_ds in arch/xtensa/include/uapi/asm/shmbuf.h has
two part like yours, but both parts have exactly the same fields order.

Could you explain?

Thanks,
Laurent

Re: [Qemu-devel] [PATCH] target/xtensa: linux-user: fix sysv IPC structures
Posted by Max Filippov 6 years ago
On Sun, Apr 1, 2018 at 12:57 PM, Laurent Vivier <laurent@vivier.eu> wrote:
> Le 01/04/2018 à 21:24, Max Filippov a écrit :
>>  struct target_shmid_ds {
>>      struct target_ipc_perm shm_perm;    /* operation permission struct */
>> -    abi_int shm_segsz;                  /* size of segment in bytes */
>> +    abi_long shm_segsz;                 /* size of segment in bytes */
>> +#ifdef TARGET_WORDS_BIGENDIAN
>> +    abi_ulong __unused1;
>>      abi_long shm_atime;                 /* time of last shmat() */
>> +    abi_ulong __unused2;
>>      abi_long shm_dtime;                 /* time of last shmdt() */
>> +    abi_ulong __unused3;
>>      abi_long shm_ctime;                 /* time of last change by shmctl() */
>> -    abi_ushort shm_cpid;                /* pid of creator */
>> -    abi_ushort shm_lpid;                /* pid of last shmop */
>> -    abi_ushort shm_nattch;              /* number of current attaches */
>> -    abi_ushort shm_unused;              /* compatibility */
>> +#else
>> +    abi_long shm_atime;                 /* time of last shmat() */
>> +    abi_ulong __unused1;
>> +    abi_long shm_dtime;                 /* time of last shmdt() */
>>      abi_ulong __unused2;
>> +    abi_long shm_ctime;                 /* time of last change by shmctl() */
>>      abi_ulong __unused3;
>> +#endif
>> +    abi_uint shm_cpid;                  /* pid of creator */
>> +    abi_uint shm_lpid;                  /* pid of last shmop */
>> +    abi_ulong shm_nattch;               /* number of current attaches */
>> +    abi_ulong __unused4;
>> +    abi_ulong __unused5;
>>  };
>
> This is weird: shmid64_ds in arch/xtensa/include/uapi/asm/shmbuf.h has
> two part like yours, but both parts have exactly the same fields order.
>
> Could you explain?

Ooops, my bad. I haven't checked how this part works and I guess
the kernel definitions were meant to be different, but alas, they're not.
I'll drop this part.

-- 
Thanks.
-- Max