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

From: kernel test robot
Date: Thu Jun 11 2020 - 02:01:40 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: b29482fde649c72441d5478a4ea2c52c56d97a5e
commit: e83f195aa45c1ffd73b3a950a887e41c260cf194 RDMA/cm: Pull duplicated code into cm_queue_work_unlock()
date: 4 weeks ago
config: sh-randconfig-s032-20200611 (attached as .config)
compiler: sh4-linux-gcc (GCC) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-250-g42323db3-dirty
git checkout e83f195aa45c1ffd73b3a950a887e41c260cf194
# save the attached .config to linux build tree
make W=1 C=1 ARCH=sh 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/irqflags.h:47: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 +47 include/asm-generic/irqflags.h

aafe4dbed0bf6c Arnd Bergmann 2009-05-13 42
aafe4dbed0bf6c Arnd Bergmann 2009-05-13 43 /* unconditionally enable interrupts */
df9ee29270c11d David Howells 2010-10-07 44 #ifndef arch_local_irq_enable
df9ee29270c11d David Howells 2010-10-07 45 static inline void arch_local_irq_enable(void)
aafe4dbed0bf6c Arnd Bergmann 2009-05-13 46 {
df9ee29270c11d David Howells 2010-10-07 @47 arch_local_irq_restore(ARCH_IRQ_ENABLED);
aafe4dbed0bf6c Arnd Bergmann 2009-05-13 48 }
aafe4dbed0bf6c Arnd Bergmann 2009-05-13 49 #endif
aafe4dbed0bf6c Arnd Bergmann 2009-05-13 50

:::::: The code at line 47 was first introduced by commit
:::::: df9ee29270c11dba7d0fe0b83ce47a4d8e8d2101 Fix IRQ flag handling naming

:::::: TO: David Howells <dhowells@xxxxxxxxxx>
:::::: CC: David Howells <dhowells@xxxxxxxxxx>

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

Attachment: .config.gz
Description: application/gzip