All of lore.kernel.org
 help / color / mirror / Atom feed
* arch/arm64/kvm/vgic/vgic.c:437:5: sparse: sparse: context imbalance in 'kvm_vgic_inject_irq' - different lock contexts for basic block
@ 2021-03-05  1:21 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2021-03-05  1:21 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 13871 bytes --]

CC: linux-kernel(a)vger.kernel.org
TO: Marc Zyngier <maz@kernel.org>

Hi Marc,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   3cb60ee6323968b694208c4cbd56a7176396e931
commit: 9ed24f4b712b855dcf7be3025b75b051cb73a2b7 KVM: arm64: Move virt/kvm/arm to arch/arm64
date:   10 months ago
:::::: branch date: 5 hours ago
:::::: commit date: 10 months ago
config: arm64-randconfig-s031-20210305 (attached as .config)
compiler: aarch64-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.3-245-gacc5c298-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9ed24f4b712b855dcf7be3025b75b051cb73a2b7
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 9ed24f4b712b855dcf7be3025b75b051cb73a2b7
        # 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=arm64 

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


"sparse warnings: (new ones prefixed by >>)"
   arch/arm64/kvm/vgic/vgic.c:353:17: sparse: sparse: context imbalance in 'vgic_queue_irq_unlock' - unexpected unlock
>> arch/arm64/kvm/vgic/vgic.c:437:5: sparse: sparse: context imbalance in 'kvm_vgic_inject_irq' - different lock contexts for basic block
--
>> arch/arm64/kvm/vgic/vgic-v3.c:314:5: sparse: sparse: context imbalance in 'vgic_v3_lpi_sync_pending_status' - different lock contexts for basic block
--
>> arch/arm64/kvm/vgic/vgic-mmio.c:854:24: sparse: sparse: cast to restricted __le16
>> arch/arm64/kvm/vgic/vgic-mmio.c:856:24: sparse: sparse: cast to restricted __le32
>> arch/arm64/kvm/vgic/vgic-mmio.c:858:24: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/vgic/vgic-mmio.c:878:22: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned long data @@     got restricted __le16 [usertype] @@
   arch/arm64/kvm/vgic/vgic-mmio.c:878:22: sparse:     expected unsigned long data
   arch/arm64/kvm/vgic/vgic-mmio.c:878:22: sparse:     got restricted __le16 [usertype]
>> arch/arm64/kvm/vgic/vgic-mmio.c:881:22: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned long data @@     got restricted __le32 [usertype] @@
   arch/arm64/kvm/vgic/vgic-mmio.c:881:22: sparse:     expected unsigned long data
   arch/arm64/kvm/vgic/vgic-mmio.c:881:22: sparse:     got restricted __le32 [usertype]
>> arch/arm64/kvm/vgic/vgic-mmio.c:884:22: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned long data @@     got restricted __le64 [usertype] @@
   arch/arm64/kvm/vgic/vgic-mmio.c:884:22: sparse:     expected unsigned long data
   arch/arm64/kvm/vgic/vgic-mmio.c:884:22: sparse:     got restricted __le64 [usertype]
>> arch/arm64/kvm/vgic/vgic-mmio.c:88:17: sparse: sparse: context imbalance in 'vgic_mmio_write_group' - different lock contexts for basic block
>> arch/arm64/kvm/vgic/vgic-mmio.c:124:9: sparse: sparse: context imbalance in 'vgic_mmio_write_senable' - different lock contexts for basic block
>> arch/arm64/kvm/vgic/vgic-mmio.c:195:9: sparse: sparse: context imbalance in 'vgic_uaccess_write_senable' - different lock contexts for basic block
>> arch/arm64/kvm/vgic/vgic-mmio.c:278:9: sparse: sparse: context imbalance in 'vgic_mmio_write_spending' - different lock contexts for basic block
>> arch/arm64/kvm/vgic/vgic-mmio.c:320:9: sparse: sparse: context imbalance in 'vgic_uaccess_write_spending' - different lock contexts for basic block
>> arch/arm64/kvm/vgic/vgic-mmio.c:565:9: sparse: sparse: context imbalance in 'vgic_mmio_change_active' - wrong count at exit
>> arch/arm64/kvm/vgic/vgic-mmio.c:773:30: sparse: sparse: context imbalance in 'vgic_write_irq_line_level_info' - different lock contexts for basic block
--
>> arch/arm64/kvm/vgic/vgic-mmio-v2.c:134:9: sparse: sparse: context imbalance in 'vgic_mmio_write_sgir' - different lock contexts for basic block
>> arch/arm64/kvm/vgic/vgic-mmio-v2.c:244:9: sparse: sparse: context imbalance in 'vgic_mmio_write_sgipends' - different lock contexts for basic block
--
>> arch/arm64/kvm/vgic/vgic-mmio-v3.c:338:9: sparse: sparse: context imbalance in 'vgic_v3_uaccess_write_pending' - different lock contexts for basic block
>> arch/arm64/kvm/vgic/vgic-mmio-v3.c:1025:17: sparse: sparse: context imbalance in 'vgic_v3_dispatch_sgi' - different lock contexts for basic block
--
>> arch/arm64/kvm/vgic/vgic-its.c:825:17: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:956:24: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/vgic/vgic-its.c:2134:13: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned long long [assigned] [usertype] val @@     got restricted __le64 [usertype] @@
   arch/arm64/kvm/vgic/vgic-its.c:2134:13: sparse:     expected unsigned long long [assigned] [usertype] val
   arch/arm64/kvm/vgic/vgic-its.c:2134:13: sparse:     got restricted __le64 [usertype]
   arch/arm64/kvm/vgic/vgic-its.c:2160:15: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2281:13: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned long long [assigned] [usertype] val @@     got restricted __le64 [usertype] @@
   arch/arm64/kvm/vgic/vgic-its.c:2281:13: sparse:     expected unsigned long long [assigned] [usertype] val
   arch/arm64/kvm/vgic/vgic-its.c:2281:13: sparse:     got restricted __le64 [usertype]
   arch/arm64/kvm/vgic/vgic-its.c:2307:17: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2405:17: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2461:13: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned long long [assigned] [usertype] val @@     got restricted __le64 [usertype] @@
   arch/arm64/kvm/vgic/vgic-its.c:2461:13: sparse:     expected unsigned long long [assigned] [usertype] val
   arch/arm64/kvm/vgic/vgic-its.c:2461:13: sparse:     got restricted __le64 [usertype]
   arch/arm64/kvm/vgic/vgic-its.c:2477:15: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/vgic/vgic-its.c:280:12: sparse: sparse: context imbalance in 'update_lpi_config' - different lock contexts for basic block
>> arch/arm64/kvm/vgic/vgic-its.c:443:9: sparse: sparse: context imbalance in 'its_sync_lpi_pending_table' - different lock contexts for basic block
>> arch/arm64/kvm/vgic/vgic-its.c:730:12: sparse: sparse: context imbalance in 'vgic_its_trigger_msi' - different lock contexts for basic block
>> arch/arm64/kvm/vgic/vgic-its.c:752:5: sparse: sparse: context imbalance in 'vgic_its_inject_cached_translation' - wrong count at exit

vim +/kvm_vgic_inject_irq +437 arch/arm64/kvm/vgic/vgic.c

81eeb95ddbabbb virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  419  
11710dec8a4508 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01  420  /**
11710dec8a4508 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01  421   * kvm_vgic_inject_irq - Inject an IRQ from a device to the vgic
11710dec8a4508 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01  422   * @kvm:     The VM structure pointer
11710dec8a4508 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01  423   * @cpuid:   The CPU for PPIs
11710dec8a4508 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01  424   * @intid:   The INTID to inject a new state to.
11710dec8a4508 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01  425   * @level:   Edge-triggered:  true:  to trigger the interrupt
11710dec8a4508 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01  426   *			      false: to ignore the call
11710dec8a4508 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01  427   *	     Level-sensitive  true:  raise the input signal
11710dec8a4508 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01  428   *			      false: lower the input signal
cb3f0ad881a6ce virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-05-16  429   * @owner:   The opaque pointer to the owner of the IRQ being raised to verify
cb3f0ad881a6ce virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-05-16  430   *           that the caller is allowed to inject this IRQ.  Userspace
cb3f0ad881a6ce virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-05-16  431   *           injections will have owner == NULL.
11710dec8a4508 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01  432   *
11710dec8a4508 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01  433   * The VGIC is not concerned with devices being active-LOW or active-HIGH for
11710dec8a4508 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01  434   * level-sensitive interrupts.  You can think of the level parameter as 1
11710dec8a4508 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01  435   * being HIGH and 0 being LOW and all devices being active-HIGH.
11710dec8a4508 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01  436   */
11710dec8a4508 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01 @437  int kvm_vgic_inject_irq(struct kvm *kvm, int cpuid, unsigned int intid,
cb3f0ad881a6ce virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-05-16  438  			bool level, void *owner)
81eeb95ddbabbb virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  439  {
81eeb95ddbabbb virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  440  	struct kvm_vcpu *vcpu;
81eeb95ddbabbb virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  441  	struct vgic_irq *irq;
006df0f34930e1 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2016-10-16  442  	unsigned long flags;
81eeb95ddbabbb virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  443  	int ret;
81eeb95ddbabbb virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  444  
81eeb95ddbabbb virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  445  	trace_vgic_update_irq_pending(cpuid, intid, level);
81eeb95ddbabbb virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  446  
ad275b8bb1e659 virt/kvm/arm/vgic/vgic.c Eric Auger       2015-12-21  447  	ret = vgic_lazy_init(kvm);
ad275b8bb1e659 virt/kvm/arm/vgic/vgic.c Eric Auger       2015-12-21  448  	if (ret)
ad275b8bb1e659 virt/kvm/arm/vgic/vgic.c Eric Auger       2015-12-21  449  		return ret;
ad275b8bb1e659 virt/kvm/arm/vgic/vgic.c Eric Auger       2015-12-21  450  
81eeb95ddbabbb virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  451  	vcpu = kvm_get_vcpu(kvm, cpuid);
81eeb95ddbabbb virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  452  	if (!vcpu && intid < VGIC_NR_PRIVATE_IRQS)
81eeb95ddbabbb virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  453  		return -EINVAL;
81eeb95ddbabbb virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  454  
81eeb95ddbabbb virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  455  	irq = vgic_get_irq(kvm, vcpu, intid);
81eeb95ddbabbb virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  456  	if (!irq)
81eeb95ddbabbb virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  457  		return -EINVAL;
81eeb95ddbabbb virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  458  
8fa3adb8c6beee virt/kvm/arm/vgic/vgic.c Julien Thierry   2019-01-07  459  	raw_spin_lock_irqsave(&irq->irq_lock, flags);
81eeb95ddbabbb virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  460  
cb3f0ad881a6ce virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-05-16  461  	if (!vgic_validate_injection(irq, level, owner)) {
81eeb95ddbabbb virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  462  		/* Nothing to see here, move along... */
8fa3adb8c6beee virt/kvm/arm/vgic/vgic.c Julien Thierry   2019-01-07  463  		raw_spin_unlock_irqrestore(&irq->irq_lock, flags);
5dd4b924e390af virt/kvm/arm/vgic/vgic.c Andre Przywara   2016-07-15  464  		vgic_put_irq(kvm, irq);
81eeb95ddbabbb virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  465  		return 0;
81eeb95ddbabbb virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  466  	}
81eeb95ddbabbb virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  467  
8694e4da66a636 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-01-23  468  	if (irq->config == VGIC_CONFIG_LEVEL)
81eeb95ddbabbb virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  469  		irq->line_level = level;
8694e4da66a636 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-01-23  470  	else
8694e4da66a636 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-01-23  471  		irq->pending_latch = true;
81eeb95ddbabbb virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  472  
006df0f34930e1 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2016-10-16  473  	vgic_queue_irq_unlock(kvm, irq, flags);
5dd4b924e390af virt/kvm/arm/vgic/vgic.c Andre Przywara   2016-07-15  474  	vgic_put_irq(kvm, irq);
81eeb95ddbabbb virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  475  
81eeb95ddbabbb virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  476  	return 0;
81eeb95ddbabbb virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  477  }
81eeb95ddbabbb virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  478  

:::::: The code at line 437 was first introduced by commit
:::::: 11710dec8a45084a3e0ad2f6da944c990fad23a4 KVM: arm/arm64: Remove kvm_vgic_inject_mapped_irq

:::::: TO: Christoffer Dall <christoffer.dall@linaro.org>
:::::: CC: Christoffer Dall <christoffer.dall@linaro.org>

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

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 45892 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* arch/arm64/kvm/vgic/vgic.c:437:5: sparse: sparse: context imbalance in 'kvm_vgic_inject_irq' - different lock contexts for basic block
@ 2020-12-26 17:00 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2020-12-26 17:00 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 19994 bytes --]

CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Marc Zyngier <maz@kernel.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   40f78232f97344afbbeb5b0008615f17c4b93466
commit: 9ed24f4b712b855dcf7be3025b75b051cb73a2b7 KVM: arm64: Move virt/kvm/arm to arch/arm64
date:   7 months ago
:::::: branch date: 13 hours ago
:::::: commit date: 7 months ago
config: arm64-randconfig-s032-20201223 (attached as .config)
compiler: aarch64-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.3-184-g1b896707-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9ed24f4b712b855dcf7be3025b75b051cb73a2b7
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 9ed24f4b712b855dcf7be3025b75b051cb73a2b7
        # 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=arm64 

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


"sparse warnings: (new ones prefixed by >>)"
   arch/arm64/kvm/vgic/vgic.c:353:17: sparse: sparse: context imbalance in 'vgic_queue_irq_unlock' - unexpected unlock
>> arch/arm64/kvm/vgic/vgic.c:437:5: sparse: sparse: context imbalance in 'kvm_vgic_inject_irq' - different lock contexts for basic block
--
>> arch/arm64/kvm/vgic/vgic-v3.c:314:5: sparse: sparse: context imbalance in 'vgic_v3_lpi_sync_pending_status' - different lock contexts for basic block
--
>> arch/arm64/kvm/vgic/vgic-mmio.c:854:24: sparse: sparse: cast to restricted __le16
>> arch/arm64/kvm/vgic/vgic-mmio.c:854:24: sparse: sparse: cast to restricted __le16
>> arch/arm64/kvm/vgic/vgic-mmio.c:854:24: sparse: sparse: cast to restricted __le16
>> arch/arm64/kvm/vgic/vgic-mmio.c:854:24: sparse: sparse: cast to restricted __le16
>> arch/arm64/kvm/vgic/vgic-mmio.c:856:24: sparse: sparse: cast to restricted __le32
>> arch/arm64/kvm/vgic/vgic-mmio.c:856:24: sparse: sparse: cast to restricted __le32
>> arch/arm64/kvm/vgic/vgic-mmio.c:856:24: sparse: sparse: cast to restricted __le32
>> arch/arm64/kvm/vgic/vgic-mmio.c:856:24: sparse: sparse: cast to restricted __le32
>> arch/arm64/kvm/vgic/vgic-mmio.c:856:24: sparse: sparse: cast to restricted __le32
>> arch/arm64/kvm/vgic/vgic-mmio.c:856:24: sparse: sparse: cast to restricted __le32
>> arch/arm64/kvm/vgic/vgic-mmio.c:858:24: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/vgic/vgic-mmio.c:858:24: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/vgic/vgic-mmio.c:858:24: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/vgic/vgic-mmio.c:858:24: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/vgic/vgic-mmio.c:858:24: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/vgic/vgic-mmio.c:858:24: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/vgic/vgic-mmio.c:858:24: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/vgic/vgic-mmio.c:858:24: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/vgic/vgic-mmio.c:858:24: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/vgic/vgic-mmio.c:858:24: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/vgic/vgic-mmio.c:878:22: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned long data @@     got restricted __le16 [usertype] @@
   arch/arm64/kvm/vgic/vgic-mmio.c:878:22: sparse:     expected unsigned long data
   arch/arm64/kvm/vgic/vgic-mmio.c:878:22: sparse:     got restricted __le16 [usertype]
>> arch/arm64/kvm/vgic/vgic-mmio.c:881:22: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned long data @@     got restricted __le32 [usertype] @@
   arch/arm64/kvm/vgic/vgic-mmio.c:881:22: sparse:     expected unsigned long data
   arch/arm64/kvm/vgic/vgic-mmio.c:881:22: sparse:     got restricted __le32 [usertype]
>> arch/arm64/kvm/vgic/vgic-mmio.c:884:22: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned long data @@     got restricted __le64 [usertype] @@
   arch/arm64/kvm/vgic/vgic-mmio.c:884:22: sparse:     expected unsigned long data
   arch/arm64/kvm/vgic/vgic-mmio.c:884:22: sparse:     got restricted __le64 [usertype]
>> arch/arm64/kvm/vgic/vgic-mmio.c:88:17: sparse: sparse: context imbalance in 'vgic_mmio_write_group' - different lock contexts for basic block
>> arch/arm64/kvm/vgic/vgic-mmio.c:124:9: sparse: sparse: context imbalance in 'vgic_mmio_write_senable' - different lock contexts for basic block
>> arch/arm64/kvm/vgic/vgic-mmio.c:195:9: sparse: sparse: context imbalance in 'vgic_uaccess_write_senable' - different lock contexts for basic block
>> arch/arm64/kvm/vgic/vgic-mmio.c:278:9: sparse: sparse: context imbalance in 'vgic_mmio_write_spending' - different lock contexts for basic block
>> arch/arm64/kvm/vgic/vgic-mmio.c:320:9: sparse: sparse: context imbalance in 'vgic_uaccess_write_spending' - different lock contexts for basic block
>> arch/arm64/kvm/vgic/vgic-mmio.c:565:9: sparse: sparse: context imbalance in 'vgic_mmio_change_active' - wrong count at exit
>> arch/arm64/kvm/vgic/vgic-mmio.c:773:30: sparse: sparse: context imbalance in 'vgic_write_irq_line_level_info' - different lock contexts for basic block
--
>> arch/arm64/kvm/vgic/vgic-mmio-v2.c:134:9: sparse: sparse: context imbalance in 'vgic_mmio_write_sgir' - different lock contexts for basic block
>> arch/arm64/kvm/vgic/vgic-mmio-v2.c:244:9: sparse: sparse: context imbalance in 'vgic_mmio_write_sgipends' - different lock contexts for basic block
--
>> arch/arm64/kvm/vgic/vgic-mmio-v3.c:338:9: sparse: sparse: context imbalance in 'vgic_v3_uaccess_write_pending' - different lock contexts for basic block
>> arch/arm64/kvm/vgic/vgic-mmio-v3.c:1025:17: sparse: sparse: context imbalance in 'vgic_v3_dispatch_sgi' - different lock contexts for basic block
--
>> arch/arm64/kvm/vgic/vgic-its.c:825:17: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/vgic/vgic-its.c:825:17: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/vgic/vgic-its.c:825:17: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/vgic/vgic-its.c:825:17: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/vgic/vgic-its.c:825:17: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/vgic/vgic-its.c:825:17: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/vgic/vgic-its.c:825:17: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/vgic/vgic-its.c:825:17: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/vgic/vgic-its.c:825:17: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/vgic/vgic-its.c:825:17: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:956:24: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:956:24: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:956:24: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:956:24: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:956:24: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:956:24: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:956:24: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:956:24: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:956:24: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:956:24: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/vgic/vgic-its.c:2134:13: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned long long [assigned] [usertype] val @@     got restricted __le64 [usertype] @@
   arch/arm64/kvm/vgic/vgic-its.c:2134:13: sparse:     expected unsigned long long [assigned] [usertype] val
   arch/arm64/kvm/vgic/vgic-its.c:2134:13: sparse:     got restricted __le64 [usertype]
   arch/arm64/kvm/vgic/vgic-its.c:2160:15: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2160:15: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2160:15: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2160:15: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2160:15: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2160:15: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2160:15: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2160:15: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2160:15: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2160:15: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2281:13: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned long long [assigned] [usertype] val @@     got restricted __le64 [usertype] @@
   arch/arm64/kvm/vgic/vgic-its.c:2281:13: sparse:     expected unsigned long long [assigned] [usertype] val
   arch/arm64/kvm/vgic/vgic-its.c:2281:13: sparse:     got restricted __le64 [usertype]
   arch/arm64/kvm/vgic/vgic-its.c:2307:17: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2307:17: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2307:17: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2307:17: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2307:17: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2307:17: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2307:17: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2307:17: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2307:17: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2307:17: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2405:17: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2405:17: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2405:17: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2405:17: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2405:17: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2405:17: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2405:17: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2405:17: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2405:17: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2405:17: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2461:13: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned long long [assigned] [usertype] val @@     got restricted __le64 [usertype] @@
   arch/arm64/kvm/vgic/vgic-its.c:2461:13: sparse:     expected unsigned long long [assigned] [usertype] val
   arch/arm64/kvm/vgic/vgic-its.c:2461:13: sparse:     got restricted __le64 [usertype]
   arch/arm64/kvm/vgic/vgic-its.c:2477:15: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2477:15: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2477:15: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2477:15: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2477:15: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2477:15: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2477:15: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2477:15: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2477:15: sparse: sparse: cast to restricted __le64
   arch/arm64/kvm/vgic/vgic-its.c:2477:15: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/vgic/vgic-its.c:280:12: sparse: sparse: context imbalance in 'update_lpi_config' - different lock contexts for basic block
>> arch/arm64/kvm/vgic/vgic-its.c:443:9: sparse: sparse: context imbalance in 'its_sync_lpi_pending_table' - different lock contexts for basic block
>> arch/arm64/kvm/vgic/vgic-its.c:730:12: sparse: sparse: context imbalance in 'vgic_its_trigger_msi' - different lock contexts for basic block
>> arch/arm64/kvm/vgic/vgic-its.c:752:5: sparse: sparse: context imbalance in 'vgic_its_inject_cached_translation' - wrong count at exit

vim +/kvm_vgic_inject_irq +437 arch/arm64/kvm/vgic/vgic.c

81eeb95ddbabbb9 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  419  
11710dec8a45084 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01  420  /**
11710dec8a45084 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01  421   * kvm_vgic_inject_irq - Inject an IRQ from a device to the vgic
11710dec8a45084 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01  422   * @kvm:     The VM structure pointer
11710dec8a45084 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01  423   * @cpuid:   The CPU for PPIs
11710dec8a45084 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01  424   * @intid:   The INTID to inject a new state to.
11710dec8a45084 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01  425   * @level:   Edge-triggered:  true:  to trigger the interrupt
11710dec8a45084 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01  426   *			      false: to ignore the call
11710dec8a45084 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01  427   *	     Level-sensitive  true:  raise the input signal
11710dec8a45084 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01  428   *			      false: lower the input signal
cb3f0ad881a6cee virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-05-16  429   * @owner:   The opaque pointer to the owner of the IRQ being raised to verify
cb3f0ad881a6cee virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-05-16  430   *           that the caller is allowed to inject this IRQ.  Userspace
cb3f0ad881a6cee virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-05-16  431   *           injections will have owner == NULL.
11710dec8a45084 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01  432   *
11710dec8a45084 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01  433   * The VGIC is not concerned with devices being active-LOW or active-HIGH for
11710dec8a45084 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01  434   * level-sensitive interrupts.  You can think of the level parameter as 1
11710dec8a45084 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01  435   * being HIGH and 0 being LOW and all devices being active-HIGH.
11710dec8a45084 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01  436   */
11710dec8a45084 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-02-01 @437  int kvm_vgic_inject_irq(struct kvm *kvm, int cpuid, unsigned int intid,
cb3f0ad881a6cee virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-05-16  438  			bool level, void *owner)
81eeb95ddbabbb9 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  439  {
81eeb95ddbabbb9 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  440  	struct kvm_vcpu *vcpu;
81eeb95ddbabbb9 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  441  	struct vgic_irq *irq;
006df0f34930e18 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2016-10-16  442  	unsigned long flags;
81eeb95ddbabbb9 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  443  	int ret;
81eeb95ddbabbb9 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  444  
81eeb95ddbabbb9 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  445  	trace_vgic_update_irq_pending(cpuid, intid, level);
81eeb95ddbabbb9 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  446  
ad275b8bb1e659b virt/kvm/arm/vgic/vgic.c Eric Auger       2015-12-21  447  	ret = vgic_lazy_init(kvm);
ad275b8bb1e659b virt/kvm/arm/vgic/vgic.c Eric Auger       2015-12-21  448  	if (ret)
ad275b8bb1e659b virt/kvm/arm/vgic/vgic.c Eric Auger       2015-12-21  449  		return ret;
ad275b8bb1e659b virt/kvm/arm/vgic/vgic.c Eric Auger       2015-12-21  450  
81eeb95ddbabbb9 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  451  	vcpu = kvm_get_vcpu(kvm, cpuid);
81eeb95ddbabbb9 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  452  	if (!vcpu && intid < VGIC_NR_PRIVATE_IRQS)
81eeb95ddbabbb9 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  453  		return -EINVAL;
81eeb95ddbabbb9 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  454  
81eeb95ddbabbb9 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  455  	irq = vgic_get_irq(kvm, vcpu, intid);
81eeb95ddbabbb9 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  456  	if (!irq)
81eeb95ddbabbb9 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  457  		return -EINVAL;
81eeb95ddbabbb9 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  458  
8fa3adb8c6beee4 virt/kvm/arm/vgic/vgic.c Julien Thierry   2019-01-07  459  	raw_spin_lock_irqsave(&irq->irq_lock, flags);
81eeb95ddbabbb9 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  460  
cb3f0ad881a6cee virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-05-16  461  	if (!vgic_validate_injection(irq, level, owner)) {
81eeb95ddbabbb9 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  462  		/* Nothing to see here, move along... */
8fa3adb8c6beee4 virt/kvm/arm/vgic/vgic.c Julien Thierry   2019-01-07  463  		raw_spin_unlock_irqrestore(&irq->irq_lock, flags);
5dd4b924e390af4 virt/kvm/arm/vgic/vgic.c Andre Przywara   2016-07-15  464  		vgic_put_irq(kvm, irq);
81eeb95ddbabbb9 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  465  		return 0;
81eeb95ddbabbb9 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  466  	}
81eeb95ddbabbb9 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  467  
8694e4da66a6366 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-01-23  468  	if (irq->config == VGIC_CONFIG_LEVEL)
81eeb95ddbabbb9 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  469  		irq->line_level = level;
8694e4da66a6366 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-01-23  470  	else
8694e4da66a6366 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2017-01-23  471  		irq->pending_latch = true;
81eeb95ddbabbb9 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  472  
006df0f34930e18 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2016-10-16  473  	vgic_queue_irq_unlock(kvm, irq, flags);
5dd4b924e390af4 virt/kvm/arm/vgic/vgic.c Andre Przywara   2016-07-15  474  	vgic_put_irq(kvm, irq);
81eeb95ddbabbb9 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  475  
81eeb95ddbabbb9 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  476  	return 0;
81eeb95ddbabbb9 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  477  }
81eeb95ddbabbb9 virt/kvm/arm/vgic/vgic.c Christoffer Dall 2015-11-25  478  

:::::: The code at line 437 was first introduced by commit
:::::: 11710dec8a45084a3e0ad2f6da944c990fad23a4 KVM: arm/arm64: Remove kvm_vgic_inject_mapped_irq

:::::: TO: Christoffer Dall <christoffer.dall@linaro.org>
:::::: CC: Christoffer Dall <christoffer.dall@linaro.org>

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

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 46165 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-03-05  1:21 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-05  1:21 arch/arm64/kvm/vgic/vgic.c:437:5: sparse: sparse: context imbalance in 'kvm_vgic_inject_irq' - different lock contexts for basic block kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2020-12-26 17:00 kernel test robot

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.