include/linux/atomic-fallback.h:439:9: sparse: sparse: context imbalance in 'btrfs_set_lock_blocking_read' - unexpected unlock

From: kernel test robot
Date: Tue Jul 07 2020 - 00:36:57 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: bfe91da29bfad9941d5d703d45e29f0812a20724
commit: d6156218bec93965b6a43ba2686ad962ce77c854 btrfs: make locking assertion helpers static inline
date: 8 months ago
config: ia64-randconfig-s031-20200707 (attached as .config)
compiler: ia64-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.2-31-gabbfd661-dirty
git checkout d6156218bec93965b6a43ba2686ad962ce77c854
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=ia64

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>


sparse warnings: (new ones prefixed by >>)

>> include/linux/atomic-fallback.h:439:9: sparse: sparse: context imbalance in 'btrfs_set_lock_blocking_read' - unexpected unlock
fs/btrfs/locking.c:25:9: sparse: sparse: context imbalance in 'btrfs_set_lock_blocking_write' - unexpected unlock
fs/btrfs/locking.c:127:6: sparse: sparse: context imbalance in 'btrfs_tree_read_lock' - different lock contexts for basic block
fs/btrfs/locking.c:166:5: sparse: sparse: context imbalance in 'btrfs_tree_read_lock_atomic' - different lock contexts for basic block
fs/btrfs/locking.c:186:5: sparse: sparse: context imbalance in 'btrfs_try_tree_read_lock' - different lock contexts for basic block
fs/btrfs/locking.c:208:5: sparse: sparse: context imbalance in 'btrfs_try_tree_write_lock' - different lock contexts for basic block
>> include/linux/atomic-fallback.h:439:9: sparse: sparse: context imbalance in 'btrfs_tree_read_unlock' - unexpected unlock
fs/btrfs/locking.c:19:9: sparse: sparse: context imbalance in 'btrfs_tree_lock' - wrong count at exit
fs/btrfs/locking.c:25:9: sparse: sparse: context imbalance in 'btrfs_tree_unlock' - unexpected unlock

vim +/btrfs_set_lock_blocking_read +439 include/linux/atomic-fallback.h

9fa45070a2e59a Mark Rutland 2018-09-04 434
9fa45070a2e59a Mark Rutland 2018-09-04 435 #ifndef atomic_dec
9fa45070a2e59a Mark Rutland 2018-09-04 436 static inline void
9fa45070a2e59a Mark Rutland 2018-09-04 437 atomic_dec(atomic_t *v)
9fa45070a2e59a Mark Rutland 2018-09-04 438 {
9fa45070a2e59a Mark Rutland 2018-09-04 @439 atomic_sub(1, v);
9fa45070a2e59a Mark Rutland 2018-09-04 440 }
9fa45070a2e59a Mark Rutland 2018-09-04 441 #define atomic_dec atomic_dec
9fa45070a2e59a Mark Rutland 2018-09-04 442 #endif
9fa45070a2e59a Mark Rutland 2018-09-04 443

:::::: The code at line 439 was first introduced by commit
:::::: 9fa45070a2e59a871e1cd3370173369f3a4f61e2 locking/atomics: Switch to generated fallbacks

:::::: TO: Mark Rutland <mark.rutland@xxxxxxx>
:::::: CC: Ingo Molnar <mingo@xxxxxxxxxx>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip