[tip:WIP.locking/urgent 3/3] include/linux/lockdep.h:265:19: error: static declaration of 'lock_is_held' follows non-static declaration

From: kernel test robot
Date: Thu Aug 06 2020 - 14:30:10 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git WIP.locking/urgent
head: 7c4c257fea99f39dc639d68017c9d5e573d8e59d
commit: 7c4c257fea99f39dc639d68017c9d5e573d8e59d [3/3] locking/seqlock, headers: Untangle the spaghetti monster
config: x86_64-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
git checkout 7c4c257fea99f39dc639d68017c9d5e573d8e59d
# save the attached .config to linux build tree
make W=1 ARCH=x86_64

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

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

In file included from include/linux/rbtree.h:22,
from include/linux/mm_types.h:10,
from include/asm-generic/fixmap.h:19,
from arch/x86/include/asm/fixmap.h:189,
from arch/x86/include/asm/apic.h:11,
from arch/x86/include/asm/smp.h:13,
from include/linux/smp.h:82,
from include/linux/lockdep.h:14,
from include/linux/spinlock.h:59,
from include/linux/mmzone.h:8,
from include/linux/gfp.h:6,
from include/linux/slab.h:15,
from include/linux/crypto.h:19,
from arch/x86/kernel/asm-offsets.c:9:
include/linux/rcupdate.h: In function 'rcu_lock_acquire':
>> include/linux/rcupdate.h:241:2: error: implicit declaration of function 'lock_acquire'; did you mean 'rcu_lock_acquire'? [-Werror=implicit-function-declaration]
241 | lock_acquire(map, 0, 0, 2, 0, NULL, _THIS_IP_);
| ^~~~~~~~~~~~
| rcu_lock_acquire
include/linux/rcupdate.h: In function 'rcu_lock_release':
>> include/linux/rcupdate.h:246:2: error: implicit declaration of function 'lock_release'; did you mean 'rcu_lock_release'? [-Werror=implicit-function-declaration]
246 | lock_release(map, _THIS_IP_);
| ^~~~~~~~~~~~
| rcu_lock_release
include/linux/rcupdate.h: In function 'rcu_preempt_sleep_check':
>> include/linux/rcupdate.h:305:19: error: implicit declaration of function 'lock_is_held' [-Werror=implicit-function-declaration]
305 | RCU_LOCKDEP_WARN(lock_is_held(&rcu_lock_map),
| ^~~~~~~~~~~~
include/linux/rcupdate.h:296:52: note: in definition of macro 'RCU_LOCKDEP_WARN'
296 | if (debug_lockdep_rcu_enabled() && !__warned && (c)) { \
| ^
>> include/linux/rcupdate.h:298:4: error: implicit declaration of function 'lockdep_rcu_suspicious' [-Werror=implicit-function-declaration]
298 | lockdep_rcu_suspicious(__FILE__, __LINE__, s); \
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/rcupdate.h:305:2: note: in expansion of macro 'RCU_LOCKDEP_WARN'
305 | RCU_LOCKDEP_WARN(lock_is_held(&rcu_lock_map),
| ^~~~~~~~~~~~~~~~
In file included from include/linux/mm_types.h:11,
from include/asm-generic/fixmap.h:19,
from arch/x86/include/asm/fixmap.h:189,
from arch/x86/include/asm/apic.h:11,
from arch/x86/include/asm/smp.h:13,
from include/linux/smp.h:82,
from include/linux/lockdep.h:14,
from include/linux/spinlock.h:59,
from include/linux/mmzone.h:8,
from include/linux/gfp.h:6,
from include/linux/slab.h:15,
from include/linux/crypto.h:19,
from arch/x86/kernel/asm-offsets.c:9:
include/linux/rwsem.h: At top level:
>> include/linux/rwsem.h:46:2: error: unknown type name 'raw_spinlock_t'
46 | raw_spinlock_t wait_lock;
| ^~~~~~~~~~~~~~
In file included from include/linux/swait.h:8,
from include/linux/completion.h:12,
from include/linux/mm_types.h:12,
from include/asm-generic/fixmap.h:19,
from arch/x86/include/asm/fixmap.h:189,
from arch/x86/include/asm/apic.h:11,
from arch/x86/include/asm/smp.h:13,
from include/linux/smp.h:82,
from include/linux/lockdep.h:14,
from include/linux/spinlock.h:59,
from include/linux/mmzone.h:8,
from include/linux/gfp.h:6,
from include/linux/slab.h:15,
from include/linux/crypto.h:19,
from arch/x86/kernel/asm-offsets.c:9:
>> include/linux/wait.h:36:2: error: unknown type name 'spinlock_t'
36 | spinlock_t lock;
| ^~~~~~~~~~
In file included from include/linux/completion.h:12,
from include/linux/mm_types.h:12,
from include/asm-generic/fixmap.h:19,
from arch/x86/include/asm/fixmap.h:189,
from arch/x86/include/asm/apic.h:11,
from arch/x86/include/asm/smp.h:13,
from include/linux/smp.h:82,
from include/linux/lockdep.h:14,
from include/linux/spinlock.h:59,
from include/linux/mmzone.h:8,
from include/linux/gfp.h:6,
from include/linux/slab.h:15,
from include/linux/crypto.h:19,
from arch/x86/kernel/asm-offsets.c:9:
>> include/linux/swait.h:44:2: error: unknown type name 'raw_spinlock_t'
44 | raw_spinlock_t lock;
| ^~~~~~~~~~~~~~
In file included from include/linux/spinlock.h:59,
from include/linux/mmzone.h:8,
from include/linux/gfp.h:6,
from include/linux/slab.h:15,
from include/linux/crypto.h:19,
from arch/x86/kernel/asm-offsets.c:9:
>> include/linux/lockdep.h:254:13: warning: conflicting types for 'lock_acquire'
254 | extern void lock_acquire(struct lockdep_map *lock, unsigned int subclass,
| ^~~~~~~~~~~~
In file included from include/linux/rbtree.h:22,
from include/linux/mm_types.h:10,
from include/asm-generic/fixmap.h:19,
from arch/x86/include/asm/fixmap.h:189,
from arch/x86/include/asm/apic.h:11,
from arch/x86/include/asm/smp.h:13,
from include/linux/smp.h:82,
from include/linux/lockdep.h:14,
from include/linux/spinlock.h:59,
from include/linux/mmzone.h:8,
from include/linux/gfp.h:6,
from include/linux/slab.h:15,
from include/linux/crypto.h:19,
from arch/x86/kernel/asm-offsets.c:9:
include/linux/rcupdate.h:241:2: note: previous implicit declaration of 'lock_acquire' was here
241 | lock_acquire(map, 0, 0, 2, 0, NULL, _THIS_IP_);
| ^~~~~~~~~~~~
In file included from include/linux/spinlock.h:59,
from include/linux/mmzone.h:8,
from include/linux/gfp.h:6,
from include/linux/slab.h:15,
from include/linux/crypto.h:19,
from arch/x86/kernel/asm-offsets.c:9:
>> include/linux/lockdep.h:258:13: warning: conflicting types for 'lock_release'
258 | extern void lock_release(struct lockdep_map *lock, unsigned long ip);
| ^~~~~~~~~~~~
In file included from include/linux/rbtree.h:22,
from include/linux/mm_types.h:10,
from include/asm-generic/fixmap.h:19,
from arch/x86/include/asm/fixmap.h:189,
from arch/x86/include/asm/apic.h:11,
from arch/x86/include/asm/smp.h:13,
from include/linux/smp.h:82,
from include/linux/lockdep.h:14,
from include/linux/spinlock.h:59,
from include/linux/mmzone.h:8,
from include/linux/gfp.h:6,
from include/linux/slab.h:15,
from include/linux/crypto.h:19,
from arch/x86/kernel/asm-offsets.c:9:
include/linux/rcupdate.h:246:2: note: previous implicit declaration of 'lock_release' was here
246 | lock_release(map, _THIS_IP_);
| ^~~~~~~~~~~~
In file included from include/linux/spinlock.h:59,
from include/linux/mmzone.h:8,
from include/linux/gfp.h:6,
from include/linux/slab.h:15,
from include/linux/crypto.h:19,
from arch/x86/kernel/asm-offsets.c:9:
>> include/linux/lockdep.h:265:19: error: static declaration of 'lock_is_held' follows non-static declaration
265 | static inline int lock_is_held(const struct lockdep_map *lock)
| ^~~~~~~~~~~~
In file included from include/linux/rbtree.h:22,
from include/linux/mm_types.h:10,
from include/asm-generic/fixmap.h:19,
from arch/x86/include/asm/fixmap.h:189,
from arch/x86/include/asm/apic.h:11,
from arch/x86/include/asm/smp.h:13,
from include/linux/smp.h:82,
from include/linux/lockdep.h:14,
from include/linux/spinlock.h:59,
from include/linux/mmzone.h:8,
from include/linux/gfp.h:6,
from include/linux/slab.h:15,
from include/linux/crypto.h:19,
from arch/x86/kernel/asm-offsets.c:9:
include/linux/rcupdate.h:305:19: note: previous implicit declaration of 'lock_is_held' was here
305 | RCU_LOCKDEP_WARN(lock_is_held(&rcu_lock_map),
| ^~~~~~~~~~~~
include/linux/rcupdate.h:296:52: note: in definition of macro 'RCU_LOCKDEP_WARN'
296 | if (debug_lockdep_rcu_enabled() && !__warned && (c)) { \
| ^
In file included from include/linux/spinlock.h:59,
from include/linux/mmzone.h:8,
from include/linux/gfp.h:6,
from include/linux/slab.h:15,
from include/linux/crypto.h:19,
from arch/x86/kernel/asm-offsets.c:9:
>> include/linux/lockdep.h:598:6: warning: conflicting types for 'lockdep_rcu_suspicious'
598 | void lockdep_rcu_suspicious(const char *file, const int line, const char *s);
| ^~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/rbtree.h:22,
from include/linux/mm_types.h:10,
from include/asm-generic/fixmap.h:19,
from arch/x86/include/asm/fixmap.h:189,
from arch/x86/include/asm/apic.h:11,
from arch/x86/include/asm/smp.h:13,
from include/linux/smp.h:82,
from include/linux/lockdep.h:14,
from include/linux/spinlock.h:59,
from include/linux/mmzone.h:8,
from include/linux/gfp.h:6,
from include/linux/slab.h:15,
from include/linux/crypto.h:19,
from arch/x86/kernel/asm-offsets.c:9:
include/linux/rcupdate.h:298:4: note: previous implicit declaration of 'lockdep_rcu_suspicious' was here
298 | lockdep_rcu_suspicious(__FILE__, __LINE__, s); \
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/rcupdate.h:305:2: note: in expansion of macro 'RCU_LOCKDEP_WARN'
305 | RCU_LOCKDEP_WARN(lock_is_held(&rcu_lock_map),
| ^~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:114: arch/x86/kernel/asm-offsets.s] Error 1
make[2]: Target '__build' not remade because of errors.
make[1]: *** [Makefile:1175: prepare0] Error 2
make[1]: Target 'prepare' not remade because of errors.
make: *** [Makefile:185: __sub-make] Error 2
make: Target 'prepare' not remade because of errors.

vim +/lock_is_held +265 include/linux/lockdep.h

fbb9ce9530fd9b Ingo Molnar 2006-07-03 239
fbb9ce9530fd9b Ingo Molnar 2006-07-03 240 /*
fbb9ce9530fd9b Ingo Molnar 2006-07-03 241 * Acquire a lock.
fbb9ce9530fd9b Ingo Molnar 2006-07-03 242 *
fbb9ce9530fd9b Ingo Molnar 2006-07-03 243 * Values for "read":
fbb9ce9530fd9b Ingo Molnar 2006-07-03 244 *
fbb9ce9530fd9b Ingo Molnar 2006-07-03 245 * 0: exclusive (write) acquire
fbb9ce9530fd9b Ingo Molnar 2006-07-03 246 * 1: read-acquire (no recursion allowed)
fbb9ce9530fd9b Ingo Molnar 2006-07-03 247 * 2: read-acquire with same-instance recursion allowed
fbb9ce9530fd9b Ingo Molnar 2006-07-03 248 *
fbb9ce9530fd9b Ingo Molnar 2006-07-03 249 * Values for check:
fbb9ce9530fd9b Ingo Molnar 2006-07-03 250 *
fb9edbe98493fc Oleg Nesterov 2014-01-20 251 * 0: simple checks (freeing, held-at-exit-time, etc.)
fb9edbe98493fc Oleg Nesterov 2014-01-20 252 * 1: full validation
fbb9ce9530fd9b Ingo Molnar 2006-07-03 253 */
fbb9ce9530fd9b Ingo Molnar 2006-07-03 @254 extern void lock_acquire(struct lockdep_map *lock, unsigned int subclass,
7531e2f34d1d55 Peter Zijlstra 2008-08-11 255 int trylock, int read, int check,
7531e2f34d1d55 Peter Zijlstra 2008-08-11 256 struct lockdep_map *nest_lock, unsigned long ip);
fbb9ce9530fd9b Ingo Molnar 2006-07-03 257
5facae4f3549b5 Qian Cai 2019-09-19 @258 extern void lock_release(struct lockdep_map *lock, unsigned long ip);
fbb9ce9530fd9b Ingo Molnar 2006-07-03 259
f8319483f57f1c Peter Zijlstra 2016-11-30 260 /*
f8319483f57f1c Peter Zijlstra 2016-11-30 261 * Same "read" as for lock_acquire(), except -1 means any.
f8319483f57f1c Peter Zijlstra 2016-11-30 262 */
08f36ff642342f Matthew Wilcox 2018-01-17 263 extern int lock_is_held_type(const struct lockdep_map *lock, int read);
f8319483f57f1c Peter Zijlstra 2016-11-30 264
08f36ff642342f Matthew Wilcox 2018-01-17 @265 static inline int lock_is_held(const struct lockdep_map *lock)
f8319483f57f1c Peter Zijlstra 2016-11-30 266 {
f8319483f57f1c Peter Zijlstra 2016-11-30 267 return lock_is_held_type(lock, -1);
f8319483f57f1c Peter Zijlstra 2016-11-30 268 }
f607c668577481 Peter Zijlstra 2009-07-20 269

:::::: The code at line 265 was first introduced by commit
:::::: 08f36ff642342fb058212099757cb5d40f158c2a lockdep: Make lockdep checking constant

:::::: TO: Matthew Wilcox <mawilcox@xxxxxxxxxxxxx>
:::::: CC: Thomas Gleixner <tglx@xxxxxxxxxxxxx>

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

Attachment: .config.gz
Description: application/gzip