Re: [PATCH] vfs: prevent signed overflow by using u64 over loff_t

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Saagar,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on vfs/for-next]
[also build test ERROR on linus/master v5.5-rc6 next-20200110]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Saagar-Jha/vfs-prevent-signed-overflow-by-using-u64-over-loff_t/20200113-144149
base:   https://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git for-next
config: powerpc-defconfig (attached as .config)
compiler: powerpc64-linux-gcc (GCC) 7.5.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.5.0 make.cross ARCH=powerpc 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@xxxxxxxxx>

All error/warnings (new ones prefixed by >>):

   fs/read_write.c: In function '__do_compat_sys_preadv':
   fs/read_write.c:1253:47: error: expected ')' before ';' token
     loff_t pos = (((u64)pos_high << 32) | pos_low;
                                                  ^
   fs/read_write.c:1256:1: error: expected ',' or ';' before '}' token
    }
    ^
   In file included from fs/read_write.c:20:0:
>> include/linux/compat.h:78:13: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)); \
                ^
   include/linux/compat.h:66:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1270:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE6'
    COMPAT_SYSCALL_DEFINE6(preadv2, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   In file included from fs/read_write.c:17:0:
   fs/read_write.c:1271:16: warning: 'alias' attribute ignored [-Wattributes]
      const struct compat_iovec __user *,vec,
                   ^
   include/linux/syscalls.h:117:25: note: in definition of macro '__SC_DECL'
    #define __SC_DECL(t, a) t a
                            ^
   include/linux/syscalls.h:114:35: note: in expansion of macro '__MAP5'
    #define __MAP6(m,t,a,...) m(t,a), __MAP5(m,__VA_ARGS__)
                                      ^~~~~~
   include/linux/syscalls.h:115:22: note: in expansion of macro '__MAP6'
    #define __MAP(n,...) __MAP##n(__VA_ARGS__)
                         ^~~~~
>> include/linux/compat.h:79:35: note: in expansion of macro '__MAP'
     asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
                                      ^~~~~
   include/linux/compat.h:66:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1270:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE6'
    COMPAT_SYSCALL_DEFINE6(preadv2, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   In file included from fs/read_write.c:20:0:
>> include/linux/compat.h:82:21: error: invalid storage class for function '__do_compat_sys_preadv2'
     static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
                        ^
   include/linux/compat.h:66:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1270:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE6'
    COMPAT_SYSCALL_DEFINE6(preadv2, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/compat.h:82:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
     ^
   include/linux/compat.h:66:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1270:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE6'
    COMPAT_SYSCALL_DEFINE6(preadv2, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
>> include/linux/compat.h:84:18: error: static declaration of '__se_compat_sys_preadv2' follows non-static declaration
     asmlinkage long __se_compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
                     ^
   include/linux/compat.h:66:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1270:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE6'
    COMPAT_SYSCALL_DEFINE6(preadv2, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/compat.h:83:18: note: previous declaration of '__se_compat_sys_preadv2' was here
     asmlinkage long __se_compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)); \
                     ^
   include/linux/compat.h:66:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1270:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE6'
    COMPAT_SYSCALL_DEFINE6(preadv2, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c: In function '__se_compat_sys_preadv2':
>> include/linux/compat.h:86:14: error: implicit declaration of function '__do_compat_sys_preadv2'; did you mean '__do_compat_sys_preadv'? [-Werror=implicit-function-declaration]
      long ret = __do_compat_sys##name(__MAP(x,__SC_DELOUSE,__VA_ARGS__));\
                 ^
   include/linux/compat.h:66:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1270:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE6'
    COMPAT_SYSCALL_DEFINE6(preadv2, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c: In function '__do_compat_sys_preadv':
   include/linux/compat.h:91:21: error: invalid storage class for function '__do_compat_sys_preadv2'
     static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
                        ^
   include/linux/compat.h:66:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1270:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE6'
    COMPAT_SYSCALL_DEFINE6(preadv2, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/compat.h:91:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
     ^
   include/linux/compat.h:66:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1270:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE6'
    COMPAT_SYSCALL_DEFINE6(preadv2, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1283:15: error: invalid storage class for function 'compat_writev'
    static size_t compat_writev(struct file *file,
                  ^~~~~~~~~~~~~
   fs/read_write.c:1305:15: error: invalid storage class for function 'do_compat_writev'
    static size_t do_compat_writev(compat_ulong_t fd,
                  ^~~~~~~~~~~~~~~~
   In file included from fs/read_write.c:20:0:
>> include/linux/compat.h:78:13: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)); \
                ^
   include/linux/compat.h:60:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1323:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE3'
    COMPAT_SYSCALL_DEFINE3(writev, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   In file included from fs/read_write.c:17:0:
   fs/read_write.c:1324:16: warning: 'alias' attribute ignored [-Wattributes]
      const struct compat_iovec __user *, vec,
                   ^
   include/linux/syscalls.h:117:25: note: in definition of macro '__SC_DECL'
    #define __SC_DECL(t, a) t a
                            ^
   include/linux/syscalls.h:111:35: note: in expansion of macro '__MAP2'
    #define __MAP3(m,t,a,...) m(t,a), __MAP2(m,__VA_ARGS__)
                                      ^~~~~~
   include/linux/syscalls.h:115:22: note: in expansion of macro '__MAP3'
    #define __MAP(n,...) __MAP##n(__VA_ARGS__)
                         ^~~~~
>> include/linux/compat.h:79:35: note: in expansion of macro '__MAP'
     asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
                                      ^~~~~
   include/linux/compat.h:60:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1323:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE3'
    COMPAT_SYSCALL_DEFINE3(writev, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   In file included from fs/read_write.c:20:0:
>> include/linux/compat.h:82:21: error: invalid storage class for function '__do_compat_sys_writev'
     static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
                        ^
   include/linux/compat.h:60:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1323:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE3'
    COMPAT_SYSCALL_DEFINE3(writev, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/compat.h:82:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
     ^
   include/linux/compat.h:60:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1323:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE3'
    COMPAT_SYSCALL_DEFINE3(writev, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
>> include/linux/compat.h:84:18: error: static declaration of '__se_compat_sys_writev' follows non-static declaration
     asmlinkage long __se_compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
                     ^
   include/linux/compat.h:60:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1323:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE3'
    COMPAT_SYSCALL_DEFINE3(writev, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/compat.h:83:18: note: previous declaration of '__se_compat_sys_writev' was here
     asmlinkage long __se_compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)); \
                     ^
   include/linux/compat.h:60:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1323:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE3'
    COMPAT_SYSCALL_DEFINE3(writev, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c: In function '__se_compat_sys_writev':
>> include/linux/compat.h:86:14: error: implicit declaration of function '__do_compat_sys_writev'; did you mean '__se_compat_sys_writev'? [-Werror=implicit-function-declaration]
      long ret = __do_compat_sys##name(__MAP(x,__SC_DELOUSE,__VA_ARGS__));\
                 ^
   include/linux/compat.h:60:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1323:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE3'
    COMPAT_SYSCALL_DEFINE3(writev, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c: In function '__do_compat_sys_preadv':
   include/linux/compat.h:91:21: error: invalid storage class for function '__do_compat_sys_writev'
     static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
                        ^
   include/linux/compat.h:60:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1323:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE3'
    COMPAT_SYSCALL_DEFINE3(writev, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/compat.h:91:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
     ^
   include/linux/compat.h:60:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1323:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE3'
    COMPAT_SYSCALL_DEFINE3(writev, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1330:13: error: invalid storage class for function 'do_compat_pwritev64'
    static long do_compat_pwritev64(unsigned long fd,
                ^~~~~~~~~~~~~~~~~~~
   In file included from fs/read_write.c:20:0:
>> include/linux/compat.h:78:13: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)); \
                ^
   include/linux/compat.h:64:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1358:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE5'
    COMPAT_SYSCALL_DEFINE5(pwritev, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   In file included from fs/read_write.c:17:0:
   fs/read_write.c:1359:16: warning: 'alias' attribute ignored [-Wattributes]
      const struct compat_iovec __user *,vec,
                   ^
   include/linux/syscalls.h:117:25: note: in definition of macro '__SC_DECL'
    #define __SC_DECL(t, a) t a
                            ^
   include/linux/syscalls.h:113:35: note: in expansion of macro '__MAP4'
    #define __MAP5(m,t,a,...) m(t,a), __MAP4(m,__VA_ARGS__)
                                      ^~~~~~
   include/linux/syscalls.h:115:22: note: in expansion of macro '__MAP5'
    #define __MAP(n,...) __MAP##n(__VA_ARGS__)
                         ^~~~~
>> include/linux/compat.h:79:35: note: in expansion of macro '__MAP'
     asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
                                      ^~~~~
   include/linux/compat.h:64:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1358:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE5'
    COMPAT_SYSCALL_DEFINE5(pwritev, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   In file included from fs/read_write.c:20:0:
>> include/linux/compat.h:82:21: error: invalid storage class for function '__do_compat_sys_pwritev'
     static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
                        ^
   include/linux/compat.h:64:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1358:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE5'
    COMPAT_SYSCALL_DEFINE5(pwritev, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/compat.h:82:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
     ^
   include/linux/compat.h:64:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1358:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE5'
    COMPAT_SYSCALL_DEFINE5(pwritev, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
>> include/linux/compat.h:84:18: error: static declaration of '__se_compat_sys_pwritev' follows non-static declaration
     asmlinkage long __se_compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
                     ^
   include/linux/compat.h:64:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1358:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE5'
    COMPAT_SYSCALL_DEFINE5(pwritev, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/compat.h:83:18: note: previous declaration of '__se_compat_sys_pwritev' was here
     asmlinkage long __se_compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)); \
                     ^
   include/linux/compat.h:64:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1358:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE5'
    COMPAT_SYSCALL_DEFINE5(pwritev, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c: In function '__se_compat_sys_pwritev':
>> include/linux/compat.h:86:14: error: implicit declaration of function '__do_compat_sys_pwritev'; did you mean '__do_compat_sys_writev'? [-Werror=implicit-function-declaration]
      long ret = __do_compat_sys##name(__MAP(x,__SC_DELOUSE,__VA_ARGS__));\
                 ^
   include/linux/compat.h:64:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1358:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE5'
    COMPAT_SYSCALL_DEFINE5(pwritev, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c: In function '__do_compat_sys_preadv':
   include/linux/compat.h:91:21: error: invalid storage class for function '__do_compat_sys_pwritev'
     static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
                        ^
   include/linux/compat.h:64:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1358:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE5'
    COMPAT_SYSCALL_DEFINE5(pwritev, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/compat.h:91:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
     ^
   include/linux/compat.h:64:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1358:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE5'
    COMPAT_SYSCALL_DEFINE5(pwritev, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
>> include/linux/compat.h:78:13: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)); \
                ^
   include/linux/compat.h:66:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1379:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE6'
    COMPAT_SYSCALL_DEFINE6(pwritev2, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   In file included from fs/read_write.c:17:0:
   fs/read_write.c:1380:16: warning: 'alias' attribute ignored [-Wattributes]
      const struct compat_iovec __user *,vec,
                   ^
   include/linux/syscalls.h:117:25: note: in definition of macro '__SC_DECL'
    #define __SC_DECL(t, a) t a
                            ^
   include/linux/syscalls.h:114:35: note: in expansion of macro '__MAP5'
    #define __MAP6(m,t,a,...) m(t,a), __MAP5(m,__VA_ARGS__)
                                      ^~~~~~
   include/linux/syscalls.h:115:22: note: in expansion of macro '__MAP6'
    #define __MAP(n,...) __MAP##n(__VA_ARGS__)
                         ^~~~~
>> include/linux/compat.h:79:35: note: in expansion of macro '__MAP'
     asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
                                      ^~~~~
   include/linux/compat.h:66:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1379:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE6'
    COMPAT_SYSCALL_DEFINE6(pwritev2, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   In file included from fs/read_write.c:20:0:
>> include/linux/compat.h:82:21: error: invalid storage class for function '__do_compat_sys_pwritev2'
     static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
                        ^
   include/linux/compat.h:66:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1379:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE6'
    COMPAT_SYSCALL_DEFINE6(pwritev2, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/compat.h:82:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
     ^
   include/linux/compat.h:66:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1379:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE6'
    COMPAT_SYSCALL_DEFINE6(pwritev2, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
>> include/linux/compat.h:84:18: error: static declaration of '__se_compat_sys_pwritev2' follows non-static declaration
     asmlinkage long __se_compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
                     ^
   include/linux/compat.h:66:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1379:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE6'
    COMPAT_SYSCALL_DEFINE6(pwritev2, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/compat.h:83:18: note: previous declaration of '__se_compat_sys_pwritev2' was here
     asmlinkage long __se_compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)); \
                     ^
   include/linux/compat.h:66:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1379:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE6'
    COMPAT_SYSCALL_DEFINE6(pwritev2, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c: In function '__se_compat_sys_pwritev2':
>> include/linux/compat.h:86:14: error: implicit declaration of function '__do_compat_sys_pwritev2'; did you mean '__do_compat_sys_pwritev'? [-Werror=implicit-function-declaration]
      long ret = __do_compat_sys##name(__MAP(x,__SC_DELOUSE,__VA_ARGS__));\
                 ^
   include/linux/compat.h:66:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1379:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE6'
    COMPAT_SYSCALL_DEFINE6(pwritev2, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c: In function '__do_compat_sys_preadv':
   include/linux/compat.h:91:21: error: invalid storage class for function '__do_compat_sys_pwritev2'
     static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
                        ^
   include/linux/compat.h:66:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1379:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE6'
    COMPAT_SYSCALL_DEFINE6(pwritev2, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/compat.h:91:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
     ^
   include/linux/compat.h:66:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx'
     COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
     ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1379:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE6'
    COMPAT_SYSCALL_DEFINE6(pwritev2, compat_ulong_t, fd,
    ^~~~~~~~~~~~~~~~~~~~~~
   fs/read_write.c:1393:16: error: invalid storage class for function 'do_sendfile'
    static ssize_t do_sendfile(int out_fd, int in_fd, loff_t *ppos,
                   ^~~~~~~~~~~
   fs/read_write.c:1492:1: warning: 'alias' attribute ignored [-Wattributes]
    SYSCALL_DEFINE4(sendfile, int, out_fd, int, in_fd, off_t __user *, offset, size_t, count)
    ^~~~~~~~~~~~~~~
   In file included from fs/read_write.c:17:0:

vim +/__do_compat_sys_preadv2 +82 include/linux/compat.h

217f4433fc2fe7 Heiko Carstens    2014-02-26  54  
468366138850f2 Al Viro           2012-11-23  55  #define COMPAT_SYSCALL_DEFINE1(name, ...) \
468366138850f2 Al Viro           2012-11-23  56          COMPAT_SYSCALL_DEFINEx(1, _##name, __VA_ARGS__)
468366138850f2 Al Viro           2012-11-23  57  #define COMPAT_SYSCALL_DEFINE2(name, ...) \
468366138850f2 Al Viro           2012-11-23  58  	COMPAT_SYSCALL_DEFINEx(2, _##name, __VA_ARGS__)
468366138850f2 Al Viro           2012-11-23  59  #define COMPAT_SYSCALL_DEFINE3(name, ...) \
468366138850f2 Al Viro           2012-11-23  60  	COMPAT_SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
468366138850f2 Al Viro           2012-11-23  61  #define COMPAT_SYSCALL_DEFINE4(name, ...) \
468366138850f2 Al Viro           2012-11-23  62  	COMPAT_SYSCALL_DEFINEx(4, _##name, __VA_ARGS__)
468366138850f2 Al Viro           2012-11-23  63  #define COMPAT_SYSCALL_DEFINE5(name, ...) \
468366138850f2 Al Viro           2012-11-23  64  	COMPAT_SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
468366138850f2 Al Viro           2012-11-23  65  #define COMPAT_SYSCALL_DEFINE6(name, ...) \
468366138850f2 Al Viro           2012-11-23  66  	COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
468366138850f2 Al Viro           2012-11-23  67  
5ac9efa3c50d7c Dominik Brodowski 2018-04-09  68  /*
5ac9efa3c50d7c Dominik Brodowski 2018-04-09  69   * The asmlinkage stub is aliased to a function named __se_compat_sys_*() which
5ac9efa3c50d7c Dominik Brodowski 2018-04-09  70   * sign-extends 32-bit ints to longs whenever needed. The actual work is
5ac9efa3c50d7c Dominik Brodowski 2018-04-09  71   * done within __do_compat_sys_*().
5ac9efa3c50d7c Dominik Brodowski 2018-04-09  72   */
7303e30ec1d8fb Dominik Brodowski 2018-04-05  73  #ifndef COMPAT_SYSCALL_DEFINEx
468366138850f2 Al Viro           2012-11-23  74  #define COMPAT_SYSCALL_DEFINEx(x, name, ...)					\
bee20031772af3 Arnd Bergmann     2018-06-19  75  	__diag_push();								\
bee20031772af3 Arnd Bergmann     2018-06-19  76  	__diag_ignore(GCC, 8, "-Wattribute-alias",				\
bee20031772af3 Arnd Bergmann     2018-06-19  77  		      "Type aliasing is used to sanitize syscall arguments");\
3e2052e5dd4062 Dominik Brodowski 2018-03-22 @78  	asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));	\
83460ec8dcac14 Andi Kleen        2013-11-12 @79  	asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))	\
5ac9efa3c50d7c Dominik Brodowski 2018-04-09  80  		__attribute__((alias(__stringify(__se_compat_sys##name))));	\
c9a211951c7c79 Howard McLauchlan 2018-03-21  81  	ALLOW_ERROR_INJECTION(compat_sys##name, ERRNO);				\
5ac9efa3c50d7c Dominik Brodowski 2018-04-09 @82  	static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
5ac9efa3c50d7c Dominik Brodowski 2018-04-09  83  	asmlinkage long __se_compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__));	\
5ac9efa3c50d7c Dominik Brodowski 2018-04-09 @84  	asmlinkage long __se_compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__))	\
468366138850f2 Al Viro           2012-11-23  85  	{									\
bee20031772af3 Arnd Bergmann     2018-06-19 @86  		long ret = __do_compat_sys##name(__MAP(x,__SC_DELOUSE,__VA_ARGS__));\
bee20031772af3 Arnd Bergmann     2018-06-19  87  		__MAP(x,__SC_TEST,__VA_ARGS__);					\
bee20031772af3 Arnd Bergmann     2018-06-19  88  		return ret;							\
468366138850f2 Al Viro           2012-11-23  89  	}									\
bee20031772af3 Arnd Bergmann     2018-06-19  90  	__diag_pop();								\
5ac9efa3c50d7c Dominik Brodowski 2018-04-09  91  	static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
7303e30ec1d8fb Dominik Brodowski 2018-04-05  92  #endif /* COMPAT_SYSCALL_DEFINEx */
468366138850f2 Al Viro           2012-11-23  93  

:::::: The code at line 82 was first introduced by commit
:::::: 5ac9efa3c50d7caff9f3933bb8a3ad1139d92d92 syscalls/core, syscalls/x86: Clean up compat syscall stub naming convention

:::::: TO: Dominik Brodowski <linux@xxxxxxxxxxxxxxxxxxxx>
:::::: CC: Ingo Molnar <mingo@xxxxxxxxxx>

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx Intel Corporation

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux