Re: [PATCH v5 19/25] xtensa: define syscall_get_* functions

From: kbuild test robot
Date: Wed Dec 12 2018 - 05:46:50 EST


Hi Dmitry,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v4.20-rc6]
[cannot apply to next-20181211]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url: https://github.com/0day-ci/linux/commits/Dmitry-V-Levin/ptrace-add-PTRACE_GET_SYSCALL_INFO-request/20181210-174745
config: xtensa-allmodconfig (attached as .config)
compiler: xtensa-linux-gcc (GCC) 8.1.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=8.1.0 make.cross ARCH=xtensa

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

In file included from arch/xtensa/kernel/syscall.c:19:
arch/xtensa/include/asm/syscall.h: In function 'syscall_get_error':
arch/xtensa/include/asm/syscall.h:66:9: error: implicit declaration of function 'IS_ERR_VALUE'; did you mean 'USER_PS_VALUE'? [-Werror=implicit-function-declaration]
return IS_ERR_VALUE(regs->areg[2]) ? regs->areg[2] : 0;
^~~~~~~~~~~~
USER_PS_VALUE
>> arch/xtensa/include/asm/syscall.h:69:1: error: invalid storage class for function 'syscall_get_return_value'
syscall_get_return_value(struct task_struct *task, struct pt_regs *regs)
^~~~~~~~~~~~~~~~~~~~~~~~
>> arch/xtensa/include/asm/syscall.h:68:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
static inline long
^~~~~~
>> arch/xtensa/include/asm/syscall.h:75:1: error: invalid storage class for function 'syscall_get_arch'
syscall_get_arch(void)
^~~~~~~~~~~~~~~~
In file included from include/linux/wait_bit.h:8,
from include/linux/fs.h:6,
from include/uapi/linux/aio_abi.h:31,
from include/linux/syscalls.h:74,
from arch/xtensa/kernel/syscall.c:24:
include/linux/wait.h:31:19: error: field 'entry' has incomplete type
struct list_head entry;
^~~~~
include/linux/wait.h:36:19: error: field 'head' has incomplete type
struct list_head head;
^~~~
include/linux/wait.h:79:20: error: invalid storage class for function 'init_waitqueue_entry'
static inline void init_waitqueue_entry(struct wait_queue_entry *wq_entry, struct task_struct *p)
^~~~~~~~~~~~~~~~~~~~
include/linux/wait.h:87:1: error: invalid storage class for function 'init_waitqueue_func_entry'
init_waitqueue_func_entry(struct wait_queue_entry *wq_entry, wait_queue_func_t func)
^~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/wait.h:124:19: error: invalid storage class for function 'waitqueue_active'
static inline int waitqueue_active(struct wait_queue_head *wq_head)
^~~~~~~~~~~~~~~~
include/linux/wait.h:137:20: error: invalid storage class for function 'wq_has_sleeper'
static inline bool wq_has_sleeper(struct wait_queue_head *wq_head)
^~~~~~~~~~~~~~
include/linux/wait.h:154:20: error: invalid storage class for function '__add_wait_queue'
static inline void __add_wait_queue(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry)
^~~~~~~~~~~~~~~~
include/linux/wait.h:163:1: error: invalid storage class for function '__add_wait_queue_exclusive'
__add_wait_queue_exclusive(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry)
^~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/wait.h:169:20: error: invalid storage class for function '__add_wait_queue_entry_tail'
static inline void __add_wait_queue_entry_tail(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/wait.h:175:1: error: invalid storage class for function '__add_wait_queue_entry_tail_exclusive'
__add_wait_queue_entry_tail_exclusive(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/wait.h:182:1: error: invalid storage class for function '__remove_wait_queue'
__remove_wait_queue(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry)
^~~~~~~~~~~~~~~~~~~
In file included from include/linux/fs.h:6,
from include/uapi/linux/aio_abi.h:31,
from include/linux/syscalls.h:74,
from arch/xtensa/kernel/syscall.c:24:
include/linux/wait_bit.h:71:1: error: invalid storage class for function 'wait_on_bit'
wait_on_bit(unsigned long *word, int bit, unsigned mode)
^~~~~~~~~~~
include/linux/wait_bit.h:96:1: error: invalid storage class for function 'wait_on_bit_io'
wait_on_bit_io(unsigned long *word, int bit, unsigned mode)
^~~~~~~~~~~~~~
include/linux/wait_bit.h:122:1: error: invalid storage class for function 'wait_on_bit_timeout'
wait_on_bit_timeout(unsigned long *word, int bit, unsigned mode,
^~~~~~~~~~~~~~~~~~~
include/linux/wait_bit.h:150:1: error: invalid storage class for function 'wait_on_bit_action'
wait_on_bit_action(unsigned long *word, int bit, wait_bit_action_f *action,
^~~~~~~~~~~~~~~~~~
include/linux/wait_bit.h:179:1: error: invalid storage class for function 'wait_on_bit_lock'
wait_on_bit_lock(unsigned long *word, int bit, unsigned mode)
^~~~~~~~~~~~~~~~
include/linux/wait_bit.h:203:1: error: invalid storage class for function 'wait_on_bit_lock_io'
wait_on_bit_lock_io(unsigned long *word, int bit, unsigned mode)
^~~~~~~~~~~~~~~~~~~
include/linux/wait_bit.h:229:1: error: invalid storage class for function 'wait_on_bit_lock_action'
wait_on_bit_lock_action(unsigned long *word, int bit, wait_bit_action_f *action,
^~~~~~~~~~~~~~~~~~~~~~~
include/linux/wait_bit.h:317:20: error: invalid storage class for function 'clear_and_wake_up_bit'
static inline void clear_and_wake_up_bit(int bit, void *word)
^~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/fs.h:7,
from include/uapi/linux/aio_abi.h:31,
from include/linux/syscalls.h:74,
from arch/xtensa/kernel/syscall.c:24:
include/linux/kdev_t.h:24:20: error: invalid storage class for function 'old_valid_dev'
static inline bool old_valid_dev(dev_t dev)
^~~~~~~~~~~~~
include/linux/kdev_t.h:29:19: error: invalid storage class for function 'old_encode_dev'
static inline u16 old_encode_dev(dev_t dev)
^~~~~~~~~~~~~~
include/linux/kdev_t.h:34:21: error: invalid storage class for function 'old_decode_dev'
static inline dev_t old_decode_dev(u16 val)
^~~~~~~~~~~~~~
include/linux/kdev_t.h:39:19: error: invalid storage class for function 'new_encode_dev'
static inline u32 new_encode_dev(dev_t dev)
^~~~~~~~~~~~~~
include/linux/kdev_t.h:46:21: error: invalid storage class for function 'new_decode_dev'
static inline dev_t new_decode_dev(u32 dev)
^~~~~~~~~~~~~~
include/linux/kdev_t.h:53:19: error: invalid storage class for function 'huge_encode_dev'
static inline u64 huge_encode_dev(dev_t dev)
^~~~~~~~~~~~~~~
include/linux/kdev_t.h:58:21: error: invalid storage class for function 'huge_decode_dev'
static inline dev_t huge_decode_dev(u64 dev)
^~~~~~~~~~~~~~~
include/linux/kdev_t.h:63:19: error: invalid storage class for function 'sysv_valid_dev'
static inline int sysv_valid_dev(dev_t dev)
^~~~~~~~~~~~~~
include/linux/kdev_t.h:68:19: error: invalid storage class for function 'sysv_encode_dev'
static inline u32 sysv_encode_dev(dev_t dev)
^~~~~~~~~~~~~~~
include/linux/kdev_t.h:73:24: error: invalid storage class for function 'sysv_major'

vim +/syscall_get_return_value +69 arch/xtensa/include/asm/syscall.h

62
63 static inline long
64 syscall_get_error(struct task_struct *task, struct pt_regs *regs)
65 {
> 66 return IS_ERR_VALUE(regs->areg[2]) ? regs->areg[2] : 0;
67
> 68 static inline long
> 69 syscall_get_return_value(struct task_struct *task, struct pt_regs *regs)
70 {
71 return regs->areg[2];
72 }
73
74 static inline int
> 75 syscall_get_arch(void)
76 {
77 return AUDIT_ARCH_XTENSA;
78 }
79

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

Attachment: .config.gz
Description: application/gzip