Re: [PATCH] lockdep: Improve consistency between lockdep and hardware hardirqs states

From: kernel test robot
Date: Fri Jun 14 2024 - 10:17:15 EST


Hi Waiman,

kernel test robot noticed the following build errors:

[auto build test ERROR on tip/locking/core]
[also build test ERROR on linus/master v6.10-rc3 next-20240613]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Waiman-Long/lockdep-Improve-consistency-between-lockdep-and-hardware-hardirqs-states/20240613-223309
base: tip/locking/core
patch link: https://lore.kernel.org/r/20240613142929.132220-1-longman%40redhat.com
patch subject: [PATCH] lockdep: Improve consistency between lockdep and hardware hardirqs states
config: csky-randconfig-002-20240614 (https://download.01.org/0day-ci/archive/20240614/202406142213.B8BPBsSw-lkp@xxxxxxxxx/config)
compiler: csky-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240614/202406142213.B8BPBsSw-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202406142213.B8BPBsSw-lkp@xxxxxxxxx/

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

In file included from include/linux/lockdep_irqflags.h:5,
from include/linux/irqflags.h:194,
from include/asm-generic/cmpxchg.h:15,
from arch/csky/include/asm/cmpxchg.h:162,
from include/asm-generic/atomic.h:12,
from arch/csky/include/asm/atomic.h:199,
from include/linux/atomic.h:7,
from include/asm-generic/bitops/lock.h:5,
from arch/csky/include/asm/bitops.h:69,
from include/linux/bitops.h:63,
from include/linux/log2.h:12,
from kernel/bounds.c:13:
include/linux/debug_locks.h: In function '__debug_locks_off':
>> include/linux/debug_locks.h:16:16: error: implicit declaration of function 'xchg' [-Werror=implicit-function-declaration]
16 | return xchg(&debug_locks, 0);
| ^~~~
In file included from arch/csky/include/asm/page.h:92,
from arch/csky/include/asm/thread_info.h:9,
from include/linux/thread_info.h:60,
from include/asm-generic/preempt.h:5,
from ./arch/csky/include/generated/asm/preempt.h:1,
from include/linux/preempt.h:79,
from include/linux/lockdep_irqflags.h:7:
include/asm-generic/getorder.h: In function 'get_order':
>> include/asm-generic/getorder.h:38:24: error: implicit declaration of function 'ilog2' [-Werror=implicit-function-declaration]
38 | return ilog2((size) - 1) - PAGE_SHIFT + 1;
| ^~~~~
include/linux/thread_info.h: In function 'set_ti_thread_flag':
>> include/linux/thread_info.h:89:9: error: implicit declaration of function 'set_bit'; did you mean 'test_bit'? [-Werror=implicit-function-declaration]
89 | set_bit(flag, (unsigned long *)&ti->flags);
| ^~~~~~~
| test_bit
include/linux/thread_info.h: In function 'clear_ti_thread_flag':
>> include/linux/thread_info.h:94:9: error: implicit declaration of function 'clear_bit' [-Werror=implicit-function-declaration]
94 | clear_bit(flag, (unsigned long *)&ti->flags);
| ^~~~~~~~~
include/linux/thread_info.h: In function 'test_and_set_ti_thread_flag':
>> include/linux/thread_info.h:108:16: error: implicit declaration of function 'test_and_set_bit' [-Werror=implicit-function-declaration]
108 | return test_and_set_bit(flag, (unsigned long *)&ti->flags);
| ^~~~~~~~~~~~~~~~
include/linux/thread_info.h: In function 'test_and_clear_ti_thread_flag':
>> include/linux/thread_info.h:113:16: error: implicit declaration of function 'test_and_clear_bit'; did you mean 'const___clear_bit'? [-Werror=implicit-function-declaration]
113 | return test_and_clear_bit(flag, (unsigned long *)&ti->flags);
| ^~~~~~~~~~~~~~~~~~
| const___clear_bit
include/linux/thread_info.h: In function 'test_ti_thread_flag':
>> include/linux/bitops.h:56:47: error: implicit declaration of function '_test_bit'; did you mean 'test_bit'? [-Werror=implicit-function-declaration]
56 | #define test_bit(nr, addr) bitop(_test_bit, nr, addr)
| ^~~~~~~~~
include/linux/bitops.h:48:32: note: in definition of macro 'bitop'
48 | const##op(nr, addr) : op(nr, addr))
| ^~
include/linux/thread_info.h:118:16: note: in expansion of macro 'test_bit'
118 | return test_bit(flag, (unsigned long *)&ti->flags);
| ^~~~~~~~
In file included from include/asm-generic/bitops/atomic.h:68,
from arch/csky/include/asm/bitops.h:70:
include/asm-generic/bitops/instrumented-atomic.h: At top level:
>> include/asm-generic/bitops/instrumented-atomic.h:26:29: warning: conflicting types for 'set_bit'; have 'void(long int, volatile long unsigned int *)'
26 | static __always_inline void set_bit(long nr, volatile unsigned long *addr)
| ^~~~~~~
>> include/asm-generic/bitops/instrumented-atomic.h:26:29: error: static declaration of 'set_bit' follows non-static declaration
include/linux/thread_info.h:89:9: note: previous implicit declaration of 'set_bit' with type 'void(long int, volatile long unsigned int *)'
89 | set_bit(flag, (unsigned long *)&ti->flags);
| ^~~~~~~
>> include/asm-generic/bitops/instrumented-atomic.h:39:29: warning: conflicting types for 'clear_bit'; have 'void(long int, volatile long unsigned int *)'
39 | static __always_inline void clear_bit(long nr, volatile unsigned long *addr)
| ^~~~~~~~~
>> include/asm-generic/bitops/instrumented-atomic.h:39:29: error: static declaration of 'clear_bit' follows non-static declaration
include/linux/thread_info.h:94:9: note: previous implicit declaration of 'clear_bit' with type 'void(long int, volatile long unsigned int *)'
94 | clear_bit(flag, (unsigned long *)&ti->flags);
| ^~~~~~~~~
>> include/asm-generic/bitops/instrumented-atomic.h:68:29: error: conflicting types for 'test_and_set_bit'; have 'bool(long int, volatile long unsigned int *)' {aka '_Bool(long int, volatile long unsigned int *)'}
68 | static __always_inline bool test_and_set_bit(long nr, volatile unsigned long *addr)
| ^~~~~~~~~~~~~~~~
include/linux/thread_info.h:108:16: note: previous implicit declaration of 'test_and_set_bit' with type 'int()'
108 | return test_and_set_bit(flag, (unsigned long *)&ti->flags);
| ^~~~~~~~~~~~~~~~
>> include/asm-generic/bitops/instrumented-atomic.h:82:29: error: conflicting types for 'test_and_clear_bit'; have 'bool(long int, volatile long unsigned int *)' {aka '_Bool(long int, volatile long unsigned int *)'}
82 | static __always_inline bool test_and_clear_bit(long nr, volatile unsigned long *addr)
| ^~~~~~~~~~~~~~~~~~
include/linux/thread_info.h:113:16: note: previous implicit declaration of 'test_and_clear_bit' with type 'int()'
113 | return test_and_clear_bit(flag, (unsigned long *)&ti->flags);
| ^~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[3]: *** [scripts/Makefile.build:117: kernel/bounds.s] Error 1 shuffle=1930064556
make[3]: Target 'prepare' not remade because of errors.
make[2]: *** [Makefile:1208: prepare0] Error 2 shuffle=1930064556
make[2]: Target 'prepare' not remade because of errors.
make[1]: *** [Makefile:240: __sub-make] Error 2 shuffle=1930064556
make[1]: Target 'prepare' not remade because of errors.
make: *** [Makefile:240: __sub-make] Error 2 shuffle=1930064556
make: Target 'prepare' not remade because of errors.


vim +/xchg +16 include/linux/debug_locks.h

9a11b49a805665 Ingo Molnar 2006-07-03 12
9eeba6138cefc0 Frederic Weisbecker 2009-04-11 13
6eebad1ad303db Peter Zijlstra 2020-06-03 14 static __always_inline int __debug_locks_off(void)
9eeba6138cefc0 Frederic Weisbecker 2009-04-11 15 {
9eeba6138cefc0 Frederic Weisbecker 2009-04-11 @16 return xchg(&debug_locks, 0);
9eeba6138cefc0 Frederic Weisbecker 2009-04-11 17 }
9eeba6138cefc0 Frederic Weisbecker 2009-04-11 18

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki