include/asm-generic/mmiowb.h:56:9: sparse: sparse: context imbalance in 'cm_queue_work_unlock' - unexpected unlock

From: kernel test robot
Date: Mon Jun 08 2020 - 06:51:55 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: af7b4801030c07637840191c69eb666917e4135d
commit: e83f195aa45c1ffd73b3a950a887e41c260cf194 RDMA/cm: Pull duplicated code into cm_queue_work_unlock()
date: 4 weeks ago
config: riscv-randconfig-s032-20200608 (attached as .config)
compiler: riscv64-linux-gcc (GCC) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-247-gcadbd124-dirty
git checkout e83f195aa45c1ffd73b3a950a887e41c260cf194
# save the attached .config to linux build tree
make W=1 C=1 ARCH=riscv 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 >>)

drivers/infiniband/core/cm.c:1297:21: sparse: sparse: cast from restricted __be32
>> include/asm-generic/mmiowb.h:56:9: sparse: sparse: context imbalance in 'cm_queue_work_unlock' - unexpected unlock
drivers/infiniband/core/cm.c:2043:12: sparse: sparse: context imbalance in 'cm_req_handler' - different lock contexts for basic block
drivers/infiniband/core/cm.c:2422:12: sparse: sparse: context imbalance in 'cm_rep_handler' - different lock contexts for basic block
drivers/infiniband/core/cm.c:2533:12: sparse: sparse: context imbalance in 'cm_establish_handler' - different lock contexts for basic block
drivers/infiniband/core/cm.c:2556:12: sparse: sparse: context imbalance in 'cm_rtu_handler' - different lock contexts for basic block
drivers/infiniband/core/cm.c:2770:12: sparse: sparse: context imbalance in 'cm_dreq_handler' - different lock contexts for basic block
drivers/infiniband/core/cm.c:2847:12: sparse: sparse: context imbalance in 'cm_drep_handler' - different lock contexts for basic block
drivers/infiniband/core/cm.c:2995:12: sparse: sparse: context imbalance in 'cm_rej_handler' - wrong count at exit
drivers/infiniband/core/cm.c:3153:12: sparse: sparse: context imbalance in 'cm_mra_handler' - different lock contexts for basic block
drivers/infiniband/core/cm.c:3271:12: sparse: sparse: context imbalance in 'cm_lap_handler' - different lock contexts for basic block
drivers/infiniband/core/cm.c:3360:12: sparse: sparse: context imbalance in 'cm_apr_handler' - different lock contexts for basic block
drivers/infiniband/core/cm.c:3405:12: sparse: sparse: context imbalance in 'cm_timewait_handler' - different lock contexts for basic block

vim +/cm_queue_work_unlock +56 include/asm-generic/mmiowb.h

d1be6a28b13ce6d Will Deacon 2019-02-22 46
d1be6a28b13ce6d Will Deacon 2019-02-22 47 static inline void mmiowb_spin_unlock(void)
d1be6a28b13ce6d Will Deacon 2019-02-22 48 {
d1be6a28b13ce6d Will Deacon 2019-02-22 49 struct mmiowb_state *ms = __mmiowb_state();
d1be6a28b13ce6d Will Deacon 2019-02-22 50
d1be6a28b13ce6d Will Deacon 2019-02-22 51 if (unlikely(ms->mmiowb_pending)) {
d1be6a28b13ce6d Will Deacon 2019-02-22 52 ms->mmiowb_pending = 0;
d1be6a28b13ce6d Will Deacon 2019-02-22 53 mmiowb();
d1be6a28b13ce6d Will Deacon 2019-02-22 54 }
d1be6a28b13ce6d Will Deacon 2019-02-22 55
d1be6a28b13ce6d Will Deacon 2019-02-22 @56 ms->nesting_count--;

:::::: The code at line 56 was first introduced by commit
:::::: d1be6a28b13ce6d1bc42bf9b6a9454c65839225b asm-generic/mmiowb: Add generic implementation of mmiowb() tracking

:::::: TO: Will Deacon <will.deacon@xxxxxxx>
:::::: CC: Will Deacon <will.deacon@xxxxxxx>

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

Attachment: .config.gz
Description: application/gzip