From: kernel test robot <lkp@intel.com>
To: Boqun Feng <boqun.feng@gmail.com>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
Lyude Paul <lyude@redhat.com>
Subject: [boqun:rust-sync 6/12] include/linux/spinlock_api_smp.h:164:1: warning: raw_spinlock 'lock' is still held at the end of function
Date: Mon, 04 May 2026 16:04:43 +0800 [thread overview]
Message-ID: <202605041555.6gPRUiF4-lkp@intel.com> (raw)
tree: https://git.kernel.org/pub/scm/linux/kernel/git/boqun/linux.git rust-sync
head: 25f8ae3956f6e747f0eedaca70ed975a79068ec4
commit: 90ca6e15e07decdc384ce96c1e3bdf0be60f5085 [6/12] irq & spin_lock: Add counted interrupt disabling/enabling
config: powerpc64-randconfig-002-20260504 (https://download.01.org/0day-ci/archive/20260504/202605041555.6gPRUiF4-lkp@intel.com/config)
compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project 5bac06718f502014fade905512f1d26d578a18f3)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260504/202605041555.6gPRUiF4-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/202605041555.6gPRUiF4-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from crypto/crc32.c:12:
In file included from include/crypto/internal/hash.h:11:
In file included from include/crypto/algapi.h:13:
In file included from include/linux/crypto.h:15:
In file included from include/linux/completion.h:12:
In file included from include/linux/swait.h:7:
In file included from include/linux/spinlock.h:312:
>> include/linux/spinlock_api_smp.h:164:1: warning: raw_spinlock 'lock' is still held at the end of function [-Wthread-safety-analysis]
164 | }
| ^
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/crc32.c:12:
In file included from include/crypto/internal/hash.h:11:
In file included from include/crypto/algapi.h:13:
In file included from include/linux/crypto.h:15:
In file included from include/linux/completion.h:12:
In file included from include/linux/swait.h:7:
>> 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.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)
| ^
4 warnings generated.
vim +/lock +164 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
reply other threads:[~2026-05-04 8:06 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=202605041555.6gPRUiF4-lkp@intel.com \
--to=lkp@intel.com \
--cc=boqun.feng@gmail.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