arch/s390/include/asm/atomic.h:51:35: sparse: sparse: context imbalance in 'btrfs_set_lock_blocking_read' - unexpected unlock

From: kernel test robot
Date: Wed Jun 24 2020 - 00:17:09 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 3e08a95294a4fb3702bb3d35ed08028433c37fe6
commit: d6156218bec93965b6a43ba2686ad962ce77c854 btrfs: make locking assertion helpers static inline
date: 7 months ago
config: s390-randconfig-s031-20200623 (attached as .config)
compiler: s390-linux-gcc (GCC) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.2-dirty
git checkout d6156218bec93965b6a43ba2686ad962ce77c854
# save the attached .config to linux build tree
make W=1 C=1 ARCH=s390 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

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


sparse warnings: (new ones prefixed by >>)

>> arch/s390/include/asm/atomic.h:51:35: 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
>> arch/s390/include/asm/atomic.h:51:35: 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 +51 arch/s390/include/asm/atomic.h

56fefbbc3f13ad8 Peter Zijlstra 2016-04-18 46
5692e4d11cf5b51 Heiko Carstens 2013-09-16 47 static inline void atomic_add(int i, atomic_t *v)
5692e4d11cf5b51 Heiko Carstens 2013-09-16 48 {
5692e4d11cf5b51 Heiko Carstens 2013-09-16 49 #ifdef CONFIG_HAVE_MARCH_Z196_FEATURES
5692e4d11cf5b51 Heiko Carstens 2013-09-16 50 if (__builtin_constant_p(i) && (i > -129) && (i < 128)) {
126b30c3cb476ce Martin Schwidefsky 2016-11-11 @51 __atomic_add_const(i, &v->counter);
0ccc8b7ac860533 Heiko Carstens 2014-03-20 52 return;
5692e4d11cf5b51 Heiko Carstens 2013-09-16 53 }
5692e4d11cf5b51 Heiko Carstens 2013-09-16 54 #endif
126b30c3cb476ce Martin Schwidefsky 2016-11-11 55 __atomic_add(i, &v->counter);
5692e4d11cf5b51 Heiko Carstens 2013-09-16 56 }
5692e4d11cf5b51 Heiko Carstens 2013-09-16 57

:::::: The code at line 51 was first introduced by commit
:::::: 126b30c3cb476ce68489a657a7defb8e73775e6f s390/atomic: refactor atomic primitives

:::::: TO: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
:::::: CC: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>

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

Attachment: .config.gz
Description: application/gzip