Re: [POC 1/6] irq & spin_lock: Add counted interrupt disabling/enabling

From: kernel test robot
Date: Mon Oct 21 2024 - 03:36:05 EST


Hi Boqun,

kernel test robot noticed the following build errors:

[auto build test ERROR on tip/locking/core]
[also build test ERROR on linus/master v6.12-rc4 next-20241018]
[cannot apply to rust/rust-next]
[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/Boqun-Feng/irq-spin_lock-Add-counted-interrupt-disabling-enabling/20241018-135435
base: tip/locking/core
patch link: https://lore.kernel.org/r/20241018055125.2784186-2-boqun.feng%40gmail.com
patch subject: [POC 1/6] irq & spin_lock: Add counted interrupt disabling/enabling
config: um-allnoconfig (https://download.01.org/0day-ci/archive/20241021/202410211503.Ri6kGlzj-lkp@xxxxxxxxx/config)
compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241021/202410211503.Ri6kGlzj-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/202410211503.Ri6kGlzj-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

In file included from arch/um/kernel/asm-offsets.c:1:
In file included from arch/x86/um/shared/sysdep/kernel-offsets.h:3:
In file included from include/linux/sched.h:2140:
>> include/linux/spinlock.h:383:2: error: call to undeclared function '_raw_spin_lock_irq_disable'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
383 | raw_spin_lock_irq_disable(&lock->rlock);
| ^
include/linux/spinlock.h:275:41: note: expanded from macro 'raw_spin_lock_irq_disable'
275 | #define raw_spin_lock_irq_disable(lock) _raw_spin_lock_irq_disable(lock)
| ^
include/linux/spinlock.h:383:2: note: did you mean 'spin_lock_irq_disable'?
include/linux/spinlock.h:275:41: note: expanded from macro 'raw_spin_lock_irq_disable'
275 | #define raw_spin_lock_irq_disable(lock) _raw_spin_lock_irq_disable(lock)
| ^
include/linux/spinlock.h:381:29: note: 'spin_lock_irq_disable' declared here
381 | static __always_inline void spin_lock_irq_disable(spinlock_t *lock)
| ^
>> include/linux/spinlock.h:413:2: error: call to undeclared function '_raw_spin_unlock_irq_enable'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
413 | raw_spin_unlock_irq_enable(&lock->rlock);
| ^
include/linux/spinlock.h:279:42: note: expanded from macro 'raw_spin_unlock_irq_enable'
279 | #define raw_spin_unlock_irq_enable(lock) _raw_spin_unlock_irq_enable(lock)
| ^
include/linux/spinlock.h:413:2: note: did you mean 'spin_unlock_irq_enable'?
include/linux/spinlock.h:279:42: note: expanded from macro 'raw_spin_unlock_irq_enable'
279 | #define raw_spin_unlock_irq_enable(lock) _raw_spin_unlock_irq_enable(lock)
| ^
include/linux/spinlock.h:411:29: note: 'spin_unlock_irq_enable' declared here
411 | static __always_inline void spin_unlock_irq_enable(spinlock_t *lock)
| ^
2 errors generated.
make[3]: *** [scripts/Makefile.build:102: arch/um/kernel/asm-offsets.s] Error 1
make[3]: Target 'prepare' not remade because of errors.
make[2]: *** [Makefile:1203: prepare0] Error 2
make[2]: Target 'prepare' not remade because of errors.
make[1]: *** [Makefile:224: __sub-make] Error 2
make[1]: Target 'prepare' not remade because of errors.
make: *** [Makefile:224: __sub-make] Error 2
make: Target 'prepare' not remade because of errors.


vim +/_raw_spin_lock_irq_disable +383 include/linux/spinlock.h

380
381 static __always_inline void spin_lock_irq_disable(spinlock_t *lock)
382 {
> 383 raw_spin_lock_irq_disable(&lock->rlock);
384 }
385
386 #define spin_lock_irqsave(lock, flags) \
387 do { \
388 raw_spin_lock_irqsave(spinlock_check(lock), flags); \
389 } while (0)
390
391 #define spin_lock_irqsave_nested(lock, flags, subclass) \
392 do { \
393 raw_spin_lock_irqsave_nested(spinlock_check(lock), flags, subclass); \
394 } while (0)
395
396 static __always_inline void spin_unlock(spinlock_t *lock)
397 {
398 raw_spin_unlock(&lock->rlock);
399 }
400
401 static __always_inline void spin_unlock_bh(spinlock_t *lock)
402 {
403 raw_spin_unlock_bh(&lock->rlock);
404 }
405
406 static __always_inline void spin_unlock_irq(spinlock_t *lock)
407 {
408 raw_spin_unlock_irq(&lock->rlock);
409 }
410
411 static __always_inline void spin_unlock_irq_enable(spinlock_t *lock)
412 {
> 413 raw_spin_unlock_irq_enable(&lock->rlock);
414 }
415

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