From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: [openeuler:OLK-6.6 3064/3064] arch/arm64/kvm/arm.c:177 kvm_cap_arm_enable_hdbss() warn: iterator 'i' not incremented
Date: Thu, 30 Oct 2025 14:35:44 +0800 [thread overview]
Message-ID: <202510301418.ngVZneV0-lkp@intel.com> (raw)
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
reply other threads:[~2025-10-30 6:36 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202510301418.ngVZneV0-lkp@intel.com \
--to=lkp@intel.com \
--cc=error27@gmail.com \
--cc=oe-kbuild@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.