Subject: linux-next: build failure after merge of the vfs tree

From: Stephen Rothwell <[email-masked]>
Date: Mon, 10 Sep 2018 13:59:41 +1000

Hi Al,

After merging the vfs tree, today's linux-next build (sparc64 defconfig)
failed like this:

In file included from arch/sparc/include/asm/fbio.h:5:0,
                 from fs/compat_ioctl.c:76:
arch/sparc/include/uapi/asm/fbio.h:100:25: error: field 'pos' has incomplete type
         struct fbcurpos pos;    /* cursor position */
                         ^~~
arch/sparc/include/uapi/asm/fbio.h:101:25: error: field 'hot' has incomplete type
         struct fbcurpos hot;    /* cursor hot spot */
                         ^~~
arch/sparc/include/uapi/asm/fbio.h:103:25: error: field 'size' has incomplete type
         struct fbcurpos size;   /* cursor bit map size */
                         ^~~~
In file included from fs/compat_ioctl.c:76:0:
arch/sparc/include/asm/fbio.h:63:18: error: field 'pos' has incomplete type
  struct fbcurpos pos; /* cursor position */
                  ^~~
arch/sparc/include/asm/fbio.h:64:18: error: field 'hot' has incomplete type
  struct fbcurpos hot; /* cursor hot spot */
                  ^~~
arch/sparc/include/asm/fbio.h:66:18: error: field 'size' has incomplete type
  struct fbcurpos size; /* cursor bit map size */
                  ^~~~
arch/sparc/include/uapi/asm/fbio.h:113:39: error: invalid application of 'sizeof' to incomplete type 'struct fbcurpos'
 #define FBIOSCURPOS     _IOW('F', 26, struct fbcurpos)
                                       ^
fs/compat_ioctl.c:640:21: note: in definition of macro 'XFORM'
 #define XFORM(i) (((i) ^ ((i) << 27) ^ ((i) << 17)) & 0xffffffff)
                     ^
fs/compat_ioctl.c:650:27: note: in expansion of macro 'COMPATIBLE_IOCTL'
 #define IGNORE_IOCTL(cmd) COMPATIBLE_IOCTL(cmd)
                           ^~~~~~~~~~~~~~~~
fs/compat_ioctl.c:1188:1: note: in expansion of macro 'IGNORE_IOCTL'
 IGNORE_IOCTL(FBIOSCURPOS)
 ^~~~~~~~~~~~
arch/sparc/include/uapi/asm/ioctl.h:47:29: note: in expansion of macro '_IOC'
 #define _IOW(type,nr,size)  _IOC(_IOC_WRITE,(type),(nr),sizeof(size))
                             ^~~~
arch/sparc/include/uapi/asm/fbio.h:113:25: note: in expansion of macro '_IOW'
 #define FBIOSCURPOS     _IOW('F', 26, struct fbcurpos)
                         ^~~~
fs/compat_ioctl.c:1188:14: note: in expansion of macro 'FBIOSCURPOS'
 IGNORE_IOCTL(FBIOSCURPOS)
              ^~~~~~~~~~~
arch/sparc/include/uapi/asm/fbio.h:113:39: error: invalid application of 'sizeof' to incomplete type 'struct fbcurpos'
 #define FBIOSCURPOS     _IOW('F', 26, struct fbcurpos)
                                       ^
fs/compat_ioctl.c:640:28: note: in definition of macro 'XFORM'
 #define XFORM(i) (((i) ^ ((i) << 27) ^ ((i) << 17)) & 0xffffffff)
                            ^
fs/compat_ioctl.c:650:27: note: in expansion of macro 'COMPATIBLE_IOCTL'
 #define IGNORE_IOCTL(cmd) COMPATIBLE_IOCTL(cmd)
                           ^~~~~~~~~~~~~~~~
fs/compat_ioctl.c:1188:1: note: in expansion of macro 'IGNORE_IOCTL'
 IGNORE_IOCTL(FBIOSCURPOS)
 ^~~~~~~~~~~~
arch/sparc/include/uapi/asm/ioctl.h:47:29: note: in expansion of macro '_IOC'
 #define _IOW(type,nr,size)  _IOC(_IOC_WRITE,(type),(nr),sizeof(size))
                             ^~~~
arch/sparc/include/uapi/asm/fbio.h:113:25: note: in expansion of macro '_IOW'
 #define FBIOSCURPOS     _IOW('F', 26, struct fbcurpos)
                         ^~~~
fs/compat_ioctl.c:1188:14: note: in expansion of macro 'FBIOSCURPOS'
 IGNORE_IOCTL(FBIOSCURPOS)
              ^~~~~~~~~~~
arch/sparc/include/uapi/asm/fbio.h:113:39: error: invalid application of 'sizeof' to incomplete type 'struct fbcurpos'
 #define FBIOSCURPOS     _IOW('F', 26, struct fbcurpos)
                                       ^
fs/compat_ioctl.c:640:42: note: in definition of macro 'XFORM'
 #define XFORM(i) (((i) ^ ((i) << 27) ^ ((i) << 17)) & 0xffffffff)
                                          ^
fs/compat_ioctl.c:650:27: note: in expansion of macro 'COMPATIBLE_IOCTL'
 #define IGNORE_IOCTL(cmd) COMPATIBLE_IOCTL(cmd)
                           ^~~~~~~~~~~~~~~~
fs/compat_ioctl.c:1188:1: note: in expansion of macro 'IGNORE_IOCTL'
 IGNORE_IOCTL(FBIOSCURPOS)
 ^~~~~~~~~~~~
arch/sparc/include/uapi/asm/ioctl.h:47:29: note: in expansion of macro '_IOC'
 #define _IOW(type,nr,size)  _IOC(_IOC_WRITE,(type),(nr),sizeof(size))
                             ^~~~
arch/sparc/include/uapi/asm/fbio.h:113:25: note: in expansion of macro '_IOW'
 #define FBIOSCURPOS     _IOW('F', 26, struct fbcurpos)
                         ^~~~
fs/compat_ioctl.c:1188:14: note: in expansion of macro 'FBIOSCURPOS'
 IGNORE_IOCTL(FBIOSCURPOS)
              ^~~~~~~~~~~
arch/sparc/include/uapi/asm/fbio.h:114:39: error: invalid application of 'sizeof' to incomplete type 'struct fbcurpos'
 #define FBIOGCURPOS     _IOW('F', 27, struct fbcurpos)
                                       ^
fs/compat_ioctl.c:640:21: note: in definition of macro 'XFORM'
 #define XFORM(i) (((i) ^ ((i) << 27) ^ ((i) << 17)) & 0xffffffff)
                     ^
fs/compat_ioctl.c:650:27: note: in expansion of macro 'COMPATIBLE_IOCTL'
 #define IGNORE_IOCTL(cmd) COMPATIBLE_IOCTL(cmd)
                           ^~~~~~~~~~~~~~~~
fs/compat_ioctl.c:1189:1: note: in expansion of macro 'IGNORE_IOCTL'
 IGNORE_IOCTL(FBIOGCURPOS)
 ^~~~~~~~~~~~
arch/sparc/include/uapi/asm/ioctl.h:47:29: note: in expansion of macro '_IOC'
 #define _IOW(type,nr,size)  _IOC(_IOC_WRITE,(type),(nr),sizeof(size))
                             ^~~~
arch/sparc/include/uapi/asm/fbio.h:114:25: note: in expansion of macro '_IOW'
 #define FBIOGCURPOS     _IOW('F', 27, struct fbcurpos)
                         ^~~~
fs/compat_ioctl.c:1189:14: note: in expansion of macro 'FBIOGCURPOS'
 IGNORE_IOCTL(FBIOGCURPOS)
              ^~~~~~~~~~~
arch/sparc/include/uapi/asm/fbio.h:114:39: error: invalid application of 'sizeof' to incomplete type 'struct fbcurpos'
 #define FBIOGCURPOS     _IOW('F', 27, struct fbcurpos)
                                       ^
fs/compat_ioctl.c:640:28: note: in definition of macro 'XFORM'
 #define XFORM(i) (((i) ^ ((i) << 27) ^ ((i) << 17)) & 0xffffffff)
                            ^
fs/compat_ioctl.c:650:27: note: in expansion of macro 'COMPATIBLE_IOCTL'
 #define IGNORE_IOCTL(cmd) COMPATIBLE_IOCTL(cmd)
                           ^~~~~~~~~~~~~~~~
fs/compat_ioctl.c:1189:1: note: in expansion of macro 'IGNORE_IOCTL'
 IGNORE_IOCTL(FBIOGCURPOS)
 ^~~~~~~~~~~~
arch/sparc/include/uapi/asm/ioctl.h:47:29: note: in expansion of macro '_IOC'
 #define _IOW(type,nr,size)  _IOC(_IOC_WRITE,(type),(nr),sizeof(size))
                             ^~~~
arch/sparc/include/uapi/asm/fbio.h:114:25: note: in expansion of macro '_IOW'
 #define FBIOGCURPOS     _IOW('F', 27, struct fbcurpos)
                         ^~~~
fs/compat_ioctl.c:1189:14: note: in expansion of macro 'FBIOGCURPOS'
 IGNORE_IOCTL(FBIOGCURPOS)
              ^~~~~~~~~~~
arch/sparc/include/uapi/asm/fbio.h:114:39: error: invalid application of 'sizeof' to incomplete type 'struct fbcurpos'
 #define FBIOGCURPOS     _IOW('F', 27, struct fbcurpos)
                                       ^
fs/compat_ioctl.c:640:42: note: in definition of macro 'XFORM'
 #define XFORM(i) (((i) ^ ((i) << 27) ^ ((i) << 17)) & 0xffffffff)
                                          ^
fs/compat_ioctl.c:650:27: note: in expansion of macro 'COMPATIBLE_IOCTL'
 #define IGNORE_IOCTL(cmd) COMPATIBLE_IOCTL(cmd)
                           ^~~~~~~~~~~~~~~~
fs/compat_ioctl.c:1189:1: note: in expansion of macro 'IGNORE_IOCTL'
 IGNORE_IOCTL(FBIOGCURPOS)
 ^~~~~~~~~~~~
arch/sparc/include/uapi/asm/ioctl.h:47:29: note: in expansion of macro '_IOC'
 #define _IOW(type,nr,size)  _IOC(_IOC_WRITE,(type),(nr),sizeof(size))
                             ^~~~
arch/sparc/include/uapi/asm/fbio.h:114:25: note: in expansion of macro '_IOW'
 #define FBIOGCURPOS     _IOW('F', 27, struct fbcurpos)
                         ^~~~
fs/compat_ioctl.c:1189:14: note: in expansion of macro 'FBIOGCURPOS'
 IGNORE_IOCTL(FBIOGCURPOS)
              ^~~~~~~~~~~
arch/sparc/include/uapi/asm/fbio.h:117:39: error: invalid application of 'sizeof' to incomplete type 'struct fbcurpos'
 #define FBIOGCURMAX     _IOR('F', 28, struct fbcurpos)
                                       ^
fs/compat_ioctl.c:640:21: note: in definition of macro 'XFORM'
 #define XFORM(i) (((i) ^ ((i) << 27) ^ ((i) << 17)) & 0xffffffff)
                     ^
fs/compat_ioctl.c:650:27: note: in expansion of macro 'COMPATIBLE_IOCTL'
 #define IGNORE_IOCTL(cmd) COMPATIBLE_IOCTL(cmd)
                           ^~~~~~~~~~~~~~~~
fs/compat_ioctl.c:1190:1: note: in expansion of macro 'IGNORE_IOCTL'
 IGNORE_IOCTL(FBIOGCURMAX)
 ^~~~~~~~~~~~
arch/sparc/include/uapi/asm/ioctl.h:46:29: note: in expansion of macro '_IOC'
 #define _IOR(type,nr,size)  _IOC(_IOC_READ,(type),(nr),sizeof(size))
                             ^~~~
arch/sparc/include/uapi/asm/fbio.h:117:25: note: in expansion of macro '_IOR'
 #define FBIOGCURMAX     _IOR('F', 28, struct fbcurpos)
                         ^~~~
fs/compat_ioctl.c:1190:14: note: in expansion of macro 'FBIOGCURMAX'
 IGNORE_IOCTL(FBIOGCURMAX)
              ^~~~~~~~~~~
arch/sparc/include/uapi/asm/fbio.h:117:39: error: invalid application of 'sizeof' to incomplete type 'struct fbcurpos'
 #define FBIOGCURMAX     _IOR('F', 28, struct fbcurpos)
                                       ^
fs/compat_ioctl.c:640:28: note: in definition of macro 'XFORM'
 #define XFORM(i) (((i) ^ ((i) << 27) ^ ((i) << 17)) & 0xffffffff)
                            ^
fs/compat_ioctl.c:650:27: note: in expansion of macro 'COMPATIBLE_IOCTL'
 #define IGNORE_IOCTL(cmd) COMPATIBLE_IOCTL(cmd)
                           ^~~~~~~~~~~~~~~~
fs/compat_ioctl.c:1190:1: note: in expansion of macro 'IGNORE_IOCTL'
 IGNORE_IOCTL(FBIOGCURMAX)
 ^~~~~~~~~~~~
arch/sparc/include/uapi/asm/ioctl.h:46:29: note: in expansion of macro '_IOC'
 #define _IOR(type,nr,size)  _IOC(_IOC_READ,(type),(nr),sizeof(size))
                             ^~~~
arch/sparc/include/uapi/asm/fbio.h:117:25: note: in expansion of macro '_IOR'
 #define FBIOGCURMAX     _IOR('F', 28, struct fbcurpos)
                         ^~~~
fs/compat_ioctl.c:1190:14: note: in expansion of macro 'FBIOGCURMAX'
 IGNORE_IOCTL(FBIOGCURMAX)
              ^~~~~~~~~~~
arch/sparc/include/uapi/asm/fbio.h:117:39: error: invalid application of 'sizeof' to incomplete type 'struct fbcurpos'
 #define FBIOGCURMAX     _IOR('F', 28, struct fbcurpos)
                                       ^
fs/compat_ioctl.c:640:42: note: in definition of macro 'XFORM'
 #define XFORM(i) (((i) ^ ((i) << 27) ^ ((i) << 17)) & 0xffffffff)
                                          ^
fs/compat_ioctl.c:650:27: note: in expansion of macro 'COMPATIBLE_IOCTL'
 #define IGNORE_IOCTL(cmd) COMPATIBLE_IOCTL(cmd)
                           ^~~~~~~~~~~~~~~~
fs/compat_ioctl.c:1190:1: note: in expansion of macro 'IGNORE_IOCTL'
 IGNORE_IOCTL(FBIOGCURMAX)
 ^~~~~~~~~~~~
arch/sparc/include/uapi/asm/ioctl.h:46:29: note: in expansion of macro '_IOC'
 #define _IOR(type,nr,size)  _IOC(_IOC_READ,(type),(nr),sizeof(size))
                             ^~~~
arch/sparc/include/uapi/asm/fbio.h:117:25: note: in expansion of macro '_IOR'
 #define FBIOGCURMAX     _IOR('F', 28, struct fbcurpos)
                         ^~~~
fs/compat_ioctl.c:1190:14: note: in expansion of macro 'FBIOGCURMAX'
 IGNORE_IOCTL(FBIOGCURMAX)
              ^~~~~~~~~~~

Caused by commit

  be248ed54d65 ("compat_ioctl: trim the pointless includes")

I have reverted that commit for today.
-- 
Cheers,
Stephen Rothwell