[arnd-playground:randconfig-5.16-next 137/151] arch/mips/include/asm/futex.h:132:1: warning: ISO C90 forbids mixed declarations and code

From: kernel test robot
Date: Sun Oct 31 2021 - 03:29:25 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git randconfig-5.16-next
head: d18f89e8161c4cf63dd554521b305dd3374b52b3
commit: 2db331c581c8cc2f8742223470ca5cdd8d7fc312 [137/151] [SUBMITTED 20211026] futex: ensure futex_atomic_cmpxchg_inatomic() is present
config: mips-ci20_defconfig (attached as .config)
compiler: mipsel-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git/commit/?id=2db331c581c8cc2f8742223470ca5cdd8d7fc312
git remote add arnd-playground https://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git
git fetch --no-tags arnd-playground randconfig-5.16-next
git checkout 2db331c581c8cc2f8742223470ca5cdd8d7fc312
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=mips

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

All warnings (new ones prefixed by >>):

In file included from kernel/futex/futex.h:12,
from kernel/futex/core.c:41:
arch/mips/include/asm/futex.h: In function 'arch_futex_atomic_op_inuser':
arch/mips/include/asm/futex.h:89:23: error: implicit declaration of function 'arch_futex_atomic_op_inuser_local'; did you mean 'futex_atomic_op_inuser_local'? [-Werror=implicit-function-declaration]
89 | ret = arch_futex_atomic_op_inuser_local(op, oparg, oval,\
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/mips/include/asm/futex.h:89:23: note: in definition of macro '__futex_atomic_op'
89 | ret = arch_futex_atomic_op_inuser_local(op, oparg, oval,\
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from kernel/futex/futex.h:12,
from kernel/futex/core.c:41:
arch/mips/include/asm/futex.h:23:39: error: invalid storage class for function 'futex_atomic_cmpxchg_inatomic'
23 | #define futex_atomic_cmpxchg_inatomic futex_atomic_cmpxchg_inatomic
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/mips/include/asm/futex.h:133:1: note: in expansion of macro 'futex_atomic_cmpxchg_inatomic'
133 | futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from kernel/futex/futex.h:12,
from kernel/futex/core.c:41:
>> arch/mips/include/asm/futex.h:132:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
132 | static inline int
| ^~~~~~
In file included from kernel/futex/core.c:41:
kernel/futex/futex.h:33:27: error: section attribute cannot be specified for local variables
33 | extern int __read_mostly futex_cmpxchg_enabled;
| ^~~~~~~~~~~~~~~~~~~~~
kernel/futex/futex.h:39:20: error: invalid storage class for function 'should_fail_futex'
39 | static inline bool should_fail_futex(bool fshared)
| ^~~~~~~~~~~~~~~~~
kernel/futex/futex.h:140:19: error: invalid storage class for function 'futex_match'
140 | static inline int futex_match(union futex_key *key1, union futex_key *key2)
| ^~~~~~~~~~~
kernel/futex/futex.h:175:20: error: invalid storage class for function 'futex_queue'
175 | static inline void futex_queue(struct futex_q *q, struct futex_hash_bucket *hb)
| ^~~~~~~~~~~
kernel/futex/futex.h:189:20: error: invalid storage class for function 'futex_hb_waiters_inc'
189 | static inline void futex_hb_waiters_inc(struct futex_hash_bucket *hb)
| ^~~~~~~~~~~~~~~~~~~~
kernel/futex/futex.h:204:20: error: invalid storage class for function 'futex_hb_waiters_dec'
204 | static inline void futex_hb_waiters_dec(struct futex_hash_bucket *hb)
| ^~~~~~~~~~~~~~~~~~~~
kernel/futex/futex.h:211:19: error: invalid storage class for function 'futex_hb_waiters_pending'
211 | static inline int futex_hb_waiters_pending(struct futex_hash_bucket *hb)
| ^~~~~~~~~~~~~~~~~~~~~~~~
kernel/futex/futex.h:244:1: error: invalid storage class for function 'double_lock_hb'
244 | double_lock_hb(struct futex_hash_bucket *hb1, struct futex_hash_bucket *hb2)
| ^~~~~~~~~~~~~~
kernel/futex/futex.h:255:1: error: invalid storage class for function 'double_unlock_hb'
255 | double_unlock_hb(struct futex_hash_bucket *hb1, struct futex_hash_bucket *hb2)
| ^~~~~~~~~~~~~~~~
In file included from kernel/futex/core.c:42:
kernel/futex/../locking/rtmutex_common.h:93:19: error: invalid storage class for function 'rt_mutex_has_waiters'
93 | static inline int rt_mutex_has_waiters(struct rt_mutex_base *lock)
| ^~~~~~~~~~~~~~~~~~~~
kernel/futex/../locking/rtmutex_common.h:103:20: error: invalid storage class for function 'rt_mutex_waiter_is_top_waiter'
103 | static inline bool rt_mutex_waiter_is_top_waiter(struct rt_mutex_base *lock,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/futex/../locking/rtmutex_common.h:111:39: error: invalid storage class for function 'rt_mutex_top_waiter'
111 | static inline struct rt_mutex_waiter *rt_mutex_top_waiter(struct rt_mutex_base *lock)
| ^~~~~~~~~~~~~~~~~~~
kernel/futex/../locking/rtmutex_common.h:123:19: error: invalid storage class for function 'task_has_pi_waiters'
123 | static inline int task_has_pi_waiters(struct task_struct *p)
| ^~~~~~~~~~~~~~~~~~~
kernel/futex/../locking/rtmutex_common.h:128:39: error: invalid storage class for function 'task_top_pi_waiter'
128 | static inline struct rt_mutex_waiter *task_top_pi_waiter(struct task_struct *p)
| ^~~~~~~~~~~~~~~~~~
kernel/futex/../locking/rtmutex_common.h:136:35: error: invalid storage class for function 'rt_mutex_owner'
136 | static inline struct task_struct *rt_mutex_owner(struct rt_mutex_base *lock)
| ^~~~~~~~~~~~~~
kernel/futex/../locking/rtmutex_common.h:158:20: error: invalid storage class for function '__rt_mutex_base_init'
158 | static inline void __rt_mutex_base_init(struct rt_mutex_base *lock)
| ^~~~~~~~~~~~~~~~~~~~
kernel/futex/../locking/rtmutex_common.h:166:20: error: invalid storage class for function 'debug_rt_mutex_unlock'
166 | static inline void debug_rt_mutex_unlock(struct rt_mutex_base *lock)
| ^~~~~~~~~~~~~~~~~~~~~
kernel/futex/../locking/rtmutex_common.h:172:20: error: invalid storage class for function 'debug_rt_mutex_proxy_unlock'
172 | static inline void debug_rt_mutex_proxy_unlock(struct rt_mutex_base *lock)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/futex/../locking/rtmutex_common.h:178:20: error: invalid storage class for function 'debug_rt_mutex_init_waiter'
178 | static inline void debug_rt_mutex_init_waiter(struct rt_mutex_waiter *waiter)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/futex/../locking/rtmutex_common.h:184:20: error: invalid storage class for function 'debug_rt_mutex_free_waiter'
184 | static inline void debug_rt_mutex_free_waiter(struct rt_mutex_waiter *waiter)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/futex/../locking/rtmutex_common.h:190:20: error: invalid storage class for function 'rt_mutex_init_waiter'
190 | static inline void rt_mutex_init_waiter(struct rt_mutex_waiter *waiter)
| ^~~~~~~~~~~~~~~~~~~~
kernel/futex/../locking/rtmutex_common.h:199:20: error: invalid storage class for function 'rt_mutex_init_rtlock_waiter'
199 | static inline void rt_mutex_init_rtlock_waiter(struct rt_mutex_waiter *waiter)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/futex/core.c:45:20: error: section attribute cannot be specified for local variables
45 | int __read_mostly futex_cmpxchg_enabled;
| ^~~~~~~~~~~~~~~~~~~~~
kernel/futex/core.c:45:20: error: declaration of 'futex_cmpxchg_enabled' with no linkage follows extern declaration
In file included from kernel/futex/core.c:41:
kernel/futex/futex.h:33:27: note: previous declaration of 'futex_cmpxchg_enabled' with type 'int'
33 | extern int __read_mostly futex_cmpxchg_enabled;
| ^~~~~~~~~~~~~~~~~~~~~
kernel/futex/core.c:120:27: error: static declaration of 'futex_hash' follows non-static declaration
120 | struct futex_hash_bucket *futex_hash(union futex_key *key)
| ^~~~~~~~~~
In file included from kernel/futex/core.c:41:
kernel/futex/futex.h:131:34: note: previous declaration of 'futex_hash' with type 'struct futex_hash_bucket *(union futex_key *)'
131 | extern struct futex_hash_bucket *futex_hash(union futex_key *key);
| ^~~~~~~~~~
kernel/futex/core.c:140:1: error: static declaration of 'futex_setup_timer' follows non-static declaration
140 | futex_setup_timer(ktime_t *time, struct hrtimer_sleeper *timeout,
| ^~~~~~~~~~~~~~~~~
In file included from kernel/futex/core.c:41:
kernel/futex/futex.h:128:1: note: previous declaration of 'futex_setup_timer' with type 'struct hrtimer_sleeper *(ktime_t *, struct hrtimer_sleeper *, int, u64)' {aka 'struct hrtimer_sleeper *(long long int *, struct hrtimer_sleeper *, int, long long unsigned int)'}
128 | futex_setup_timer(ktime_t *time, struct hrtimer_sleeper *timeout,
| ^~~~~~~~~~~~~~~~~
kernel/futex/core.c:176:12: error: invalid storage class for function 'get_inode_sequence_number'
176 | static u64 get_inode_sequence_number(struct inode *inode)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
kernel/futex/core.c:225:5: error: static declaration of 'get_futex_key' follows non-static declaration
225 | int get_futex_key(u32 __user *uaddr, bool fshared, union futex_key *key,
| ^~~~~~~~~~~~~
In file included from kernel/futex/core.c:41:
kernel/futex/futex.h:124:12: note: previous declaration of 'get_futex_key' with type 'int(u32 *, bool, union futex_key *, enum futex_access)' {aka 'int(unsigned int *, _Bool, union futex_key *, enum futex_access)'}
--
In file included from kernel/futex/futex.h:12,
from kernel/futex/syscalls.c:7:
arch/mips/include/asm/futex.h: In function 'arch_futex_atomic_op_inuser':
arch/mips/include/asm/futex.h:89:23: error: implicit declaration of function 'arch_futex_atomic_op_inuser_local'; did you mean 'futex_atomic_op_inuser_local'? [-Werror=implicit-function-declaration]
89 | ret = arch_futex_atomic_op_inuser_local(op, oparg, oval,\
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/mips/include/asm/futex.h:89:23: note: in definition of macro '__futex_atomic_op'
89 | ret = arch_futex_atomic_op_inuser_local(op, oparg, oval,\
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from kernel/futex/futex.h:12,
from kernel/futex/syscalls.c:7:
arch/mips/include/asm/futex.h:23:39: error: invalid storage class for function 'futex_atomic_cmpxchg_inatomic'
23 | #define futex_atomic_cmpxchg_inatomic futex_atomic_cmpxchg_inatomic
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/mips/include/asm/futex.h:133:1: note: in expansion of macro 'futex_atomic_cmpxchg_inatomic'
133 | futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from kernel/futex/futex.h:12,
from kernel/futex/syscalls.c:7:
>> arch/mips/include/asm/futex.h:132:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
132 | static inline int
| ^~~~~~
In file included from kernel/futex/syscalls.c:7:
kernel/futex/futex.h:33:27: error: section attribute cannot be specified for local variables
33 | extern int __read_mostly futex_cmpxchg_enabled;
| ^~~~~~~~~~~~~~~~~~~~~
kernel/futex/futex.h:39:20: error: invalid storage class for function 'should_fail_futex'
39 | static inline bool should_fail_futex(bool fshared)
| ^~~~~~~~~~~~~~~~~
kernel/futex/futex.h:140:19: error: invalid storage class for function 'futex_match'
140 | static inline int futex_match(union futex_key *key1, union futex_key *key2)
| ^~~~~~~~~~~
kernel/futex/futex.h:175:20: error: invalid storage class for function 'futex_queue'
175 | static inline void futex_queue(struct futex_q *q, struct futex_hash_bucket *hb)
| ^~~~~~~~~~~
kernel/futex/futex.h:189:20: error: invalid storage class for function 'futex_hb_waiters_inc'
189 | static inline void futex_hb_waiters_inc(struct futex_hash_bucket *hb)
| ^~~~~~~~~~~~~~~~~~~~
kernel/futex/futex.h:204:20: error: invalid storage class for function 'futex_hb_waiters_dec'
204 | static inline void futex_hb_waiters_dec(struct futex_hash_bucket *hb)
| ^~~~~~~~~~~~~~~~~~~~
kernel/futex/futex.h:211:19: error: invalid storage class for function 'futex_hb_waiters_pending'
211 | static inline int futex_hb_waiters_pending(struct futex_hash_bucket *hb)
| ^~~~~~~~~~~~~~~~~~~~~~~~
kernel/futex/futex.h:244:1: error: invalid storage class for function 'double_lock_hb'
244 | double_lock_hb(struct futex_hash_bucket *hb1, struct futex_hash_bucket *hb2)
| ^~~~~~~~~~~~~~
kernel/futex/futex.h:255:1: error: invalid storage class for function 'double_unlock_hb'
255 | double_unlock_hb(struct futex_hash_bucket *hb1, struct futex_hash_bucket *hb2)
| ^~~~~~~~~~~~~~~~
In file included from kernel/futex/syscalls.c:4:
>> kernel/futex/syscalls.c:29:41: warning: 'alias' attribute ignored [-Wattributes]
29 | SYSCALL_DEFINE2(set_robust_list, struct robust_list_head __user *, head,
| ^~~~~~~~~~~~~~~~
include/linux/syscalls.h:119:25: note: in definition of macro '__SC_DECL'
119 | #define __SC_DECL(t, a) t a
| ^
include/linux/syscalls.h:117:22: note: in expansion of macro '__MAP2'
117 | #define __MAP(n,...) __MAP##n(__VA_ARGS__)
| ^~~~~
include/linux/syscalls.h:243:35: note: in expansion of macro '__MAP'
243 | asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
| ^~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:219:36: note: in expansion of macro 'SYSCALL_DEFINEx'
219 | #define SYSCALL_DEFINE2(name, ...) SYSCALL_DEFINEx(2, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:29:1: note: in expansion of macro 'SYSCALL_DEFINE2'
29 | SYSCALL_DEFINE2(set_robust_list, struct robust_list_head __user *, head,
| ^~~~~~~~~~~~~~~
>> include/linux/syscalls.h:243:20: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
243 | asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
| ^~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:219:36: note: in expansion of macro 'SYSCALL_DEFINEx'
219 | #define SYSCALL_DEFINE2(name, ...) SYSCALL_DEFINEx(2, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:29:1: note: in expansion of macro 'SYSCALL_DEFINE2'
29 | SYSCALL_DEFINE2(set_robust_list, struct robust_list_head __user *, head,
| ^~~~~~~~~~~~~~~
include/linux/syscalls.h:246:28: error: invalid storage class for function '__do_sys_set_robust_list'
246 | static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
| ^~~~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:219:36: note: in expansion of macro 'SYSCALL_DEFINEx'
219 | #define SYSCALL_DEFINE2(name, ...) SYSCALL_DEFINEx(2, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:29:1: note: in expansion of macro 'SYSCALL_DEFINE2'
29 | SYSCALL_DEFINE2(set_robust_list, struct robust_list_head __user *, head,
| ^~~~~~~~~~~~~~~
include/linux/syscalls.h:246:9: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
246 | static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
| ^~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:219:36: note: in expansion of macro 'SYSCALL_DEFINEx'
219 | #define SYSCALL_DEFINE2(name, ...) SYSCALL_DEFINEx(2, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:29:1: note: in expansion of macro 'SYSCALL_DEFINE2'
29 | SYSCALL_DEFINE2(set_robust_list, struct robust_list_head __user *, head,
| ^~~~~~~~~~~~~~~
include/linux/syscalls.h:248:25: error: static declaration of '__se_sys_set_robust_list' follows non-static declaration
248 | asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
| ^~~~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:219:36: note: in expansion of macro 'SYSCALL_DEFINEx'
219 | #define SYSCALL_DEFINE2(name, ...) SYSCALL_DEFINEx(2, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:29:1: note: in expansion of macro 'SYSCALL_DEFINE2'
29 | SYSCALL_DEFINE2(set_robust_list, struct robust_list_head __user *, head,
| ^~~~~~~~~~~~~~~
include/linux/syscalls.h:247:25: note: previous declaration of '__se_sys_set_robust_list' with type 'long int(long int, long int)'
247 | asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)); \
| ^~~~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:219:36: note: in expansion of macro 'SYSCALL_DEFINEx'
219 | #define SYSCALL_DEFINE2(name, ...) SYSCALL_DEFINEx(2, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:29:1: note: in expansion of macro 'SYSCALL_DEFINE2'
29 | SYSCALL_DEFINE2(set_robust_list, struct robust_list_head __user *, head,
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c: In function '__se_sys_set_robust_list':
include/linux/syscalls.h:250:28: error: implicit declaration of function '__do_sys_set_robust_list'; did you mean '__se_sys_set_robust_list'? [-Werror=implicit-function-declaration]
250 | long ret = __do_sys##name(__MAP(x,__SC_CAST,__VA_ARGS__));\
| ^~~~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:219:36: note: in expansion of macro 'SYSCALL_DEFINEx'
219 | #define SYSCALL_DEFINE2(name, ...) SYSCALL_DEFINEx(2, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:29:1: note: in expansion of macro 'SYSCALL_DEFINE2'
29 | SYSCALL_DEFINE2(set_robust_list, struct robust_list_head __user *, head,
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c: In function 'arch_futex_atomic_op_inuser':
include/linux/syscalls.h:256:28: error: invalid storage class for function '__do_sys_set_robust_list'
256 | static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
| ^~~~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:219:36: note: in expansion of macro 'SYSCALL_DEFINEx'
219 | #define SYSCALL_DEFINE2(name, ...) SYSCALL_DEFINEx(2, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:29:1: note: in expansion of macro 'SYSCALL_DEFINE2'
29 | SYSCALL_DEFINE2(set_robust_list, struct robust_list_head __user *, head,
| ^~~~~~~~~~~~~~~
include/linux/syscalls.h:256:9: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
256 | static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
| ^~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:219:36: note: in expansion of macro 'SYSCALL_DEFINEx'
219 | #define SYSCALL_DEFINE2(name, ...) SYSCALL_DEFINEx(2, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:29:1: note: in expansion of macro 'SYSCALL_DEFINE2'
29 | SYSCALL_DEFINE2(set_robust_list, struct robust_list_head __user *, head,
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:52:24: warning: 'alias' attribute ignored [-Wattributes]
52 | struct robust_list_head __user * __user *, head_ptr,
| ^~~~~~~~~~~~~~~~
include/linux/syscalls.h:119:25: note: in definition of macro '__SC_DECL'
119 | #define __SC_DECL(t, a) t a
| ^
include/linux/syscalls.h:113:35: note: in expansion of macro '__MAP2'
113 | #define __MAP3(m,t,a,...) m(t,a), __MAP2(m,__VA_ARGS__)
| ^~~~~~
include/linux/syscalls.h:117:22: note: in expansion of macro '__MAP3'
117 | #define __MAP(n,...) __MAP##n(__VA_ARGS__)
| ^~~~~
include/linux/syscalls.h:243:35: note: in expansion of macro '__MAP'
243 | asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
| ^~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:220:36: note: in expansion of macro 'SYSCALL_DEFINEx'
220 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:51:1: note: in expansion of macro 'SYSCALL_DEFINE3'
51 | SYSCALL_DEFINE3(get_robust_list, int, pid,
| ^~~~~~~~~~~~~~~
>> include/linux/syscalls.h:243:20: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
243 | asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
| ^~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:220:36: note: in expansion of macro 'SYSCALL_DEFINEx'
220 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:51:1: note: in expansion of macro 'SYSCALL_DEFINE3'
51 | SYSCALL_DEFINE3(get_robust_list, int, pid,
| ^~~~~~~~~~~~~~~
include/linux/syscalls.h:246:28: error: invalid storage class for function '__do_sys_get_robust_list'
246 | static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
| ^~~~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:220:36: note: in expansion of macro 'SYSCALL_DEFINEx'
220 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:51:1: note: in expansion of macro 'SYSCALL_DEFINE3'
51 | SYSCALL_DEFINE3(get_robust_list, int, pid,
| ^~~~~~~~~~~~~~~
include/linux/syscalls.h:246:9: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
246 | static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
| ^~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:220:36: note: in expansion of macro 'SYSCALL_DEFINEx'
220 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:51:1: note: in expansion of macro 'SYSCALL_DEFINE3'
51 | SYSCALL_DEFINE3(get_robust_list, int, pid,
| ^~~~~~~~~~~~~~~
include/linux/syscalls.h:248:25: error: static declaration of '__se_sys_get_robust_list' follows non-static declaration
248 | asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
| ^~~~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:220:36: note: in expansion of macro 'SYSCALL_DEFINEx'
220 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:51:1: note: in expansion of macro 'SYSCALL_DEFINE3'
51 | SYSCALL_DEFINE3(get_robust_list, int, pid,
| ^~~~~~~~~~~~~~~
include/linux/syscalls.h:247:25: note: previous declaration of '__se_sys_get_robust_list' with type 'long int(long int, long int, long int)'
247 | asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)); \
| ^~~~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:220:36: note: in expansion of macro 'SYSCALL_DEFINEx'
220 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:51:1: note: in expansion of macro 'SYSCALL_DEFINE3'
51 | SYSCALL_DEFINE3(get_robust_list, int, pid,
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c: In function '__se_sys_get_robust_list':
include/linux/syscalls.h:250:28: error: implicit declaration of function '__do_sys_get_robust_list'; did you mean '__do_sys_set_robust_list'? [-Werror=implicit-function-declaration]
250 | long ret = __do_sys##name(__MAP(x,__SC_CAST,__VA_ARGS__));\
| ^~~~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:220:36: note: in expansion of macro 'SYSCALL_DEFINEx'
220 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:51:1: note: in expansion of macro 'SYSCALL_DEFINE3'
51 | SYSCALL_DEFINE3(get_robust_list, int, pid,
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c: In function 'arch_futex_atomic_op_inuser':
include/linux/syscalls.h:256:28: error: invalid storage class for function '__do_sys_get_robust_list'
256 | static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
| ^~~~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:220:36: note: in expansion of macro 'SYSCALL_DEFINEx'
220 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:51:1: note: in expansion of macro 'SYSCALL_DEFINE3'
51 | SYSCALL_DEFINE3(get_robust_list, int, pid,
| ^~~~~~~~~~~~~~~
include/linux/syscalls.h:256:9: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
256 | static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
| ^~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:220:36: note: in expansion of macro 'SYSCALL_DEFINEx'
220 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:51:1: note: in expansion of macro 'SYSCALL_DEFINE3'
51 | SYSCALL_DEFINE3(get_robust_list, int, pid,
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:153:29: error: invalid storage class for function 'futex_cmd_has_timeout'
153 | static __always_inline bool futex_cmd_has_timeout(u32 cmd)
| ^~~~~~~~~~~~~~~~~~~~~
kernel/futex/syscalls.c:167:1: error: invalid storage class for function 'futex_init_timeout'
167 | futex_init_timeout(u32 cmd, u32 op, struct timespec64 *ts, ktime_t *t)
| ^~~~~~~~~~~~~~~~~~
In file included from kernel/futex/syscalls.c:4:
kernel/futex/syscalls.c:181:30: warning: 'alias' attribute ignored [-Wattributes]
181 | const struct __kernel_timespec __user *, utime,
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:119:25: note: in definition of macro '__SC_DECL'
119 | #define __SC_DECL(t, a) t a
| ^
include/linux/syscalls.h:114:35: note: in expansion of macro '__MAP3'
114 | #define __MAP4(m,t,a,...) m(t,a), __MAP3(m,__VA_ARGS__)
| ^~~~~~
include/linux/syscalls.h:115:35: note: in expansion of macro '__MAP4'
115 | #define __MAP5(m,t,a,...) m(t,a), __MAP4(m,__VA_ARGS__)
| ^~~~~~
include/linux/syscalls.h:116:35: note: in expansion of macro '__MAP5'
116 | #define __MAP6(m,t,a,...) m(t,a), __MAP5(m,__VA_ARGS__)
| ^~~~~~
include/linux/syscalls.h:117:22: note: in expansion of macro '__MAP6'
117 | #define __MAP(n,...) __MAP##n(__VA_ARGS__)
| ^~~~~
include/linux/syscalls.h:243:35: note: in expansion of macro '__MAP'
243 | asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
| ^~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:223:36: note: in expansion of macro 'SYSCALL_DEFINEx'
223 | #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:180:1: note: in expansion of macro 'SYSCALL_DEFINE6'
180 | SYSCALL_DEFINE6(futex, u32 __user *, uaddr, int, op, u32, val,
| ^~~~~~~~~~~~~~~
>> include/linux/syscalls.h:243:20: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
243 | asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
| ^~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:223:36: note: in expansion of macro 'SYSCALL_DEFINEx'
223 | #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:180:1: note: in expansion of macro 'SYSCALL_DEFINE6'
180 | SYSCALL_DEFINE6(futex, u32 __user *, uaddr, int, op, u32, val,
| ^~~~~~~~~~~~~~~
include/linux/syscalls.h:246:28: error: invalid storage class for function '__do_sys_futex'
246 | static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
| ^~~~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:223:36: note: in expansion of macro 'SYSCALL_DEFINEx'
223 | #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:180:1: note: in expansion of macro 'SYSCALL_DEFINE6'
180 | SYSCALL_DEFINE6(futex, u32 __user *, uaddr, int, op, u32, val,
| ^~~~~~~~~~~~~~~
include/linux/syscalls.h:246:9: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
246 | static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
| ^~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:223:36: note: in expansion of macro 'SYSCALL_DEFINEx'
223 | #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:180:1: note: in expansion of macro 'SYSCALL_DEFINE6'
180 | SYSCALL_DEFINE6(futex, u32 __user *, uaddr, int, op, u32, val,
| ^~~~~~~~~~~~~~~
include/linux/syscalls.h:248:25: error: static declaration of '__se_sys_futex' follows non-static declaration
248 | asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
| ^~~~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:223:36: note: in expansion of macro 'SYSCALL_DEFINEx'
223 | #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:180:1: note: in expansion of macro 'SYSCALL_DEFINE6'
180 | SYSCALL_DEFINE6(futex, u32 __user *, uaddr, int, op, u32, val,
| ^~~~~~~~~~~~~~~
include/linux/syscalls.h:247:25: note: previous declaration of '__se_sys_futex' with type 'long int(long int, long int, long int, long int, long int, long int)'
247 | asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)); \
| ^~~~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:223:36: note: in expansion of macro 'SYSCALL_DEFINEx'
223 | #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:180:1: note: in expansion of macro 'SYSCALL_DEFINE6'
180 | SYSCALL_DEFINE6(futex, u32 __user *, uaddr, int, op, u32, val,
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c: In function '__se_sys_futex':
include/linux/syscalls.h:250:28: error: implicit declaration of function '__do_sys_futex'; did you mean '__se_sys_futex'? [-Werror=implicit-function-declaration]
250 | long ret = __do_sys##name(__MAP(x,__SC_CAST,__VA_ARGS__));\
| ^~~~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:223:36: note: in expansion of macro 'SYSCALL_DEFINEx'
223 | #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:180:1: note: in expansion of macro 'SYSCALL_DEFINE6'
180 | SYSCALL_DEFINE6(futex, u32 __user *, uaddr, int, op, u32, val,
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c: In function 'arch_futex_atomic_op_inuser':
include/linux/syscalls.h:256:28: error: invalid storage class for function '__do_sys_futex'
256 | static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
| ^~~~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:223:36: note: in expansion of macro 'SYSCALL_DEFINEx'
223 | #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:180:1: note: in expansion of macro 'SYSCALL_DEFINE6'
180 | SYSCALL_DEFINE6(futex, u32 __user *, uaddr, int, op, u32, val,
| ^~~~~~~~~~~~~~~
include/linux/syscalls.h:256:9: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
256 | static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
| ^~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:223:36: note: in expansion of macro 'SYSCALL_DEFINEx'
223 | #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:180:1: note: in expansion of macro 'SYSCALL_DEFINE6'
180 | SYSCALL_DEFINE6(futex, u32 __user *, uaddr, int, op, u32, val,
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:213:12: error: invalid storage class for function 'futex_parse_waitv'
213 | static int futex_parse_waitv(struct futex_vector *futexv,
| ^~~~~~~~~~~~~~~~~
In file included from kernel/futex/syscalls.c:4:
kernel/futex/syscalls.c:264:24: warning: 'alias' attribute ignored [-Wattributes]
264 | struct __kernel_timespec __user *, timeout, clockid_t, clockid)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:119:25: note: in definition of macro '__SC_DECL'
119 | #define __SC_DECL(t, a) t a
| ^
include/linux/syscalls.h:113:35: note: in expansion of macro '__MAP2'
113 | #define __MAP3(m,t,a,...) m(t,a), __MAP2(m,__VA_ARGS__)
| ^~~~~~
include/linux/syscalls.h:114:35: note: in expansion of macro '__MAP3'
114 | #define __MAP4(m,t,a,...) m(t,a), __MAP3(m,__VA_ARGS__)
| ^~~~~~
include/linux/syscalls.h:115:35: note: in expansion of macro '__MAP4'
115 | #define __MAP5(m,t,a,...) m(t,a), __MAP4(m,__VA_ARGS__)
| ^~~~~~
include/linux/syscalls.h:117:22: note: in expansion of macro '__MAP5'
117 | #define __MAP(n,...) __MAP##n(__VA_ARGS__)
| ^~~~~
include/linux/syscalls.h:243:35: note: in expansion of macro '__MAP'
243 | asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
| ^~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:222:36: note: in expansion of macro 'SYSCALL_DEFINEx'
222 | #define SYSCALL_DEFINE5(name, ...) SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:262:1: note: in expansion of macro 'SYSCALL_DEFINE5'
262 | SYSCALL_DEFINE5(futex_waitv, struct futex_waitv __user *, waiters,
| ^~~~~~~~~~~~~~~
>> include/linux/syscalls.h:243:20: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
243 | asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
| ^~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:222:36: note: in expansion of macro 'SYSCALL_DEFINEx'
222 | #define SYSCALL_DEFINE5(name, ...) SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:262:1: note: in expansion of macro 'SYSCALL_DEFINE5'
262 | SYSCALL_DEFINE5(futex_waitv, struct futex_waitv __user *, waiters,
| ^~~~~~~~~~~~~~~
include/linux/syscalls.h:246:28: error: invalid storage class for function '__do_sys_futex_waitv'
246 | static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
| ^~~~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:222:36: note: in expansion of macro 'SYSCALL_DEFINEx'
222 | #define SYSCALL_DEFINE5(name, ...) SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:262:1: note: in expansion of macro 'SYSCALL_DEFINE5'
262 | SYSCALL_DEFINE5(futex_waitv, struct futex_waitv __user *, waiters,
| ^~~~~~~~~~~~~~~
include/linux/syscalls.h:246:9: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
246 | static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
| ^~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:222:36: note: in expansion of macro 'SYSCALL_DEFINEx'
222 | #define SYSCALL_DEFINE5(name, ...) SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:262:1: note: in expansion of macro 'SYSCALL_DEFINE5'
262 | SYSCALL_DEFINE5(futex_waitv, struct futex_waitv __user *, waiters,
| ^~~~~~~~~~~~~~~
include/linux/syscalls.h:248:25: error: static declaration of '__se_sys_futex_waitv' follows non-static declaration
248 | asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
| ^~~~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:222:36: note: in expansion of macro 'SYSCALL_DEFINEx'
222 | #define SYSCALL_DEFINE5(name, ...) SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:262:1: note: in expansion of macro 'SYSCALL_DEFINE5'
262 | SYSCALL_DEFINE5(futex_waitv, struct futex_waitv __user *, waiters,
| ^~~~~~~~~~~~~~~
include/linux/syscalls.h:247:25: note: previous declaration of '__se_sys_futex_waitv' with type 'long int(long int, long int, long int, long int, long int)'
247 | asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)); \
| ^~~~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:222:36: note: in expansion of macro 'SYSCALL_DEFINEx'
222 | #define SYSCALL_DEFINE5(name, ...) SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:262:1: note: in expansion of macro 'SYSCALL_DEFINE5'
262 | SYSCALL_DEFINE5(futex_waitv, struct futex_waitv __user *, waiters,
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c: In function '__se_sys_futex_waitv':
include/linux/syscalls.h:250:28: error: implicit declaration of function '__do_sys_futex_waitv'; did you mean '__se_sys_futex_waitv'? [-Werror=implicit-function-declaration]
250 | long ret = __do_sys##name(__MAP(x,__SC_CAST,__VA_ARGS__));\
| ^~~~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:222:36: note: in expansion of macro 'SYSCALL_DEFINEx'
222 | #define SYSCALL_DEFINE5(name, ...) SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:262:1: note: in expansion of macro 'SYSCALL_DEFINE5'
262 | SYSCALL_DEFINE5(futex_waitv, struct futex_waitv __user *, waiters,
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c: In function 'arch_futex_atomic_op_inuser':
include/linux/syscalls.h:256:28: error: invalid storage class for function '__do_sys_futex_waitv'
256 | static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
| ^~~~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:222:36: note: in expansion of macro 'SYSCALL_DEFINEx'
222 | #define SYSCALL_DEFINE5(name, ...) SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:262:1: note: in expansion of macro 'SYSCALL_DEFINE5'
262 | SYSCALL_DEFINE5(futex_waitv, struct futex_waitv __user *, waiters,
| ^~~~~~~~~~~~~~~
include/linux/syscalls.h:256:9: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
256 | static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
| ^~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:222:36: note: in expansion of macro 'SYSCALL_DEFINEx'
222 | #define SYSCALL_DEFINE5(name, ...) SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:262:1: note: in expansion of macro 'SYSCALL_DEFINE5'
262 | SYSCALL_DEFINE5(futex_waitv, struct futex_waitv __user *, waiters,
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:379:30: warning: 'alias' attribute ignored [-Wattributes]
379 | const struct old_timespec32 __user *, utime, u32 __user *, uaddr2,
| ^~~~~~~~~~~~~~
include/linux/syscalls.h:119:25: note: in definition of macro '__SC_DECL'
119 | #define __SC_DECL(t, a) t a
| ^
include/linux/syscalls.h:114:35: note: in expansion of macro '__MAP3'
114 | #define __MAP4(m,t,a,...) m(t,a), __MAP3(m,__VA_ARGS__)
| ^~~~~~
include/linux/syscalls.h:115:35: note: in expansion of macro '__MAP4'
115 | #define __MAP5(m,t,a,...) m(t,a), __MAP4(m,__VA_ARGS__)
| ^~~~~~
include/linux/syscalls.h:116:35: note: in expansion of macro '__MAP5'
116 | #define __MAP6(m,t,a,...) m(t,a), __MAP5(m,__VA_ARGS__)
| ^~~~~~
include/linux/syscalls.h:117:22: note: in expansion of macro '__MAP6'
117 | #define __MAP(n,...) __MAP##n(__VA_ARGS__)
| ^~~~~
include/linux/syscalls.h:243:35: note: in expansion of macro '__MAP'
243 | asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
| ^~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:223:36: note: in expansion of macro 'SYSCALL_DEFINEx'
223 | #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:378:1: note: in expansion of macro 'SYSCALL_DEFINE6'
378 | SYSCALL_DEFINE6(futex_time32, u32 __user *, uaddr, int, op, u32, val,
| ^~~~~~~~~~~~~~~
>> include/linux/syscalls.h:243:20: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
243 | asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
| ^~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:223:36: note: in expansion of macro 'SYSCALL_DEFINEx'
223 | #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:378:1: note: in expansion of macro 'SYSCALL_DEFINE6'
378 | SYSCALL_DEFINE6(futex_time32, u32 __user *, uaddr, int, op, u32, val,
| ^~~~~~~~~~~~~~~
include/linux/syscalls.h:246:28: error: invalid storage class for function '__do_sys_futex_time32'
246 | static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
| ^~~~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:223:36: note: in expansion of macro 'SYSCALL_DEFINEx'
223 | #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:378:1: note: in expansion of macro 'SYSCALL_DEFINE6'
378 | SYSCALL_DEFINE6(futex_time32, u32 __user *, uaddr, int, op, u32, val,
| ^~~~~~~~~~~~~~~
include/linux/syscalls.h:246:9: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
246 | static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
| ^~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:223:36: note: in expansion of macro 'SYSCALL_DEFINEx'
223 | #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:378:1: note: in expansion of macro 'SYSCALL_DEFINE6'
378 | SYSCALL_DEFINE6(futex_time32, u32 __user *, uaddr, int, op, u32, val,
| ^~~~~~~~~~~~~~~
include/linux/syscalls.h:248:25: error: static declaration of '__se_sys_futex_time32' follows non-static declaration
248 | asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
| ^~~~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:223:36: note: in expansion of macro 'SYSCALL_DEFINEx'
223 | #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:378:1: note: in expansion of macro 'SYSCALL_DEFINE6'
378 | SYSCALL_DEFINE6(futex_time32, u32 __user *, uaddr, int, op, u32, val,
| ^~~~~~~~~~~~~~~
include/linux/syscalls.h:247:25: note: previous declaration of '__se_sys_futex_time32' with type 'long int(long int, long int, long int, long int, long int, long int)'
247 | asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)); \
| ^~~~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:223:36: note: in expansion of macro 'SYSCALL_DEFINEx'
223 | #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:378:1: note: in expansion of macro 'SYSCALL_DEFINE6'
378 | SYSCALL_DEFINE6(futex_time32, u32 __user *, uaddr, int, op, u32, val,
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c: In function '__se_sys_futex_time32':
include/linux/syscalls.h:250:28: error: implicit declaration of function '__do_sys_futex_time32'; did you mean '__se_sys_futex_time32'? [-Werror=implicit-function-declaration]
250 | long ret = __do_sys##name(__MAP(x,__SC_CAST,__VA_ARGS__));\
| ^~~~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:223:36: note: in expansion of macro 'SYSCALL_DEFINEx'
223 | #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:378:1: note: in expansion of macro 'SYSCALL_DEFINE6'
378 | SYSCALL_DEFINE6(futex_time32, u32 __user *, uaddr, int, op, u32, val,
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c: In function 'arch_futex_atomic_op_inuser':
include/linux/syscalls.h:256:28: error: invalid storage class for function '__do_sys_futex_time32'
256 | static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
| ^~~~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:223:36: note: in expansion of macro 'SYSCALL_DEFINEx'
223 | #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:378:1: note: in expansion of macro 'SYSCALL_DEFINE6'
378 | SYSCALL_DEFINE6(futex_time32, u32 __user *, uaddr, int, op, u32, val,
| ^~~~~~~~~~~~~~~
include/linux/syscalls.h:256:9: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
256 | static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
| ^~~~~~
include/linux/syscalls.h:229:9: note: in expansion of macro '__SYSCALL_DEFINEx'
229 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:223:36: note: in expansion of macro 'SYSCALL_DEFINEx'
223 | #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:378:1: note: in expansion of macro 'SYSCALL_DEFINE6'
378 | SYSCALL_DEFINE6(futex_time32, u32 __user *, uaddr, int, op, u32, val,
| ^~~~~~~~~~~~~~~
kernel/futex/syscalls.c:396:1: error: expected declaration or statement at end of input
396 | }
| ^
..


vim +132 arch/mips/include/asm/futex.h

4732efbeb99718 include/asm-mips/futex.h Jakub Jelinek 2005-09-06 21
2db331c581c8cc arch/mips/include/asm/futex.h Arnd Bergmann 2020-12-15 22 #define arch_futex_atomic_op_inuser arch_futex_atomic_op_inuser
2db331c581c8cc arch/mips/include/asm/futex.h Arnd Bergmann 2020-12-15 @23 #define futex_atomic_cmpxchg_inatomic futex_atomic_cmpxchg_inatomic
2db331c581c8cc arch/mips/include/asm/futex.h Arnd Bergmann 2020-12-15 24 #include <asm-generic/futex.h>
2db331c581c8cc arch/mips/include/asm/futex.h Arnd Bergmann 2020-12-15 25
2db331c581c8cc arch/mips/include/asm/futex.h Arnd Bergmann 2020-12-15 26 #define __futex_atomic_op(op, insn, ret, oldval, uaddr, oparg) \
ebfaebae364c36 include/asm-mips/futex.h Ralf Baechle 2005-09-15 27 { \
256ec489f1c772 arch/mips/include/asm/futex.h Thomas Bogendoerfer 2020-08-24 28 if (cpu_has_llsc && IS_ENABLED(CONFIG_WAR_R10000_LLSC)) { \
ebfaebae364c36 include/asm-mips/futex.h Ralf Baechle 2005-09-15 29 __asm__ __volatile__( \
ebfaebae364c36 include/asm-mips/futex.h Ralf Baechle 2005-09-15 30 " .set push \n" \
ebfaebae364c36 include/asm-mips/futex.h Ralf Baechle 2005-09-15 31 " .set noat \n" \
378ed6f0e3c525 arch/mips/include/asm/futex.h Paul Burton 2018-11-08 32 " .set push \n" \
a809d46066d517 arch/mips/include/asm/futex.h Ralf Baechle 2014-03-30 33 " .set arch=r4000 \n" \
0307e8d024dffc include/asm-mips/futex.h Atsushi Nemoto 2006-06-11 34 "1: ll %1, %4 # __futex_atomic_op \n" \
378ed6f0e3c525 arch/mips/include/asm/futex.h Paul Burton 2018-11-08 35 " .set pop \n" \
ebfaebae364c36 include/asm-mips/futex.h Ralf Baechle 2005-09-15 36 " " insn " \n" \
a809d46066d517 arch/mips/include/asm/futex.h Ralf Baechle 2014-03-30 37 " .set arch=r4000 \n" \
0307e8d024dffc include/asm-mips/futex.h Atsushi Nemoto 2006-06-11 38 "2: sc $1, %2 \n" \
ebfaebae364c36 include/asm-mips/futex.h Ralf Baechle 2005-09-15 39 " beqzl $1, 1b \n" \
fd7710cb491f90 arch/mips/include/asm/futex.h Paul Burton 2019-10-07 40 __stringify(__WEAK_LLSC_MB) " \n" \
ebfaebae364c36 include/asm-mips/futex.h Ralf Baechle 2005-09-15 41 "3: \n" \
0e525e48f73cc8 arch/mips/include/asm/futex.h Maciej W. Rozycki 2014-11-15 42 " .insn \n" \
ebfaebae364c36 include/asm-mips/futex.h Ralf Baechle 2005-09-15 43 " .set pop \n" \
ebfaebae364c36 include/asm-mips/futex.h Ralf Baechle 2005-09-15 44 " .section .fixup,\"ax\" \n" \
0307e8d024dffc include/asm-mips/futex.h Atsushi Nemoto 2006-06-11 45 "4: li %0, %6 \n" \
0f67e90e1caea4 include/asm-mips/futex.h Ralf Baechle 2007-11-20 46 " j 3b \n" \
ebfaebae364c36 include/asm-mips/futex.h Ralf Baechle 2005-09-15 47 " .previous \n" \
ebfaebae364c36 include/asm-mips/futex.h Ralf Baechle 2005-09-15 48 " .section __ex_table,\"a\" \n" \
ebfaebae364c36 include/asm-mips/futex.h Ralf Baechle 2005-09-15 49 " "__UA_ADDR "\t1b, 4b \n" \
ebfaebae364c36 include/asm-mips/futex.h Ralf Baechle 2005-09-15 50 " "__UA_ADDR "\t2b, 4b \n" \
ebfaebae364c36 include/asm-mips/futex.h Ralf Baechle 2005-09-15 51 " .previous \n" \
b0984c43702f0f arch/mips/include/asm/futex.h Maciej W. Rozycki 2014-11-15 52 : "=r" (ret), "=&r" (oldval), \
94bfb75ace81f7 arch/mips/include/asm/futex.h Markos Chandras 2015-01-26 53 "=" GCC_OFF_SMALL_ASM() (*uaddr) \
94bfb75ace81f7 arch/mips/include/asm/futex.h Markos Chandras 2015-01-26 54 : "0" (0), GCC_OFF_SMALL_ASM() (*uaddr), "Jr" (oparg), \
b0984c43702f0f arch/mips/include/asm/futex.h Maciej W. Rozycki 2014-11-15 55 "i" (-EFAULT) \
0307e8d024dffc include/asm-mips/futex.h Atsushi Nemoto 2006-06-11 56 : "memory"); \
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 57 } else if (cpu_has_llsc) { \
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 58 __asm__ __volatile__( \
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 59 " .set push \n" \
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 60 " .set noat \n" \
378ed6f0e3c525 arch/mips/include/asm/futex.h Paul Burton 2018-11-08 61 " .set push \n" \
1922c356ab2d00 arch/mips/include/asm/futex.h Markos Chandras 2014-11-19 62 " .set "MIPS_ISA_ARCH_LEVEL" \n" \
3c1d3f0979721a arch/mips/include/asm/futex.h Paul Burton 2019-10-01 63 " " __SYNC(full, loongson3_war) " \n" \
a6813fe5c28656 arch/mips/include/asm/futex.h Markos Chandras 2013-12-04 64 "1: "user_ll("%1", "%4")" # __futex_atomic_op\n" \
378ed6f0e3c525 arch/mips/include/asm/futex.h Paul Burton 2018-11-08 65 " .set pop \n" \
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 66 " " insn " \n" \
1922c356ab2d00 arch/mips/include/asm/futex.h Markos Chandras 2014-11-19 67 " .set "MIPS_ISA_ARCH_LEVEL" \n" \
a6813fe5c28656 arch/mips/include/asm/futex.h Markos Chandras 2013-12-04 68 "2: "user_sc("$1", "%2")" \n" \
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 69 " beqz $1, 1b \n" \
fd7710cb491f90 arch/mips/include/asm/futex.h Paul Burton 2019-10-07 70 __stringify(__WEAK_LLSC_MB) " \n" \
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 71 "3: \n" \
0e525e48f73cc8 arch/mips/include/asm/futex.h Maciej W. Rozycki 2014-11-15 72 " .insn \n" \
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 73 " .set pop \n" \
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 74 " .section .fixup,\"ax\" \n" \
0307e8d024dffc include/asm-mips/futex.h Atsushi Nemoto 2006-06-11 75 "4: li %0, %6 \n" \
0f67e90e1caea4 include/asm-mips/futex.h Ralf Baechle 2007-11-20 76 " j 3b \n" \
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 77 " .previous \n" \
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 78 " .section __ex_table,\"a\" \n" \
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 79 " "__UA_ADDR "\t1b, 4b \n" \
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 80 " "__UA_ADDR "\t2b, 4b \n" \
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 81 " .previous \n" \
b0984c43702f0f arch/mips/include/asm/futex.h Maciej W. Rozycki 2014-11-15 82 : "=r" (ret), "=&r" (oldval), \
94bfb75ace81f7 arch/mips/include/asm/futex.h Markos Chandras 2015-01-26 83 "=" GCC_OFF_SMALL_ASM() (*uaddr) \
94bfb75ace81f7 arch/mips/include/asm/futex.h Markos Chandras 2015-01-26 84 : "0" (0), GCC_OFF_SMALL_ASM() (*uaddr), "Jr" (oparg), \
b0984c43702f0f arch/mips/include/asm/futex.h Maciej W. Rozycki 2014-11-15 85 "i" (-EFAULT) \
0307e8d024dffc include/asm-mips/futex.h Atsushi Nemoto 2006-06-11 86 : "memory"); \
2db331c581c8cc arch/mips/include/asm/futex.h Arnd Bergmann 2020-12-15 87 } else { \
2db331c581c8cc arch/mips/include/asm/futex.h Arnd Bergmann 2020-12-15 88 /* fallback for non-SMP */ \
2db331c581c8cc arch/mips/include/asm/futex.h Arnd Bergmann 2020-12-15 89 ret = arch_futex_atomic_op_inuser_local(op, oparg, oval,\
2db331c581c8cc arch/mips/include/asm/futex.h Arnd Bergmann 2020-12-15 90 uaddr); \
ebfaebae364c36 include/asm-mips/futex.h Ralf Baechle 2005-09-15 91 }
ebfaebae364c36 include/asm-mips/futex.h Ralf Baechle 2005-09-15 92
4732efbeb99718 include/asm-mips/futex.h Jakub Jelinek 2005-09-06 93 static inline int
30d6e0a4190d37 arch/mips/include/asm/futex.h Jiri Slaby 2017-08-24 94 arch_futex_atomic_op_inuser(int op, int oparg, int *oval, u32 __user *uaddr)
4732efbeb99718 include/asm-mips/futex.h Jakub Jelinek 2005-09-06 95 {
4732efbeb99718 include/asm-mips/futex.h Jakub Jelinek 2005-09-06 96 int oldval = 0, ret;
4732efbeb99718 include/asm-mips/futex.h Jakub Jelinek 2005-09-06 97
a08971e9488d12 arch/mips/include/asm/futex.h Al Viro 2020-02-16 98 if (!access_ok(uaddr, sizeof(u32)))
a08971e9488d12 arch/mips/include/asm/futex.h Al Viro 2020-02-16 99 return -EFAULT;
4732efbeb99718 include/asm-mips/futex.h Jakub Jelinek 2005-09-06 100
4732efbeb99718 include/asm-mips/futex.h Jakub Jelinek 2005-09-06 101 switch (op) {
4732efbeb99718 include/asm-mips/futex.h Jakub Jelinek 2005-09-06 102 case FUTEX_OP_SET:
2db331c581c8cc arch/mips/include/asm/futex.h Arnd Bergmann 2020-12-15 103 __futex_atomic_op(op, "move $1, %z5", ret, oldval, uaddr, oparg);
ebfaebae364c36 include/asm-mips/futex.h Ralf Baechle 2005-09-15 104 break;
ebfaebae364c36 include/asm-mips/futex.h Ralf Baechle 2005-09-15 105
4732efbeb99718 include/asm-mips/futex.h Jakub Jelinek 2005-09-06 106 case FUTEX_OP_ADD:
2db331c581c8cc arch/mips/include/asm/futex.h Arnd Bergmann 2020-12-15 107 __futex_atomic_op(op, "addu $1, %1, %z5",
ebfaebae364c36 include/asm-mips/futex.h Ralf Baechle 2005-09-15 108 ret, oldval, uaddr, oparg);
ebfaebae364c36 include/asm-mips/futex.h Ralf Baechle 2005-09-15 109 break;
4732efbeb99718 include/asm-mips/futex.h Jakub Jelinek 2005-09-06 110 case FUTEX_OP_OR:
2db331c581c8cc arch/mips/include/asm/futex.h Arnd Bergmann 2020-12-15 111 __futex_atomic_op(op, "or $1, %1, %z5",
ebfaebae364c36 include/asm-mips/futex.h Ralf Baechle 2005-09-15 112 ret, oldval, uaddr, oparg);
ebfaebae364c36 include/asm-mips/futex.h Ralf Baechle 2005-09-15 113 break;
4732efbeb99718 include/asm-mips/futex.h Jakub Jelinek 2005-09-06 114 case FUTEX_OP_ANDN:
2db331c581c8cc arch/mips/include/asm/futex.h Arnd Bergmann 2020-12-15 115 __futex_atomic_op(op, "and $1, %1, %z5",
ebfaebae364c36 include/asm-mips/futex.h Ralf Baechle 2005-09-15 116 ret, oldval, uaddr, ~oparg);
ebfaebae364c36 include/asm-mips/futex.h Ralf Baechle 2005-09-15 117 break;
4732efbeb99718 include/asm-mips/futex.h Jakub Jelinek 2005-09-06 118 case FUTEX_OP_XOR:
2db331c581c8cc arch/mips/include/asm/futex.h Arnd Bergmann 2020-12-15 119 __futex_atomic_op(op, "xor $1, %1, %z5",
ebfaebae364c36 include/asm-mips/futex.h Ralf Baechle 2005-09-15 120 ret, oldval, uaddr, oparg);
ebfaebae364c36 include/asm-mips/futex.h Ralf Baechle 2005-09-15 121 break;
4732efbeb99718 include/asm-mips/futex.h Jakub Jelinek 2005-09-06 122 default:
4732efbeb99718 include/asm-mips/futex.h Jakub Jelinek 2005-09-06 123 ret = -ENOSYS;
4732efbeb99718 include/asm-mips/futex.h Jakub Jelinek 2005-09-06 124 }
4732efbeb99718 include/asm-mips/futex.h Jakub Jelinek 2005-09-06 125
30d6e0a4190d37 arch/mips/include/asm/futex.h Jiri Slaby 2017-08-24 126 if (!ret)
30d6e0a4190d37 arch/mips/include/asm/futex.h Jiri Slaby 2017-08-24 127 *oval = oldval;
30d6e0a4190d37 arch/mips/include/asm/futex.h Jiri Slaby 2017-08-24 128
4732efbeb99718 include/asm-mips/futex.h Jakub Jelinek 2005-09-06 129 return ret;
4732efbeb99718 include/asm-mips/futex.h Jakub Jelinek 2005-09-06 130 }
4732efbeb99718 include/asm-mips/futex.h Jakub Jelinek 2005-09-06 131
e9056f13bfcdd0 include/asm-mips/futex.h Ingo Molnar 2006-03-27 @132 static inline int
8d7718aa082aaf arch/mips/include/asm/futex.h Michel Lespinasse 2011-03-10 133 futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
8d7718aa082aaf arch/mips/include/asm/futex.h Michel Lespinasse 2011-03-10 134 u32 oldval, u32 newval)
e9056f13bfcdd0 include/asm-mips/futex.h Ingo Molnar 2006-03-27 135 {
8d7718aa082aaf arch/mips/include/asm/futex.h Michel Lespinasse 2011-03-10 136 int ret = 0;
8d7718aa082aaf arch/mips/include/asm/futex.h Michel Lespinasse 2011-03-10 137 u32 val;
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 138
96d4f267e40f95 arch/mips/include/asm/futex.h Linus Torvalds 2019-01-03 139 if (!access_ok(uaddr, sizeof(u32)))
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 140 return -EFAULT;
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 141
256ec489f1c772 arch/mips/include/asm/futex.h Thomas Bogendoerfer 2020-08-24 142 if (cpu_has_llsc && IS_ENABLED(CONFIG_WAR_R10000_LLSC)) {
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 143 __asm__ __volatile__(
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 144 "# futex_atomic_cmpxchg_inatomic \n"
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 145 " .set push \n"
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 146 " .set noat \n"
378ed6f0e3c525 arch/mips/include/asm/futex.h Paul Burton 2018-11-08 147 " .set push \n"
a809d46066d517 arch/mips/include/asm/futex.h Ralf Baechle 2014-03-30 148 " .set arch=r4000 \n"
37a9d912b24f96 arch/mips/include/asm/futex.h Michel Lespinasse 2011-03-10 149 "1: ll %1, %3 \n"
37a9d912b24f96 arch/mips/include/asm/futex.h Michel Lespinasse 2011-03-10 150 " bne %1, %z4, 3f \n"
378ed6f0e3c525 arch/mips/include/asm/futex.h Paul Burton 2018-11-08 151 " .set pop \n"
37a9d912b24f96 arch/mips/include/asm/futex.h Michel Lespinasse 2011-03-10 152 " move $1, %z5 \n"
a809d46066d517 arch/mips/include/asm/futex.h Ralf Baechle 2014-03-30 153 " .set arch=r4000 \n"
37a9d912b24f96 arch/mips/include/asm/futex.h Michel Lespinasse 2011-03-10 154 "2: sc $1, %2 \n"
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 155 " beqzl $1, 1b \n"
fd7710cb491f90 arch/mips/include/asm/futex.h Paul Burton 2019-10-07 156 __stringify(__WEAK_LLSC_MB) " \n"
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 157 "3: \n"
0e525e48f73cc8 arch/mips/include/asm/futex.h Maciej W. Rozycki 2014-11-15 158 " .insn \n"
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 159 " .set pop \n"
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 160 " .section .fixup,\"ax\" \n"
37a9d912b24f96 arch/mips/include/asm/futex.h Michel Lespinasse 2011-03-10 161 "4: li %0, %6 \n"
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 162 " j 3b \n"
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 163 " .previous \n"
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 164 " .section __ex_table,\"a\" \n"
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 165 " "__UA_ADDR "\t1b, 4b \n"
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 166 " "__UA_ADDR "\t2b, 4b \n"
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 167 " .previous \n"
94bfb75ace81f7 arch/mips/include/asm/futex.h Markos Chandras 2015-01-26 168 : "+r" (ret), "=&r" (val), "=" GCC_OFF_SMALL_ASM() (*uaddr)
94bfb75ace81f7 arch/mips/include/asm/futex.h Markos Chandras 2015-01-26 169 : GCC_OFF_SMALL_ASM() (*uaddr), "Jr" (oldval), "Jr" (newval),
b0984c43702f0f arch/mips/include/asm/futex.h Maciej W. Rozycki 2014-11-15 170 "i" (-EFAULT)
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 171 : "memory");
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 172 } else if (cpu_has_llsc) {
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 173 __asm__ __volatile__(
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 174 "# futex_atomic_cmpxchg_inatomic \n"
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 175 " .set push \n"
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 176 " .set noat \n"
378ed6f0e3c525 arch/mips/include/asm/futex.h Paul Burton 2018-11-08 177 " .set push \n"
1922c356ab2d00 arch/mips/include/asm/futex.h Markos Chandras 2014-11-19 178 " .set "MIPS_ISA_ARCH_LEVEL" \n"
3c1d3f0979721a arch/mips/include/asm/futex.h Paul Burton 2019-10-01 179 " " __SYNC(full, loongson3_war) " \n"
a6813fe5c28656 arch/mips/include/asm/futex.h Markos Chandras 2013-12-04 180 "1: "user_ll("%1", "%3")" \n"
37a9d912b24f96 arch/mips/include/asm/futex.h Michel Lespinasse 2011-03-10 181 " bne %1, %z4, 3f \n"
378ed6f0e3c525 arch/mips/include/asm/futex.h Paul Burton 2018-11-08 182 " .set pop \n"
37a9d912b24f96 arch/mips/include/asm/futex.h Michel Lespinasse 2011-03-10 183 " move $1, %z5 \n"
1922c356ab2d00 arch/mips/include/asm/futex.h Markos Chandras 2014-11-19 184 " .set "MIPS_ISA_ARCH_LEVEL" \n"
a6813fe5c28656 arch/mips/include/asm/futex.h Markos Chandras 2013-12-04 185 "2: "user_sc("$1", "%2")" \n"
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 186 " beqz $1, 1b \n"
3c1d3f0979721a arch/mips/include/asm/futex.h Paul Burton 2019-10-01 187 "3: " __SYNC_ELSE(full, loongson3_war, __WEAK_LLSC_MB) "\n"
0e525e48f73cc8 arch/mips/include/asm/futex.h Maciej W. Rozycki 2014-11-15 188 " .insn \n"
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 189 " .set pop \n"
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 190 " .section .fixup,\"ax\" \n"
37a9d912b24f96 arch/mips/include/asm/futex.h Michel Lespinasse 2011-03-10 191 "4: li %0, %6 \n"
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 192 " j 3b \n"
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 193 " .previous \n"
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 194 " .section __ex_table,\"a\" \n"
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 195 " "__UA_ADDR "\t1b, 4b \n"
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 196 " "__UA_ADDR "\t2b, 4b \n"
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 197 " .previous \n"
94bfb75ace81f7 arch/mips/include/asm/futex.h Markos Chandras 2015-01-26 198 : "+r" (ret), "=&r" (val), "=" GCC_OFF_SMALL_ASM() (*uaddr)
94bfb75ace81f7 arch/mips/include/asm/futex.h Markos Chandras 2015-01-26 199 : GCC_OFF_SMALL_ASM() (*uaddr), "Jr" (oldval), "Jr" (newval),
b0984c43702f0f arch/mips/include/asm/futex.h Maciej W. Rozycki 2014-11-15 200 "i" (-EFAULT)
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 201 : "memory");
2db331c581c8cc arch/mips/include/asm/futex.h Arnd Bergmann 2020-12-15 202 } else {
2db331c581c8cc arch/mips/include/asm/futex.h Arnd Bergmann 2020-12-15 203 return futex_atomic_cmpxchg_inatomic_local(uval, uaddr, oldval, newval);
2db331c581c8cc arch/mips/include/asm/futex.h Arnd Bergmann 2020-12-15 204 }
6ee1da94c5fed9 include/asm-mips/futex.h Ralf Baechle 2006-05-03 205
37a9d912b24f96 arch/mips/include/asm/futex.h Michel Lespinasse 2011-03-10 206 *uval = val;
37a9d912b24f96 arch/mips/include/asm/futex.h Michel Lespinasse 2011-03-10 207 return ret;
e9056f13bfcdd0 include/asm-mips/futex.h Ingo Molnar 2006-03-27 208 }
e9056f13bfcdd0 include/asm-mips/futex.h Ingo Molnar 2006-03-27 209

:::::: The code at line 132 was first introduced by commit
:::::: e9056f13bfcdd054a0c3d730e4e096748d8a363a [PATCH] lightweight robust futexes: arch defaults

:::::: TO: Ingo Molnar <mingo@xxxxxxx>
:::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxx>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip