* 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.