All of lore.kernel.org
 help / color / mirror / Atom feed
* [melver:cap-analysis/dev 18/26] include/linux/local_lock_internal.h:111:17: error: implicit declaration of function 'local_irq_enable'
@ 2025-02-14 12:36 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-02-14 12:36 UTC (permalink / raw)
  To: elver; +Cc: oe-kbuild-all

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/melver/linux.git cap-analysis/dev
head:   9c8d14ce8aff2d38bf494f5d5436a302e3236842
commit: 895e91e6a76fc478ef13428a02587e5a424fc0be [18/26] locking/local_lock: Support Clang's capability analysis
config: powerpc-allmodconfig (https://download.01.org/0day-ci/archive/20250214/202502142000.elXvNztG-lkp@intel.com/config)
compiler: powerpc64-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250214/202502142000.elXvNztG-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202502142000.elXvNztG-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from include/linux/jump_label.h:78,
                    from include/linux/dynamic_debug.h:6,
                    from include/linux/printk.h:610,
                    from include/linux/kernel.h:31,
                    from include/linux/bit_spinlock.h:5,
                    from lib/test_capability-analysis.c:7:
   include/linux/local_lock.h: In function 'class_local_lock_irq_destructor':
>> include/linux/local_lock_internal.h:111:17: error: implicit declaration of function 'local_irq_enable' [-Wimplicit-function-declaration]
     111 |                 local_irq_enable();                             \
         |                 ^~~~~~~~~~~~~~~~
   include/linux/cleanup.h:379:25: note: in definition of macro '__DEFINE_UNLOCK_GUARD'
     379 |         if (_T->lock) { _unlock; }                                      \
         |                         ^~~~~~~
   include/linux/local_lock.h:57:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_1'
      57 | DEFINE_LOCK_GUARD_1(local_lock_irq, local_lock_t __percpu,
         | ^~~~~~~~~~~~~~~~~~~
   include/linux/local_lock.h:43:41: note: in expansion of macro '__local_unlock_irq'
      43 | #define local_unlock_irq(lock)          __local_unlock_irq(lock)
         |                                         ^~~~~~~~~~~~~~~~~~
   include/linux/local_lock.h:59:21: note: in expansion of macro 'local_unlock_irq'
      59 |                     local_unlock_irq(_T->lock))
         |                     ^~~~~~~~~~~~~~~~
   include/linux/local_lock.h: In function 'class_local_lock_irq_constructor':
>> include/linux/local_lock_internal.h:88:17: error: implicit declaration of function 'local_irq_disable' [-Wimplicit-function-declaration]
      88 |                 local_irq_disable();                            \
         |                 ^~~~~~~~~~~~~~~~~
   include/linux/cleanup.h:393:9: note: in definition of macro '__DEFINE_LOCK_GUARD_1'
     393 |         _lock;                                                          \
         |         ^~~~~
   include/linux/local_lock.h:57:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_1'
      57 | DEFINE_LOCK_GUARD_1(local_lock_irq, local_lock_t __percpu,
         | ^~~~~~~~~~~~~~~~~~~
   include/linux/local_lock.h:22:41: note: in expansion of macro '__local_lock_irq'
      22 | #define local_lock_irq(lock)            __local_lock_irq(lock)
         |                                         ^~~~~~~~~~~~~~~~
   include/linux/local_lock.h:58:21: note: in expansion of macro 'local_lock_irq'
      58 |                     local_lock_irq(_T->lock),
         |                     ^~~~~~~~~~~~~~
   include/linux/local_lock.h: In function 'class_local_lock_irqsave_destructor':
>> include/linux/local_lock_internal.h:118:17: error: implicit declaration of function 'local_irq_restore' [-Wimplicit-function-declaration]
     118 |                 local_irq_restore(flags);                       \
         |                 ^~~~~~~~~~~~~~~~~
   include/linux/cleanup.h:379:25: note: in definition of macro '__DEFINE_UNLOCK_GUARD'
     379 |         if (_T->lock) { _unlock; }                                      \
         |                         ^~~~~~~
   include/linux/local_lock.h:60:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_1'
      60 | DEFINE_LOCK_GUARD_1(local_lock_irqsave, local_lock_t __percpu,
         | ^~~~~~~~~~~~~~~~~~~
   include/linux/local_lock.h:52:9: note: in expansion of macro '__local_unlock_irqrestore'
      52 |         __local_unlock_irqrestore(lock, flags)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/local_lock.h:62:21: note: in expansion of macro 'local_unlock_irqrestore'
      62 |                     local_unlock_irqrestore(_T->lock, _T->flags),
         |                     ^~~~~~~~~~~~~~~~~~~~~~~
   include/linux/local_lock.h: In function 'class_local_lock_irqsave_constructor':
>> include/linux/local_lock_internal.h:95:17: error: implicit declaration of function 'local_irq_save' [-Wimplicit-function-declaration]
      95 |                 local_irq_save(flags);                          \
         |                 ^~~~~~~~~~~~~~
   include/linux/cleanup.h:393:9: note: in definition of macro '__DEFINE_LOCK_GUARD_1'
     393 |         _lock;                                                          \
         |         ^~~~~
   include/linux/local_lock.h:60:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_1'
      60 | DEFINE_LOCK_GUARD_1(local_lock_irqsave, local_lock_t __percpu,
         | ^~~~~~~~~~~~~~~~~~~
   include/linux/local_lock.h:31:9: note: in expansion of macro '__local_lock_irqsave'
      31 |         __local_lock_irqsave(lock, flags)
         |         ^~~~~~~~~~~~~~~~~~~~
   include/linux/local_lock.h:61:21: note: in expansion of macro 'local_lock_irqsave'
      61 |                     local_lock_irqsave(_T->lock, _T->flags),
         |                     ^~~~~~~~~~~~~~~~~~
   include/linux/local_lock.h: In function 'class_local_lock_nested_bh_constructor':
   include/asm-generic/percpu.h:136:9: error: implicit declaration of function 'raw_local_irq_save' [-Wimplicit-function-declaration]
     136 |         raw_local_irq_save(___flags);                                   \
         |         ^~~~~~~~~~~~~~~~~~
   include/linux/cleanup.h:393:9: note: in definition of macro '__DEFINE_LOCK_GUARD_1'
     393 |         _lock;                                                          \
         |         ^~~~~
   include/linux/local_lock.h:71:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_1'
      71 | DEFINE_LOCK_GUARD_1(local_lock_nested_bh, local_lock_t __percpu,
         | ^~~~~~~~~~~~~~~~~~~
   include/linux/lockdep.h:618:9: note: in expansion of macro 'WARN_ON_ONCE'
     618 |         WARN_ON_ONCE(__lockdep_enabled                  &&              \
         |         ^~~~~~~~~~~~
   include/asm-generic/percpu.h:148:25: note: in expansion of macro '__this_cpu_generic_read_noirq'
     148 |                 __ret = __this_cpu_generic_read_noirq(pcp);             \
         |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/asm-generic/percpu.h:375:41: note: in expansion of macro 'this_cpu_generic_read'
     375 | #define this_cpu_read_1(pcp)            this_cpu_generic_read(pcp)
         |                                         ^~~~~~~~~~~~~~~~~~~~~
   include/linux/percpu-defs.h:323:30: note: in expansion of macro 'this_cpu_read_1'
     323 |         case 1: pscr_ret__ = stem##1(variable); break;                  \
         |                              ^~~~
   include/linux/percpu-defs.h:497:41: note: in expansion of macro '__pcpu_size_call_return'
     497 | #define this_cpu_read(pcp)              __pcpu_size_call_return(this_cpu_read_, pcp)
         |                                         ^~~~~~~~~~~~~~~~~~~~~~~
   include/linux/lockdep.h:573:50: note: in expansion of macro 'this_cpu_read'
     573 | #define __lockdep_enabled       (debug_locks && !this_cpu_read(lockdep_recursion))
         |                                                  ^~~~~~~~~~~~~
   include/linux/lockdep.h:618:22: note: in expansion of macro '__lockdep_enabled'
     618 |         WARN_ON_ONCE(__lockdep_enabled                  &&              \
         |                      ^~~~~~~~~~~~~~~~~
   include/linux/local_lock_internal.h:123:17: note: in expansion of macro 'lockdep_assert_in_softirq'
     123 |                 lockdep_assert_in_softirq();                    \
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/local_lock.h:66:9: note: in expansion of macro '__local_lock_nested_bh'
      66 |         __local_lock_nested_bh(_lock)
         |         ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/local_lock.h:72:21: note: in expansion of macro 'local_lock_nested_bh'
      72 |                     local_lock_nested_bh(_T->lock),
         |                     ^~~~~~~~~~~~~~~~~~~~
   include/asm-generic/percpu.h:138:9: error: implicit declaration of function 'raw_local_irq_restore' [-Wimplicit-function-declaration]
     138 |         raw_local_irq_restore(___flags);                                \
         |         ^~~~~~~~~~~~~~~~~~~~~
   include/linux/cleanup.h:393:9: note: in definition of macro '__DEFINE_LOCK_GUARD_1'
     393 |         _lock;                                                          \
         |         ^~~~~
   include/linux/local_lock.h:71:1: note: in expansion of macro 'DEFINE_LOCK_GUARD_1'
      71 | DEFINE_LOCK_GUARD_1(local_lock_nested_bh, local_lock_t __percpu,
         | ^~~~~~~~~~~~~~~~~~~
   include/linux/lockdep.h:618:9: note: in expansion of macro 'WARN_ON_ONCE'
     618 |         WARN_ON_ONCE(__lockdep_enabled                  &&              \
         |         ^~~~~~~~~~~~
   include/asm-generic/percpu.h:148:25: note: in expansion of macro '__this_cpu_generic_read_noirq'
     148 |                 __ret = __this_cpu_generic_read_noirq(pcp);             \
         |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/asm-generic/percpu.h:375:41: note: in expansion of macro 'this_cpu_generic_read'
     375 | #define this_cpu_read_1(pcp)            this_cpu_generic_read(pcp)
         |                                         ^~~~~~~~~~~~~~~~~~~~~
   include/linux/percpu-defs.h:323:30: note: in expansion of macro 'this_cpu_read_1'
     323 |         case 1: pscr_ret__ = stem##1(variable); break;                  \
         |                              ^~~~
   include/linux/percpu-defs.h:497:41: note: in expansion of macro '__pcpu_size_call_return'
     497 | #define this_cpu_read(pcp)              __pcpu_size_call_return(this_cpu_read_, pcp)
         |                                         ^~~~~~~~~~~~~~~~~~~~~~~
   include/linux/lockdep.h:573:50: note: in expansion of macro 'this_cpu_read'
     573 | #define __lockdep_enabled       (debug_locks && !this_cpu_read(lockdep_recursion))
         |                                                  ^~~~~~~~~~~~~
   include/linux/lockdep.h:618:22: note: in expansion of macro '__lockdep_enabled'
     618 |         WARN_ON_ONCE(__lockdep_enabled                  &&              \
         |                      ^~~~~~~~~~~~~~~~~
   include/linux/local_lock_internal.h:123:17: note: in expansion of macro 'lockdep_assert_in_softirq'
     123 |                 lockdep_assert_in_softirq();                    \
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/local_lock.h:66:9: note: in expansion of macro '__local_lock_nested_bh'
      66 |         __local_lock_nested_bh(_lock)
         |         ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/local_lock.h:72:21: note: in expansion of macro 'local_lock_nested_bh'
      72 |                     local_lock_nested_bh(_T->lock),
         |                     ^~~~~~~~~~~~~~~~~~~~


vim +/local_irq_enable +111 include/linux/local_lock_internal.h

c5bcab7558220bb Sebastian Andrzej Siewior 2024-06-20   78  
91710728d1725de Thomas Gleixner           2020-05-27   79  #define __local_lock(lock)					\
91710728d1725de Thomas Gleixner           2020-05-27   80  	do {							\
91710728d1725de Thomas Gleixner           2020-05-27   81  		preempt_disable();				\
91710728d1725de Thomas Gleixner           2020-05-27   82  		local_lock_acquire(this_cpu_ptr(lock));		\
895e91e6a76fc47 Marco Elver               2025-01-30   83  		__acquire(lock);				\
91710728d1725de Thomas Gleixner           2020-05-27   84  	} while (0)
91710728d1725de Thomas Gleixner           2020-05-27   85  
91710728d1725de Thomas Gleixner           2020-05-27   86  #define __local_lock_irq(lock)					\
91710728d1725de Thomas Gleixner           2020-05-27   87  	do {							\
91710728d1725de Thomas Gleixner           2020-05-27  @88  		local_irq_disable();				\
91710728d1725de Thomas Gleixner           2020-05-27   89  		local_lock_acquire(this_cpu_ptr(lock));		\
895e91e6a76fc47 Marco Elver               2025-01-30   90  		__acquire(lock);				\
91710728d1725de Thomas Gleixner           2020-05-27   91  	} while (0)
91710728d1725de Thomas Gleixner           2020-05-27   92  
91710728d1725de Thomas Gleixner           2020-05-27   93  #define __local_lock_irqsave(lock, flags)			\
91710728d1725de Thomas Gleixner           2020-05-27   94  	do {							\
91710728d1725de Thomas Gleixner           2020-05-27  @95  		local_irq_save(flags);				\
91710728d1725de Thomas Gleixner           2020-05-27   96  		local_lock_acquire(this_cpu_ptr(lock));		\
895e91e6a76fc47 Marco Elver               2025-01-30   97  		__acquire(lock);				\
91710728d1725de Thomas Gleixner           2020-05-27   98  	} while (0)
91710728d1725de Thomas Gleixner           2020-05-27   99  
91710728d1725de Thomas Gleixner           2020-05-27  100  #define __local_unlock(lock)					\
91710728d1725de Thomas Gleixner           2020-05-27  101  	do {							\
895e91e6a76fc47 Marco Elver               2025-01-30  102  		__release(lock);				\
91710728d1725de Thomas Gleixner           2020-05-27  103  		local_lock_release(this_cpu_ptr(lock));		\
91710728d1725de Thomas Gleixner           2020-05-27  104  		preempt_enable();				\
91710728d1725de Thomas Gleixner           2020-05-27  105  	} while (0)
91710728d1725de Thomas Gleixner           2020-05-27  106  
91710728d1725de Thomas Gleixner           2020-05-27  107  #define __local_unlock_irq(lock)				\
91710728d1725de Thomas Gleixner           2020-05-27  108  	do {							\
895e91e6a76fc47 Marco Elver               2025-01-30  109  		__release(lock);				\
91710728d1725de Thomas Gleixner           2020-05-27  110  		local_lock_release(this_cpu_ptr(lock));		\
91710728d1725de Thomas Gleixner           2020-05-27 @111  		local_irq_enable();				\
91710728d1725de Thomas Gleixner           2020-05-27  112  	} while (0)
91710728d1725de Thomas Gleixner           2020-05-27  113  
91710728d1725de Thomas Gleixner           2020-05-27  114  #define __local_unlock_irqrestore(lock, flags)			\
91710728d1725de Thomas Gleixner           2020-05-27  115  	do {							\
895e91e6a76fc47 Marco Elver               2025-01-30  116  		__release(lock);				\
91710728d1725de Thomas Gleixner           2020-05-27  117  		local_lock_release(this_cpu_ptr(lock));		\
91710728d1725de Thomas Gleixner           2020-05-27 @118  		local_irq_restore(flags);			\
91710728d1725de Thomas Gleixner           2020-05-27  119  	} while (0)
026659b9774e4c5 Thomas Gleixner           2021-08-15  120  

:::::: The code at line 111 was first introduced by commit
:::::: 91710728d1725de51d06b40674abf6e860d592c7 locking: Introduce local_lock()

:::::: TO: Thomas Gleixner <tglx@linutronix.de>
:::::: CC: Ingo Molnar <mingo@kernel.org>

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-02-14 12:37 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-14 12:36 [melver:cap-analysis/dev 18/26] include/linux/local_lock_internal.h:111:17: error: implicit declaration of function 'local_irq_enable' kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.