From: Boqun Feng <boqun@kernel.org>
To: kernel test robot <lkp@intel.com>
Cc: Boqun Feng <boqun.feng@gmail.com>,
llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
Lyude Paul <lyude@redhat.com>
Subject: Re: [boqun:rust-sync 16/18] include/linux/spinlock_api_smp.h:163:2: warning: raw_spinlock 'lock' is not held on every path through here
Date: Tue, 3 Feb 2026 09:51:42 -0800 [thread overview]
Message-ID: <aYI1rpSirB4ccvUQ@tardis-2.local> (raw)
In-Reply-To: <202602031729.MQ9qJ1OX-lkp@intel.com>
On Tue, Feb 03, 2026 at 05:38:49PM +0800, kernel test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/boqun/linux.git rust-sync
> head: 04c35250bb394d7bc867e1527c3250e49d486025
> commit: c54b183eeade43270288ca1fa71cb4731bc78e8e [16/18] irq & spin_lock: Add counted interrupt disabling/enabling
> config: sparc64-allmodconfig (https://download.01.org/0day-ci/archive/20260203/202602031729.MQ9qJ1OX-lkp@intel.com/config)
> compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 9b8addffa70cee5b2acc5454712d9cf78ce45710)
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260203/202602031729.MQ9qJ1OX-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/202602031729.MQ9qJ1OX-lkp@intel.com/
>
Thanks for reporting these. We indeed missed a few annotations in the
new API, I just pushed an update fixing it.
Regards,
Boqun
> All warnings (new ones prefixed by >>):
>
> In file included from crypto/api.c:17:
> 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:
> In file included from include/linux/spinlock.h:311:
> >> include/linux/spinlock_api_smp.h:163:2: warning: raw_spinlock 'lock' is not held on every path through here [-Wthread-safety-analysis]
> 163 | LOCK_CONTENDED(lock, do_raw_spin_trylock, do_raw_spin_lock);
> | ^
> include/linux/lockdep.h:447:2: note: expanded from macro 'LOCK_CONTENDED'
> 447 | lock_acquired(&(_lock)->dep_map, _RET_IP_); \
> | ^
> include/linux/spinlock_api_smp.h:163:44: note: raw_spinlock acquired here
> 163 | LOCK_CONTENDED(lock, do_raw_spin_trylock, do_raw_spin_lock);
> | ^
> >> include/linux/spinlock_api_smp.h:214:2: warning: releasing raw_spinlock 'lock' that was not held [-Wthread-safety-analysis]
> 214 | do_raw_spin_unlock(lock);
> | ^
> In file included from crypto/api.c:17:
> 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:387:1: warning: raw_spinlock 'lock->.rlock' is still held at the end of function [-Wthread-safety-analysis]
> 387 | }
> | ^
> include/linux/spinlock.h:386:2: note: raw_spinlock acquired here
> 386 | raw_spin_lock_irq_disable(&lock->rlock);
> | ^
> include/linux/spinlock.h:276:41: note: expanded from macro 'raw_spin_lock_irq_disable'
> 276 | #define raw_spin_lock_irq_disable(lock) _raw_spin_lock_irq_disable(lock)
> | ^
> >> include/linux/spinlock.h:421:2: warning: releasing raw_spinlock 'lock->.rlock' that was not held [-Wthread-safety-analysis]
> 421 | raw_spin_unlock_irq_enable(&lock->rlock);
> | ^
> include/linux/spinlock.h:280:42: note: expanded from macro 'raw_spin_unlock_irq_enable'
> 280 | #define raw_spin_unlock_irq_enable(lock) _raw_spin_unlock_irq_enable(lock)
> | ^
> 4 warnings generated.
>
>
> vim +/lock +163 include/linux/spinlock_api_smp.h
>
> 158
> 159 static inline void __raw_spin_lock_irq_disable(raw_spinlock_t *lock)
> 160 {
> 161 local_interrupt_disable();
> 162 spin_acquire(&lock->dep_map, 0, 0, _RET_IP_);
> > 163 LOCK_CONTENDED(lock, do_raw_spin_trylock, do_raw_spin_lock);
> 164 }
> 165
> 166 static inline void __raw_spin_lock_bh(raw_spinlock_t *lock)
> 167 __acquires(lock) __no_context_analysis
> 168 {
> 169 __local_bh_disable_ip(_RET_IP_, SOFTIRQ_LOCK_OFFSET);
> 170 spin_acquire(&lock->dep_map, 0, 0, _RET_IP_);
> 171 LOCK_CONTENDED(lock, do_raw_spin_trylock, do_raw_spin_lock);
> 172 }
> 173
> 174 static inline void __raw_spin_lock(raw_spinlock_t *lock)
> 175 __acquires(lock) __no_context_analysis
> 176 {
> 177 preempt_disable();
> 178 spin_acquire(&lock->dep_map, 0, 0, _RET_IP_);
> 179 LOCK_CONTENDED(lock, do_raw_spin_trylock, do_raw_spin_lock);
> 180 }
> 181
> 182 #endif /* !CONFIG_GENERIC_LOCKBREAK || CONFIG_DEBUG_LOCK_ALLOC */
> 183
> 184 static inline void __raw_spin_unlock(raw_spinlock_t *lock)
> 185 __releases(lock)
> 186 {
> 187 spin_release(&lock->dep_map, _RET_IP_);
> 188 do_raw_spin_unlock(lock);
> 189 preempt_enable();
> 190 }
> 191
> 192 static inline void __raw_spin_unlock_irqrestore(raw_spinlock_t *lock,
> 193 unsigned long flags)
> 194 __releases(lock)
> 195 {
> 196 spin_release(&lock->dep_map, _RET_IP_);
> 197 do_raw_spin_unlock(lock);
> 198 local_irq_restore(flags);
> 199 preempt_enable();
> 200 }
> 201
> 202 static inline void __raw_spin_unlock_irq(raw_spinlock_t *lock)
> 203 __releases(lock)
> 204 {
> 205 spin_release(&lock->dep_map, _RET_IP_);
> 206 do_raw_spin_unlock(lock);
> 207 local_irq_enable();
> 208 preempt_enable();
> 209 }
> 210
> 211 static inline void __raw_spin_unlock_irq_enable(raw_spinlock_t *lock)
> 212 {
> 213 spin_release(&lock->dep_map, _RET_IP_);
> > 214 do_raw_spin_unlock(lock);
> 215 local_interrupt_enable();
> 216 }
> 217
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
prev parent reply other threads:[~2026-02-03 17:51 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-03 9:38 [boqun:rust-sync 16/18] include/linux/spinlock_api_smp.h:163:2: warning: raw_spinlock 'lock' is not held on every path through here kernel test robot
2026-02-03 17:51 ` Boqun Feng [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aYI1rpSirB4ccvUQ@tardis-2.local \
--to=boqun@kernel.org \
--cc=boqun.feng@gmail.com \
--cc=lkp@intel.com \
--cc=llvm@lists.linux.dev \
--cc=lyude@redhat.com \
--cc=oe-kbuild-all@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox