All of lore.kernel.org
 help / color / mirror / Atom feed
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/10] include/linux/spinlock.h:388:1: warning: raw_spinlock 'lock->.rlock' is still held at the end of function
Date: Thu, 19 Mar 2026 17:16:04 +0800	[thread overview]
Message-ID: <202603191712.uxBdFAep-lkp@intel.com> (raw)

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

                 reply	other threads:[~2026-03-19  9:19 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=202603191712.uxBdFAep-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 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.