All of lore.kernel.org
 help / color / mirror / Atom feed
* [openeuler:OLK-6.6 3064/3064] arch/arm64/kvm/arm.c:177 kvm_cap_arm_enable_hdbss() warn: iterator 'i' not incremented
@ 2025-10-30  6:35 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-10-30  6:35 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: kernel@openeuler.org
TO: Zhenyu Ye <yezhenyu2@huawei.com>

tree:   https://gitee.com/openeuler/kernel.git OLK-6.6
head:   bc2ee8a789087459d9852f01e10d2f31abf5a13d
commit: bd6106e348d70cafe3f030ba6f60fb010f09b82e [3064/3064] arm64/kvm: using ioctl to enable/disable the HDBSS feature
:::::: branch date: 3 hours ago
:::::: commit date: 7 months ago
config: arm64-randconfig-r073-20251029 (https://download.01.org/0day-ci/archive/20251030/202510301418.ngVZneV0-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 14.3.0

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202510301418.ngVZneV0-lkp@intel.com/

New smatch warnings:
arch/arm64/kvm/arm.c:177 kvm_cap_arm_enable_hdbss() warn: iterator 'i' not incremented

Old smatch warnings:
arch/arm64/kvm/arm.c:899 kvm_arm_halt_guest() warn: iterator 'i' not incremented
arch/arm64/kvm/arm.c:909 kvm_arm_resume_guest() warn: iterator 'i' not incremented
arch/arm64/kvm/arm.c:2682 kvm_mpidr_to_vcpu() warn: iterator 'i' not incremented

vim +/i +177 arch/arm64/kvm/arm.c

749cf76c5a363e arch/arm/kvm/arm.c   Christoffer Dall 2013-01-20  131  
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  132  static int kvm_cap_arm_enable_hdbss(struct kvm *kvm,
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  133  				    struct kvm_enable_cap *cap)
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  134  {
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  135  	unsigned long i;
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  136  	struct kvm_vcpu *vcpu;
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  137  	struct page *hdbss_pg;
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  138  	int size = cap->args[0];
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  139  
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  140  	if (!system_supports_hdbss()) {
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  141  		kvm_err("This system does not support HDBSS!\n");
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  142  		return -EINVAL;
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  143  	}
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  144  
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  145  	if (size < 0 || size > HDBSS_MAX_SIZE) {
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  146  		kvm_err("Invalid HDBSS buffer size: %d!\n", size);
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  147  		return -EINVAL;
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  148  	}
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  149  
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  150  	/* Enable the HDBSS feature if size > 0, otherwise disable it. */
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  151  	if (size) {
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  152  		kvm->enable_hdbss = true;
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  153  		kvm->arch.vtcr |= VTCR_EL2_HD | VTCR_EL2_HDBSS;
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  154  
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  155  		kvm_for_each_vcpu(i, vcpu, kvm) {
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  156  			hdbss_pg = alloc_pages(GFP_KERNEL, size);
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  157  			if (!hdbss_pg) {
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  158  				kvm_err("Alloc HDBSS buffer failed!\n");
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  159  				return -EINVAL;
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  160  			}
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  161  
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  162  			vcpu->arch.hdbss.br_el2 = HDBSSBR_EL2(page_to_phys(hdbss_pg), size);
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  163  			vcpu->arch.hdbss.prod_el2 = 0;
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  164  
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  165  			/*
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  166  			 * We should kick vcpus out of guest mode here to
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  167  			 * load new vtcr value to vtcr_el2 register when
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  168  			 * re-enter guest mode.
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  169  			 */
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  170  			kvm_vcpu_kick(vcpu);
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  171  		}
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  172  
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  173  		kvm_info("Enable HDBSS success, HDBSS buffer size: %d\n", size);
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  174  	} else if (kvm->enable_hdbss) {
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  175  		kvm->arch.vtcr &= ~(VTCR_EL2_HD | VTCR_EL2_HDBSS);
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  176  
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02 @177  		kvm_for_each_vcpu(i, vcpu, kvm) {
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  178  			/* Kick vcpus to flush hdbss buffer. */
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  179  			kvm_vcpu_kick(vcpu);
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  180  
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  181  			hdbss_pg = phys_to_page(HDBSSBR_BADDR(vcpu->arch.hdbss.br_el2));
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  182  			if (hdbss_pg)
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  183  				__free_pages(hdbss_pg, HDBSSBR_SZ(vcpu->arch.hdbss.br_el2));
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  184  
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  185  			vcpu->arch.hdbss.br_el2 = 0;
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  186  			vcpu->arch.hdbss.prod_el2 = 0;
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  187  		}
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  188  
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  189  		kvm->enable_hdbss = false;
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  190  		kvm_info("Disable HDBSS success\n");
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  191  	}
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  192  
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  193  	return 0;
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  194  }
bd6106e348d70c arch/arm64/kvm/arm.c eillon           2025-04-02  195  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-10-30  6:36 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-30  6:35 [openeuler:OLK-6.6 3064/3064] arch/arm64/kvm/arm.c:177 kvm_cap_arm_enable_hdbss() warn: iterator 'i' not incremented 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.