[PATCH 0/3] KVM: x86: Fix off-by-one in max_vcpu_ids bounds checks

From: Dmytro Maluka

Date: Thu Jul 30 2026 - 14:56:12 EST


max_vcpu_ids and KVM_CAP_MAX_VCPU_ID are exclusive, i.e. the maximum
allowed vcpu_id value is max_vcpu_ids minus one, not max_vcpu_ids.

Fix the sanity checks for KVM_SET_BOOT_CPU_ID and KVM_CAP_MAX_VCPU_ID
and the selftests for them (added in series [1]) to fail when
bsp_vcpu_id is incorrectly set to max_vcpu_ids, not to a value below
max_vcpu_ids.

Also clarify that in the documentation of KVM_CAP_MAX_VCPU_ID, in an
attempt to make this a bit less confusing.

[1] https://lore.kernel.org/all/20240614202859.3597745-1-minipli@xxxxxxxxxxxxxx/

Dmytro Maluka (3):
KVM: selftests: Fix treating KVM_CAP_MAX_VCPU_ID as inclusive
KVM: x86: Fix off-by-one in max_vcpu_ids bounds checks
Documentation: KVM: Clarify that KVM_CAP_MAX_VCPU_ID is exclusive

Documentation/virt/kvm/api.rst | 13 ++++++++-----
arch/x86/kvm/x86.c | 6 +++---
.../selftests/kvm/x86/max_vcpuid_cap_test.c | 17 ++++++++++-------
.../testing/selftests/kvm/x86/set_boot_cpu_id.c | 4 ++--
4 files changed, 23 insertions(+), 17 deletions(-)

--
2.55.0.508.g3f0d502094-goog