[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170808224253.GB10552@altlinux.org>
Date: Wed, 9 Aug 2017 01:42:53 +0300
From: "Dmitry V. Levin" <ldv@...linux.org>
To: Mikko Rapeli <mikko.rapeli@....fi>
Cc: linux-kernel@...r.kernel.org, linux-api@...r.kernel.org,
"H . J . Lu" <hjl.tools@...il.com>,
"H . Peter Anvin" <hpa@...or.com>, Arnd Bergmann <arnd@...db.de>,
linux-arch@...r.kernel.org
Subject: Re: [PATCH v06 08/36] uapi asm-generic/shmbuf.h: include fixes
On Sun, Aug 06, 2017 at 06:43:59PM +0200, Mikko Rapeli wrote:
> Include linux/types.h and asm/msgbuf.h and use __kernel_size_t instead
> of size_t.
>
> Fixes userspace compilation errors like:
>
> error: field ‘shm_perm’ has incomplete type
> struct ipc64_perm shm_perm; /* operation perms */
> error: unknown type name ‘size_t’
> error: unknown type name ‘__kernel_time_t’
>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@....fi>
> Acked-by: Arnd Bergmann <arnd@...db.de>
> Cc: H.J. Lu <hjl.tools@...il.com>
> Cc: H. Peter Anvin <hpa@...or.com>
> ---
> include/uapi/asm-generic/shmbuf.h | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/include/uapi/asm-generic/shmbuf.h b/include/uapi/asm-generic/shmbuf.h
> index 7e9fb2f0853b..ae867ad1e5e4 100644
> --- a/include/uapi/asm-generic/shmbuf.h
> +++ b/include/uapi/asm-generic/shmbuf.h
> @@ -1,7 +1,9 @@
> #ifndef __ASM_GENERIC_SHMBUF_H
> #define __ASM_GENERIC_SHMBUF_H
>
> +#include <linux/types.h>
> #include <asm/bitsperlong.h>
> +#include <asm/msgbuf.h>
>
> /*
> * The shmid64_ds structure for x86 architecture.
> @@ -24,7 +26,7 @@
>
> struct shmid64_ds {
> struct ipc64_perm shm_perm; /* operation perms */
> - size_t shm_segsz; /* size of segment (bytes) */
> + __kernel_size_t shm_segsz; /* size of segment (bytes) */
> __kernel_time_t shm_atime; /* last attach time */
> #if __BITS_PER_LONG != 64
> unsigned long __unused1;
Surprisingly enough, this replacement of size_t with __kernel_size_t
is not just correct, it's a fix for a more subtle bug on x32, see
http://lkml.kernel.org/r/20170302004607.GE27132@altlinux.org
I recommend splitting the change into "include" fix and "size_t" fix
like I did some time ago, see
http://lkml.kernel.org/r/20170302002253.GC27132@altlinux.org
--
ldv
Download attachment "signature.asc" of type "application/pgp-signature" (802 bytes)
Powered by blists - more mailing lists