* [boqun:rust-sync 6/10] include/linux/spinlock.h:388:1: warning: raw_spinlock 'lock->.rlock' is still held at the end of function
@ 2026-03-19 9:16 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-03-19 9:16 UTC (permalink / raw)
To: Boqun Feng; +Cc: llvm, oe-kbuild-all, Lyude Paul
tree: https://git.kernel.org/pub/scm/linux/kernel/git/boqun/linux.git rust-sync
head: 754219dea900fe187e29e8b5ff9fa49238e394c7
commit: b5db14c62254a116585d2620ccee08d1613c25e3 [6/10] irq & spin_lock: Add counted interrupt disabling/enabling
config: hexagon-randconfig-001-20260319 (https://download.01.org/0day-ci/archive/20260319/202603191712.uxBdFAep-lkp@intel.com/config)
compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project 4abb927bacf37f18f6359a41639a6d1b3bffffb5)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260319/202603191712.uxBdFAep-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/202603191712.uxBdFAep-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from crypto/rsa.c:9:
In file included from include/linux/module.h:18:
In file included from include/linux/kmod.h:9:
In file included from include/linux/umh.h:4:
In file included from include/linux/gfp.h:7:
In file included from include/linux/mmzone.h:8:
>> include/linux/spinlock.h:388:1: warning: raw_spinlock 'lock->.rlock' is still held at the end of function [-Wthread-safety-analysis]
388 | }
| ^
include/linux/spinlock.h:387:2: note: raw_spinlock acquired here
387 | raw_spin_lock_irq_disable(&lock->rlock);
| ^
include/linux/spinlock.h:277:41: note: expanded from macro 'raw_spin_lock_irq_disable'
277 | #define raw_spin_lock_irq_disable(lock) _raw_spin_lock_irq_disable(lock)
| ^
include/linux/spinlock_api_up.h:80:42: note: expanded from macro '_raw_spin_lock_irq_disable'
80 | #define _raw_spin_lock_irq_disable(lock) __LOCK_IRQ_DISABLE(lock)
| ^
include/linux/spinlock_api_up.h:46:35: note: expanded from macro '__LOCK_IRQ_DISABLE'
46 | do { local_interrupt_disable(); __LOCK(lock, ##__VA_ARGS__); } while (0)
| ^
include/linux/spinlock_api_up.h:34:27: note: expanded from macro '__LOCK'
34 | do { preempt_disable(); ___LOCK_##__VA_ARGS__(lock); } while (0)
| ^
include/linux/spinlock_api_up.h:28:8: note: expanded from macro '___LOCK_'
28 | do { __acquire(lock); (void)(lock); } while (0)
| ^
include/linux/compiler-context-analysis.h:361:23: note: expanded from macro '__acquire'
361 | #define __acquire(x) __acquire_ctx_lock(x)
| ^
In file included from crypto/rsa.c:9:
In file included from include/linux/module.h:18:
In file included from include/linux/kmod.h:9:
In file included from include/linux/umh.h:4:
In file included from include/linux/gfp.h:7:
In file included from include/linux/mmzone.h:8:
>> include/linux/spinlock.h:422:2: warning: releasing raw_spinlock 'lock->.rlock' that was not held [-Wthread-safety-analysis]
422 | raw_spin_unlock_irq_enable(&lock->rlock);
| ^
include/linux/spinlock.h:281:42: note: expanded from macro 'raw_spin_unlock_irq_enable'
281 | #define raw_spin_unlock_irq_enable(lock) _raw_spin_unlock_irq_enable(lock)
| ^
include/linux/spinlock_api_up.h:143:43: note: expanded from macro '_raw_spin_unlock_irq_enable'
143 | #define _raw_spin_unlock_irq_enable(lock) __UNLOCK_IRQ_ENABLE(lock)
| ^
include/linux/spinlock_api_up.h:68:8: note: expanded from macro '__UNLOCK_IRQ_ENABLE'
68 | do { __UNLOCK(lock, ##__VA_ARGS__); local_interrupt_enable(); } while (0)
| ^
include/linux/spinlock_api_up.h:55:26: note: expanded from macro '__UNLOCK'
55 | do { preempt_enable(); ___UNLOCK_##__VA_ARGS__(lock); } while (0)
| ^
include/linux/spinlock_api_up.h:49:8: note: expanded from macro '___UNLOCK_'
49 | do { __release(lock); (void)(lock); } while (0)
| ^
include/linux/compiler-context-analysis.h:369:23: note: expanded from macro '__release'
369 | #define __release(x) __release_ctx_lock(x)
| ^
2 warnings generated.
vim +388 include/linux/spinlock.h
384
385 static __always_inline void spin_lock_irq_disable(spinlock_t *lock)
386 {
387 raw_spin_lock_irq_disable(&lock->rlock);
> 388 }
389
390 #define spin_lock_irqsave(lock, flags) \
391 do { \
392 raw_spin_lock_irqsave(spinlock_check(lock), flags); \
393 __release(spinlock_check(lock)); __acquire(lock); \
394 } while (0)
395
396 #define spin_lock_irqsave_nested(lock, flags, subclass) \
397 do { \
398 raw_spin_lock_irqsave_nested(spinlock_check(lock), flags, subclass); \
399 __release(spinlock_check(lock)); __acquire(lock); \
400 } while (0)
401
402 static __always_inline void spin_unlock(spinlock_t *lock)
403 __releases(lock) __no_context_analysis
404 {
405 raw_spin_unlock(&lock->rlock);
406 }
407
408 static __always_inline void spin_unlock_bh(spinlock_t *lock)
409 __releases(lock) __no_context_analysis
410 {
411 raw_spin_unlock_bh(&lock->rlock);
412 }
413
414 static __always_inline void spin_unlock_irq(spinlock_t *lock)
415 __releases(lock) __no_context_analysis
416 {
417 raw_spin_unlock_irq(&lock->rlock);
418 }
419
420 static __always_inline void spin_unlock_irq_enable(spinlock_t *lock)
421 {
> 422 raw_spin_unlock_irq_enable(&lock->rlock);
423 }
424
--
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:[~2026-03-19 9:19 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-19 9:16 [boqun:rust-sync 6/10] include/linux/spinlock.h:388:1: warning: raw_spinlock 'lock->.rlock' is still held at the end of function 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.