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@xxxxxx> > Acked-by: Arnd Bergmann <arnd@xxxxxxxx> > Cc: H.J. Lu <hjl.tools@xxxxxxxxx> > Cc: H. Peter Anvin <hpa@xxxxxxxxx> > --- > 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@xxxxxxxxxxxx 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@xxxxxxxxxxxx -- ldv
Attachment:
signature.asc
Description: PGP signature