s390: syscall_wrapper: avoid clang warning
authorArnd Bergmann <arnd@arndb.de>
Mon, 8 Apr 2019 21:26:21 +0000 (23:26 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 11 Apr 2019 11:36:51 +0000 (13:36 +0200)
Building system calls with clang results in a warning
about an alias from a global function to a static one:

../fs/namei.c:3847:1: warning: unused function '__se_sys_mkdirat' [-Wunused-function]
SYSCALL_DEFINE3(mkdirat, int, dfd, const char __user *, pathname, umode_t, mode)
^
../include/linux/syscalls.h:219:36: note: expanded from macro 'SYSCALL_DEFINE3'
 #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
                                   ^
../include/linux/syscalls.h:228:2: note: expanded from macro 'SYSCALL_DEFINEx'
        __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
        ^
../arch/s390/include/asm/syscall_wrapper.h:126:18: note: expanded from macro '__SYSCALL_DEFINEx'
        asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__))          \
                        ^
<scratch space>:31:1: note: expanded from here
__se_sys_mkdirat
^

The only reference to the static __se_sys_mkdirat() here is the alias, but
this only gets evaluated later. Making this function global as well avoids
the warning.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/include/asm/syscall_wrapper.h

index 5596c5c..3c3d6fe 100644 (file)
                      "Type aliasing is used to sanitize syscall arguments");\
        asmlinkage long __s390x_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))       \
                __attribute__((alias(__stringify(__se_sys##name))));            \
-       ALLOW_ERROR_INJECTION(__s390x_sys##name, ERRNO);                                \
-       static long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__));             \
+       ALLOW_ERROR_INJECTION(__s390x_sys##name, ERRNO);                        \
+       long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__));                    \
        static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));      \
        __S390_SYS_STUBx(x, name, __VA_ARGS__)                                  \
        asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__))          \